一:函数初识
一:初识函数
1.1 函数的定义
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
- 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
1.2 函数的语法或结构
Python 定义函数使用 def 关键字,一般格式如下:
def 函数名(参数列表): 函数体
例子:
# 计算面积函数 def area(width, height): return width * height def print_welcome(name): print("Welcome", name) print_welcome("Runoob") w = 4 h = 5 print("width =", w, " height =", h, " area =", area(w, h)) 输出: # Welcome Runoob # width = 4 height = 5 area = 20
1.3函数的调用
定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。
如下实例调用了 printme() 函数:
# 定义函数 def printme( str ): # 打印任何传入的字符串 print (str) return # 调用函数 printme("我要调用用户自定义函数!") printme("再次调用同一函数") # 输出 # 我要调用用户自定义函数! # 再次调用同一函数
1.4函数的返回值
1.遇到return,函数结束,return下面的(函数内)的代码不会执行。
2.return 会给函数的执行者返回值。
如果return后面什么都不写,或者函数中没有return,则返回的结果是None
如果return后面写了一个值,返回给调用者这个值
如果return后面写了多个结果,,返回给调用者一个tuple(元组),调用者可以直接使用元组的解构获取多个变量。
def date(): print("拿出手机") print("打开陌陌") print('左滑一下') print('右滑一下') print("找个漂亮的妹子") print("问她,约不约啊!") print("ok 走起") return '漂亮的妹子','小萝莉', '成熟女性' g1,g2,g3 = date() print(g1, g2, g3) # 输出 # 漂亮的妹子 小萝莉 成熟女性
二,函数的参数(重点)
例子:
def date(sex): print("拿出手机") print("打开陌陌") print('设置筛选条件:性别: %s' %sex) print("找个漂亮的妹子") print("问她,约不约啊!") print("ok 走起") date('女')
上面就是函数传参的示例,函数的参数可以从两个角度划分:
1.形参
写在函数声明的位置的变量叫形参,形式上的一个完整.表示这个函数需要xxx
2.实参
在函数调用的时候给函数传递的值.加实参,实际执行的时候给函数传递的信息.表示给函数xxx
函数的传参就是函数将实际参数交给形式参数的过程.
解释:
def date(sex): # 函数定义时(参数) 这个就是形参 print("拿出手机") print("打开陌陌") print('设置筛选条件:性别: %s' %sex) print("找个漂亮的妹子") print("问她,约不约啊!") print("ok 走起") date('女') # 函数执行时(参数) 这个就是实参 # 这个过程就是:代码运行到date('女')开始执行此函数同时将字符串'女'这个数据传递给变量sex,然后执行函数中的代 # 码。如果遇到sex,其实就是使用'女'这个数据。
2.1 实参角度
2.1.1 位置参数
位置参数就是从左至右,实参与形参一一对应。
def date(sex, age, hobby): print("拿出手机") print("打开陌陌") print('设置筛选条件:性别: %s,年龄:%s,爱好:%s' %(sex, age, hobby)) print("找个漂亮的妹子") print("问她,约不约啊!") print("ok 走起") date('女','25~30','唱歌') date('人妖','20~25','萝莉音')
2.1.2 关键字参数
位置参数好不好呢? 如果是少量的参数还算OK, 没有问题. 但是如果函数在定义的时候参数非常多怎么办? 程序员必须记住, 我有哪些参数, 而且还有记住每个参数的位置, 否则函数就不能正常调用了. 那则么办呢? python提出了一种叫做关键字参数. 我们不需要记住每个参数的位置. 只要记住每个参数的名字就可以了
def date(sex, age, hobby): print("拿出手机") print("打开陌陌") print('设置筛选条件:性别: %s,年龄:%s,爱好:%s' %(sex, age, hobby)) print("找个漂亮的妹子") print("问她,约不约啊!") print("ok 走起") date(hobby='唱歌',sex='女',age='25~30',)
2.1.3 混合参数
可以把上面两种参数混合着使用. 也就是说在调用函数的时候即可以给出位置参数, 也可以指定关键字参数.
注意:关键字参数一定在位置参数后面。
def date(sex, age, hobby): print("拿出手机") print("打开陌陌") print('设置筛选条件:性别: %s,年龄:%s,爱好:%s' %(sex, age, hobby)) print("找个漂亮的妹子") print("问她,约不约啊!") print("ok 走起") date('女',hobby='唱歌',age='25~30',)
2.1.4 总结
在实参的⾓角度来看参数分为三种:
1. 位置参数
2. 关键字参数
3. 混合参数, 位置参数必须在关键字参数前面
2.2 形参角度
2.2.1 位置参数
位置参数其实与实参角度的位置参数是一样的,就是按照位置从左至右,一一对应
def date(sex, age, hobby): print("拿出手机") print("打开陌陌") print('设置筛选条件:性别: %s,年龄:%s,爱好:%s' %(sex, age, hobby)) print("找个漂亮的妹子") print("问她,约不约啊!") print("ok 走起") date('女','25~30','唱歌')
2.2.2 默认值参数
在函数声明的时候, 就可以给出函数参数的默认值. 默认值参数一般是这个参数使用率较高,才会设置默认值参数,可以看看open函数的源码,mode=‘r’就是默认值参数. 比如, 我们录入咱们班学生的基本信息. 通过调查发现. 我们班大部分学生都是男生. 这个时 候就可以给出⼀一个sex='男'的默认值.
def stu_info(name, age, sex='男'): print("录入学生信息") print(name, age, sex) print("录入完毕") stu_info("张强", 18)
注意:必须先声明在位置参数,才能声明关键字参数
2.2.3 总结
在形参的角度来看
1.位置参数
2.默认认值参数(大多数传进来的参数都是一样的, 一般用默认参数函数的形参角度参数还有两种,请看下一篇)

浙公网安备 33010602011771号