函数:
实参和形参
传递实参:
位置实参要求实参顺序与形参顺序相同,
关键字实参传递给函数名称值对,无需考虑实参顺序;如describe_pet(animal_type='hanmster',pet_name='harry')
可给每个形参指定默认值,提供实参时则使用实参,没提供时,则使用形参的默认值;如定义函数时def describe_pet(pet_name,animal_type='dog'): 也可给形参指定一个空的默认值,如def get_formatted_name(first_name,last_name,middle_name=' ')
传递列表:形参为列表
传递任意数量的实参:形参名*toppings中的星号是让python创建一个名为toppings的空元组,并将所有收到的值都封装到这个元组里,如def make_pizza(*toppings):元组使用小括号,列表使用方括号
*args通用形参名
形参**user_info中的两个星号时让python创建一个名为user_info的空字典,并将所有名称值对放到这个字典中,如def build_profile(first,**user_info):
**kwargs形参名,用于接受任意数量的关键字实参
函数在接受不同类型的实参时,必须将函数定义中将接纳任意数量的实参的形参放在最后;先接受位置实参和关键字实参,再将剩余的实参都收集到最后一个形参里
查看错误traceback
if middle_name:如果用户提供了中间名,则为True,往下执行
return 可返回任何类型的值,包括列表和字典等复杂的数据结构
None可视为占位值,条件测试中None相当于false,如def build_person(first_name,age=None):
while true:这是一个无限循环,
- 使用 continue 语句,可以跳过执行本次循环体中剩余的代码,转而执行下一次的循环。
- 只用 break 语句,可以完全终止当前循环,并跳出循环体,经常和if结合使用
f'{first_name }'first_name是变量,并用花括号和引号括起来
每个函数都应只负责一项工作
函数存储在模块中
模块是.py文件
在同一个文件下直接导入使用import 模块名字
导入整个模块
如import pizza
pizza.make_pizza(16,'peeedd')
调用函数时:模块名称.函数名,module_name.function_name()
导入模块中特定的函数
from moudle_name import function_name
导入多个数量的函数
from moudle_name import function_0,function_1,...
此时调用函数时,只需指定名称
给函数指名用as
from moudle_name import function_name as fn
给模块指名用as
from moudle_name as mn
导入模块中所有的函数
from moudle_name import *