今日内容概要
函数的返回值
函数的类型
函数的参数
常见的内置函数
今日内容详细
调用函数与函数返回值
定义与调用
定义函数使用关键字 def, 调用函数需要使用函数名加括号 (如果函数需要参数那么则额外传递参数)
定义阶段
函数在定义阶段只检测函数体语法不执行函数体代码
调用阶段
函数名加括号调用函数的时候才会执行函数体代码
什么是返回值?
返回值就是执行完某个方法该方法反馈出来的结果
如何获取返回值?
通过变量名与赋值符号即可, 变量名 = 方法 / 函数 ()
当函数体没有 return 关键字的时候, 默认返回 None
- def index():
- print('from index')
- res = index()
- print(res) # None 即空 表示没有
return 关键字后面写什么函数就返回什么
- def index():
- print('from index')
- return 123
- res = index()
- print(res)
return 后面跟多个值默认会组织成元组的形式返回
- def index():
- print('from index')
- return 123, 555, 66, 5, 4, 5, 4
- res = index()
- print(res)
函数体代码遇到 return 立刻结束整个函数的运行
- def index():
- print('from index')
- return 123, 555, 66, 5, 4, 5, 4
- print('from index')
函数的类型
无参函数: 函数在定义阶段没有参数调用阶段也不需要参数
- def index():
- print('from index')
- index()
有参函数: 函数在定义阶段括号内填写了变量名即需要参数
- def index(x):
- print('from index', x)
- index(1)
空函数: 没有具体的函数体代码
- def run():
- pass # 补全语法结构 本身没有任何含义
- def fight():
- pass
- def talk():
- pass
函数的参数
形参与实参介绍
函数的参数分为形式参数和实际参数, 简称形参和实参:
形参即在定义函数时, 括号内声明的参数. 形参本质就是一个变量名, 用来接收外部传来的值.
实参即在调用函数时, 括号内传入的值, 值可以是常量, 变量, 表达式或三者的组合.
def index(name): 形参
print(name)
index('jason') 实参 name = 'jason'
两者在调用函数的时候临时绑定, 函数运行结束分开
形参与实参的具体使用
位置参数: 按照位置一一对应传值 多一个不行少一个也不行
- def index(x, y):
- print(x, y)
- # index() # 不传不可以
- # index(1) # 传少了也不行
- # index(1,2) # 个数正确可以
- # index(1,2,3,4,5,6,7) # 传多了也不行
关键字参数: 指名道姓的给形参传值, 可以打破位置限制
- def index(x, y):
- print(x, y)
- index(y=111, x=222)
- index(111, y=222)
- index(111, x=222) # 报错 形参 x 被重复赋值
- print(y=111,222) # 报错 位置参数一定要在关键字参数的前面
PS: 需要注意在调用函数时, 实参也可以是按位置或按关键字的混合使用, 但必须保证关键字参数在位置参数后面, 且不可以对一个形参重复赋值
默认参数: 函数在定义阶段就给形参赋值了
- def register(name, age, gender='male'):
- print(name, age, gender)
- register('jason', 18)
- register('tony', 28)
- register('kevin', 38) # 使用默认的值
- register('huahua', 18, 'female') # 使用自带的值
可变长参数: 函数如何做到无论接收多少个位置参数, 关键字参数都可以正常运行
- def func(*a, **b):
- print(a, b)
- func(1, 2, 3, a=1, b=2, c=3)
- func(1, 2, 3, 4, 5, 6, 7)
- func(a=1, b=2, c=3)
位置参数使用 * 完成操作, 关键字参数使用 ** 完成操作
一般情况下针对形参中的可变长参数, 变量名推荐使用 (*args **kwargs)
* 和 ** 的使用
* 在形参中会接收多余的位置参数组织成元组的形式赋值给 * 后面的变量名, 在实参中会将列表 / 元组内的元素打散成一个个位置参数传递给函数
** 在形参中会接收多余的关键字参数组织成字典的形式赋值给 ** 后面的变量名, 在实参中会将列表 / 元组内的元素打散成一个个位置参数传递给函数
- l = [11, 22, 33, 44, 55]
- d = {'username': 'jason', 'pwd': 123, 'hobby': 'read'}
- def func(*args, **kwargs):
- print(args, kwargs)
- func(1, 2, 3, a=1, b=2, c=3)
- func(1, 2, 3, 4, 5, 6, 7)
- func(a=1, b=2, c=3)
- func(*l)
- func(**d)
内置函数
取绝对值: print(abs())
相当于 and:print(all([1, 2, 3, 4, 0]))
相当于 or:print(any([1, 2, 3, 4, 0]))
转二进制: print(bin())
转八进制: print(oct())
转十六进制: print(hex())
判断变量是否可以调用: print(callable())
返回 ASCII 码中数字对应的字符: print(chr())
format 字符串格式化输出:
取最大值: print(max())
取最小值: print(min())
求和: print(sum())
来源: http://www.bubuko.com/infodetail-3811635.html