函数
定义函数:使用关键字 def 来告诉Python你要定义一个函数。
1 >>> def greet_user(username):
2 >>> """显示简单的问候语"""
3 >>> print("Hello " + username.title() + "!")
4 >>> greet_user('jesse')
5 Hello Jesse!
函数传递参数:实参的顺序必须要与形参的顺序相同。
使用关键字实参:是传递给函数的名称对。由于直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆,因此无需考虑函数调用中的实参顺序。格式为:形参名=''
1 >>> def describe_pet(animal_type, pet_name):
2 >>> """显示宠物的信息"""
3 >>> print("\n I have a " + animal_type + ".")
4 >>> print("My" + animal_type + "'s name is" + pet_name.title() + ".")
5 >>> describe_pet('hamster', 'harry')
6
7 >>> describe_pet(animal_type='hamster', pet_name='harry')
8 I have a hamster.
9 Myhamster's name isHarry.
10
11 I have a hamster.
12 Myhamster's name isHarry.
给形参指定默认值:在函数中给形参提供了实参时,Python将使用指定的实参值,否则将使用形参的默认值
1 >>> def describe_pet(pet_name, animal_type='dog'):
2 >>> """显示宠物的信息"""
3 >>> print("\n I have a " + animal_type + ".")
4 >>> print("My" + animal_type + "'s name is" + pet_name.title() + ".")
5 >>> describe_pet('willie')
6 >>> describe_pet('hamster', 'harry')
7 >>> describe_pet(pet_name='harry', animal_type='hamster', )
8 I have a dog.
9 Mydog's name isWillie.
10
11 I have a harry.
12 Myharry's name isHamster.
13
14 I have a hamster.
15 Myhamster's name isHarry.
返回值:函数返回简单值。
1 >>> def get_formatted_name(first_name, last_name, middle_name=''):
2 >>> """返回整洁的姓名"""
3 >>> if middle_name:
4 >>> full_name = first_name + ' ' + middle_name + ' ' + last_name
5 >>> else:
6 >>> full_name = first_name + ' ' + last_name
7 >>> return full_name.title()
8 >>> musician = get_formatted_name('jimi', 'hendrix')
9 >>> print(musician)
10 >>> musician = get_formatted_name('john', 'hooker', 'lee')
11 >>> print(musician)
12 Jimi Hendrix
13 John Lee Hooker
返回字典
1 >>> def build_person(first_name, last_name, age=''):
2 >>> """返回一个字典,其中包含有关一个人的信息"""
3 >>> person = {'first': first_name, 'last': last_name}
4 >>> if age:
5 >>> person['age'] = age
6 >>> return person
7 >>> musician = build_person('jimi', 'hendrix')
8 >>> print(musician)
9 >>> musician = build_person('jimi', 'hendrix', age=27)
10 >>> print(musician)
11 {'first': 'jimi', 'last': 'hendrix'}
12 {'first': 'jimi', 'last': 'hendrix', 'age': 27}
传递列表:
1 >>> def greet_user(names):
2 >>> """向列表中的每位用户都发出简单的问候语"""
3 >>> for name in names:
4 >>> print("Hello " + name.title() + "!")
5 >>> usernames = ['hannah', 'ty', 'margot']
6 >>> greet_user(usernames)
7 Hello Hannah!
8 Hello Ty!
9 Hello Margot!
禁止函数修改列表:可以将列表的副本传递给函数,function_name(list_name[ : ])
传递任何数量的实参
1 >>> def make_pizza(*toppings):
2 >>> """打印顾客点的所有配料"""
3 >>> print(toppings)
4 >>> make_pizza('pepperoni')
5 >>> make_pizza('mushrooms', 'green peppers', 'extra cheese')
6 ('pepperoni',)
7 ('mushrooms', 'green peppers', 'extra cheese')
使用任意数量的关键字实参:能够接受任意数量的键-值对。
1 >>> def build_profile(first, last, **user_info):
2 >>> """创建一个字典,其中包含我们知道的有关用户的一切"""
3 >>> profile = {}
4 >>> profile['first_name'] = first
5 >>> profile['last_name'] = last
6 >>> for key, value in user_info.items():
7 >>> profile[key] = value
8 >>> return profile
9 >>> user_profile = build_profile('albert', 'einstein', location='princeton', field='physics')
10 >>> print(user_profile)
11 {'first_name': 'albert', 'last_name': 'einstein', 'location': 'princeton', 'field': 'physics'}
导入模块:使用关键字import,模块是扩展名为.py的文件,包含要导入到程序中的代码。
如: import pizza 使用模块中的函数:Module_name.function_name()
导入特定的函数:from module_name import function_name 无需句点,直接使用函数:function_name()
导入任意数量的函数:用逗号分隔函数名 from module_name import function_0,function_1,function_2 无需句点,直接使用函数:function_name()
使用as给函数指定别名:from module_name import function_name as fn
使用as给模块指定别名:import module_name as mn
导入模块中的所有函数:使用星号(*)运算符可让Python导入模块中的所有函数,最好不要使用这种方法。格式: from module_name import *
注意:给形参指定默认值时,等号两边不要有空格,对于函数调用中的关键字实参,也应遵循这种约定。如果模块或程序包含多个函数,可使用两个空行将相邻的函数分开。