函数定义:括号内指出函数为完成任务需要什么信息。定义以冒号结尾,缩进行构成了函数体。"""处文本为文档字符串,描述函数是做什么的。
def greet_user():
"""显示问候语"""
print("Hello!")
#调用函数
greet_user()
#向函数传递信息练习
#username是形参:函数完成其工作所需的一项信息;sunny是实参:调用函数时传递给函数的信息
def greet_user_2(username):
"""显示简单的问候语"""
print("Hello," + username.title() + "!")
greet_user_2("sunny")
位置实参
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('dog','wang')
关键字实参
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(animal_type='cat' , pet_name='tian')
返回简单值
def get_formatted_name(first_name,last_name):
full_name = first_name + ' ' + last_name
return full_name.title()
musician = get_formatted_name('jimi','hendrix')
print("\n" + musician)
可以通过使用默认值让实参变成可选的
def get_formatted_name_2(first_name,last_name,middle_time=''):
if middle_time:
full_name = first_name + ' ' + middle_time + ' ' + last_name
else:
full_name = first_name + ' ' + last_name
return full_name.title()
musician = get_formatted_name_2('jimi','hendrix')
musician2 = get_formatted_name_2('john','hooker','lee')
print("\n" + musician + ',' + musician2)
返回字典
def build_person(first_name,last_name):
person = {'first':first_name,'last':last_name}
return person
person1 = build_person('jimi','hendrix')
print(person1)
传递列表
def greet_users(names):
for name in names:
msg = "\nHello, " + name.title() + "!"
print(msg)
usernames = ['hannah','ty','margot']
greet_users(usernames)
在函数中修改列表
def print_models(unprinted_designs,completed_models):
while unprinted_designs:
current_design = unprinted_designs.pop()
print("\nPrinting model: " + current_design)
completed_models.append(current_design)
def show_completed_models(completed_models):
print("\nThe following models have been printed:")
for completed_model in completed_models:
print(completed_model)
unprinted_designs = ['iphone case','robot pendant']
completed_models = []
print_models(unprinted_designs,completed_models)
show_completed_models(completed_models)
传递任意数量的实参
#*号让python创建一个名为toppings的元组,并将收到的所有值都封装在这个元组中
def make_pizza(*toppings):
print(toppings)
make_pizza('a')
make_pizza('a','b','c')
结合使用位置实参和任意数量实参
#将收到的第一个值存储在形参size中,其他的存储在元组toppings中
def make_pizza(size,*toppings):
print("\nMaking a " + str(size) + "-inch pizza with the following toppings:")
for topping in toppings:
print("-" + topping)
make_pizza(10,'a','b','c')
使用任意数量的关键字实参
#**号让python创建一个名为user_info的空字典,并将收到的所有名称-值对都封装在这个字典中
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',filed='physics')
print(user_profile)
可以将函数存储在模块中。
将函数存储在被称为模块的独立文件中,再将模块导入主程序中。使用import语句。
1.导入整个模块,只需编写一条import语句并在其中指定模块名,就可在程序中使用该模块中的所有函数,调用函数时需要使用句点
2.导入模块中的特定函数,from module_name import function_name1,function_name2,调用函数无需使用句点
3.使用as可以给函数指定别名。例如:from pizza import make_pizza as mp;也可以使用as给模块指定别名,例如:import pizza as p,后面调用函数可以哦那个p.make_pizza(10,'cheese')
4.使用*号可以导入模块中的所有函数:from pizza import * (不建议使用)
500



被折叠的 条评论
为什么被折叠?



