Python -day 8

函数

定义函数:使用关键字 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 *

注意:给形参指定默认值时,等号两边不要有空格,对于函数调用中的关键字实参,也应遵循这种约定。如果模块或程序包含多个函数,可使用两个空行将相邻的函数分开。

猜你喜欢

转载自www.cnblogs.com/Molzx/p/10507896.html