函数是可重用的程序代码段。

一、函数的声明和调用

    声明格式:

    def 函数名([形参列表]):

      函数体

    调用格式:

    函数名([实参列表])

    函数名:是一种标识符,命名规则为全小写字母,可以使用下划线增加可阅读性。

    形参列表:表示传递给该函数的值或变量引用,(用圆括号括起来,并用逗号隔开,可能为空)

    函数体:函数执行的代码块

    实参列表:实际传入的参数值

    

    示例代码:

def my_add(a,b):      # 声明函数,返回值
return a+b def my_print(msg): # 声明函数,无返回值
print(msg) c = my_add(11,22) # 调用函数
my_print(c) #调用函数 # 输出结果 33

二、参数的传递

  1、形式参数和实际参数

    形参:声明函数时声明的参数,即形式参数

    实参:调用函数时,提供函数需要的参数的值,即实际参数

    实际参数默认按位置顺序依次传递给形式参数。

  2、可选参数(参数默认值)

    在声明函数时,如果希望函数的一些参数是可选的,可以在声明函数时为这些参数指定默认值。调用该函数时,如果没有传入对应的实参值,则函数使用声明时指定的默认参数值。

    示例代码:

def my_add(a,b=12):
return a+b def my_print(msg):
print(msg) c = my_add(11)
my_print(c) # 输出结果 23

    注:必须先声明没有默认值的形参,然后声明有默认值的形参,因为函数调用时,默认是按位置传递实际参数值的。

  

  3、位置参数和命名参数(关键字参数)

    位置参数:函数调用时,默认按位置顺序传递形参的参数

    关键字参数:按名称指定传入的参数,优点:一、参数按名称意义明确;二、传递的参数与顺序无关;三、如果有多个可选参数,可以选择某个参数值

    示例代码:

def my_add(a,b=12,c=23):
return a+b+c def my_print(msg):
print(msg) c = my_add(11,c=11) # 11为位置参数,c=11为关键字参数
my_print(c) # 输出结果 34

  

  4、可变参数(不固定参数,或参数组)

    在声明函数时,通过带星的参数,如*args,允许向函数传递可变(任意)数量的实参,在调用时,这些参数会被收集为一个元组。

    在声明函数时,也可以通过带双星的参数,如**kwargs,允许向函数传递可变数量的实参,在调用时,这些参数会被收集为一个字典。

    

    示例代码1: 

def my_add(*args):
return args def my_print(msg):
print(msg) c = my_add(11,12,13,14)
my_print(c) # 输出结果 (11, 12, 13, 14)

    

    示例代码2:

def my_add(**kwargs):
return args def my_print(msg):
print(msg) c = my_add(a=11,b=12,c=13,d=14)
my_print(c) # 输出结果
{'a': 11, 'b': 12, 'c': 13, 'd': 14}

    示例代码3:

def my_add(*args,**kwargs):
return args,kwargs def my_print(msg):
print(msg) c = my_add(2,3,4,a=11,b=12,c=13,d=14)
my_print(c) # 输出结果
((2, 3, 4), {'a': 11, 'b': 12, 'c': 13, 'd': 14})

三、函数的返回值

  函数可以返回值,即在函数体中使用return语句从函数返回一个值,并跳出函数。如果需要返回多个值,则可以返回一个元组。

  示例:

def f1():
return 1,2,3 a=f1()
print(a) # 输出结果
(1, 2, 3)

四、变量的作用域

  变量声明的位置不同,其可被访问的范围也不同。变量的可被访问范围称为变量的作用域。变量按其作用域大致可以分为:全局变量、局部变量和类型成员变量

  全局变量:在函数和类定义以外声明的变量

  局部变量:在函数体中声明的变量(包括函数参数)

  类成员变量:在类中声明的变量,包括静态变量和实例变量。

1.15 Python基础知识 - 函数的更多相关文章

  1. Python基础知识总结笔记(四)函数

    Python基础知识总结笔记(四)函数python中的函数函数中的参数变量作用域偏函数PFA递归函数高阶函数BIFs中的高阶函数匿名函数lambda闭包Closure装饰器Decorator函数式编程 ...

  2. python基础知识小结-运维笔记

    接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...

  3. 八. Python基础(8)--函数

    八. Python基础(8)--函数 1 ● 函数返回布尔值 注意, 自定义的函数也可以是用来作逻辑判断的, 例如内置的startswith()等函数. def check_len(x):     ' ...

  4. python基础知识部分练习大全

    python基础知识部分练习大全   1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py   #必须在首行 ...

  5. python基础知识的学习和理解

    参考链接:https://github.com/yanhualei/about_python/tree/master/python_learning/python_base   python基础知识笔 ...

  6. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  7. python基础——filter函数

    python基础——filter函数 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函 ...

  8. python 基础知识(一)

    python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...

  9. python基础知识讲解——@classmethod和@staticmethod的作用

    python基础知识讲解——@classmethod和@staticmethod的作用 在类的成员函数中,可以添加@classmethod和@staticmethod修饰符,这两者有一定的差异,简单来 ...

随机推荐

  1. 如何搭建Eclipse +Apache Tomcat配置Java开发环境

    Linux平台下如何搭建Eclipse +Apache Tomcat配置的Java开发环境 本文出自 "李晨光原创技术博客" 博客,请务必保留此出处http://chenguang ...

  2. 转:Java读写文件各种方法及性能比较

    干Java这么久,一直在做WEB相关的项目,一些基础类差不多都已经忘记.经常想得捡起,但总是因为一些原因,不能如愿. 其实不是没有时间,只是有些时候疲于总结,今得空,下定决心将丢掉的都给捡起来. 文件 ...

  3. python数据处理技巧一

    字符串赋值(传参)技巧 Python中一般的字符串赋值的方式如下: variable = "Test" print "I just [%s] unit"%var ...

  4. php 图片局部打马赛克

    php 图片局部打马赛克 原理: 对图片中选定区域的每一像素,添加若干宽度及高度,生成矩型.而每一像素的矩型重叠在一起.就形成了马赛克效果. 本例使用GD库的imagecolorat获取像素颜色,使用 ...

  5. Bounding Volume Hierarchy BVH in OpenCASCADE

    Bounding Volume Hierarchy BVH in OpenCASCADE eryar@163.com Abstract. Bounding Volume Hierarchy(BVH) ...

  6. js插件---Amaze UI dialog如何使用

    js插件---Amaze UI dialog如何使用 一.总结 一句话总结:别人给你列出来的参考手册照着用先 1.在哪里去找插件参考资料或者使用手册(一般位置找不到的时候)? github上面啊,非常 ...

  7. 浏览器加载渲染HTML、DOM、CSS、 JAVASCRIPT、IMAGE、FLASH、IFRAME、SRC属性等资源的顺序总结

    页面响应加载的顺序:   1.域名解析->加载html->加载js和css->加载图片等其他信息 DOM详细的步骤如下: 解析HTML结构. 加载外部脚本和样式表文件. 解析并执行脚 ...

  8. Ubuntu 12.04使用演示

    今年年初,发布了Ubuntu 12.04(代号Precise Pangolin),但正式版预计将于2012年的4月底发布,作者对最新版本的ubuntu做了试用,先将操作视频与大家分享.更多内容请关注本 ...

  9. exit---退出目前的shell

    exit命令   exit命令同于退出shell,并返回给定值.在shell脚本中可以终止当前脚本执行.执行exit可使shell以指定的状态值退出.若不设置状态值参数,则shell以预设值退出.状态 ...

  10. 微软推送Win10致全球网络负担增大,中国网友表示毫无压力

        7月29日晚间,微软的Windows10操作系统正式上市发行.微软将面向全球190个国家地区进行windows10的免费升级推送. 眼下, Windows 10 正以疯狂的速度登陆全球各类设备 ...