《Python编程:从入门到实践》 笔记
函数
1、定义函数
def 函数名(形参):
'''注释'''
代码行
函数调用
函数名(实参)
2、传递实参
位置实参
一一对应
def describe_pet(animal_type, pet_name):
"""显示宠物的信息"""
print("\nI have a " + animal_type + ".")
print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet('hamster', 'harry')
关键字实参
形参名=实参
def describe_pet(animal_type, pet_name):
"""显示宠物的信息"""
print("\nI have a " + animal_type + ".")
print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet(pet_name='harry', animal_type='hamster')
默认实参
注意:默认形参一定要放到后面!
def describe_pet(pet_name, animal_type='dog'):
"""显示宠物的信息"""
print("\nI have a " + animal_type + ".")
print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet('willie')
describe_pet('willie',animal_type='cat')
describe_pet('willie','cat')
3、返回值
def 函数名(形参):
'''注释'''
代码行
return
函数调用
变量=函数名(实参)
可选形参:使用默认值
4、传递列表副本
切片表示法 [ : ] 创建列表的副本
def 函数名(列表名 [:])
5、传递任意数量的实参
如果要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后。
def 函数名(位置实参,关键字实参,任意数量实参)
def 函数名(*元组名)
def make_pizza(*toppings):
"""概述要制作的比萨"""
print("\nMaking a pizza with the following toppings:")
for topping in toppings:
print("- " + topping)
形参名*toppings 中的星号让Python创建一个名为toppings 的空元组,并将收到的所有值都封装到这个元组中。
def 函数名(**字典名)
需要接受任意数量的实参,但预先不知道传递给函数的会是什么样的信息。在这种情况下,可将函数编写成能够接受任意数量的键—值对。
def build_profile(first, last, **user_info):
"""创建一个字典,其中包含我们知道的有关用户的一切"""
profile = {}
profile['first_name'] = first
profile['last_name'] = last
for key, value in user_info.items():
profile[key] = value
return profile
user_profile = build_profile('albert', 'einstein',location='princeton',
field='physics')
print(user_profile)
{'first_name': 'albert', 'last_name': 'einstein', 'location': 'princeton', 'field': 'physics'}
形参**user_info 中的两个星号让Python创建一个名为user_info 的空字典,并将收到的所有名称—值对都封装到这个字典中。
6、在模块中储存函数
import 语句允许在当前运行的程序文件中使用模块中的代码。
导入整个模块
import 文件名(模块名)
import 文件名 as 别名
文件名/别名.函数名(实参)
import pizza
pizza.make_pizza(16, 'pepperoni')
导入特定模块
from 文件名(模块名) import 函数名
from 文件名 import 函数名 as 别名
函数名(实参)
from pizza import make_pizza
make_pizza(16, 'pepperoni')