# ~ def greet_user():
# ~ """打印Hello"""
# ~ #文档字符串(docstring)的注释,描述函数作用,三个引号括起,用来生成程序中函数的文档
# ~ print('Hello')
# ~ greet_user()
# ~ def greet_user(user_name):
# ~ print("Hello, "+user_name.title()+"!")
# ~ greet_user('jerry')
# ~ def describe_pet(type,name):
# ~ """显示宠物信息"""
# ~ print("\nI have a "+type+".")
# ~ print("My "+type+"'s name is "+name.title()+'.')
# ~ describe_pet('hamster','harry')
#位置实参
#形参和实参关联方式基于实数的顺序
# ~ describe_pet(type='hamster',name='harry')
# ~ describe_pet(type='harry',name='hamster')
#关键字实参,顺序可忽略
# ~ def describe_pet(name,type='dog'): #形参指定默认值
# ~ print("\nI have a "+type+".")
# ~ print("My "+type+"'s name is "+name.title()+'.')
# ~ describe_pet(name='harry')
# ~ describe_pet('mili')
# ~ def format_name(first_name,last_name):
# ~ full_name = first_name+' '+last_name
# ~ return full_name.title()
# ~ music = format_name('liu','longfei')
# ~ print(music)
# ~ def format_name(first_name,last_name,middle_name=''):
# ~ if middle_name: #Python将非空字符串解读为True
# ~ full_name = first_name+' '+middle_name+' '+last_name
# ~ else:
# ~ full_name = first_name+' '+last_name
# ~ return full_name.title()
# ~ music = format_name('liu','long','fei')
# ~ print(music)
# ~ music = format_name('liu','longfei')
# ~ print(music)
#-----------------------------------------------------
#返回字典
# ~ def build_person(first_name,last_name):
# ~ person = {'first':'first_name','last':'last_name',}
# ~ return person
# ~ music = build_person('liu','shuai')
# ~ print(music)
#-----------------------------------------------------
#结合使用函数和 while 循环
# ~ def format_name(first_name,last_name):
# ~ full_name = first_name+' '+last_name
# ~ return full_name.title()
# ~ while True:
# ~ print("\nPlease tell me your name:")
# ~ print("(enter 'q' at any time to quit)")
# ~ f_name = input("First name:")
# ~ if f_name =='q':
# ~ break
# ~ l_name = input("Last name:")
# ~ if l_name == 'q':
# ~ break
# ~ format_name0 = format_name(f_name,l_name)
# ~ print("\nHello,"+format_name0+'!')
#-----------------------------------------------------
#传递列表
# ~ def users(names):
# ~ for name in names:
# ~ msg = 'Hello, '+name.title()
# ~ print(msg)
# ~ username = ['A','B','C']
# ~ users(username)
#-----------------------------------------------------
#未使用函数修改列表
# ~ unprinted_designs = ['iphone','samsang','huawei']
# ~ completed_models = []
# ~ while unprinted_designs:
# ~ completed_model = unprinted_designs.pop()
# ~ print("Current:"+completed_model)
# ~ completed_models.append(completed_model)
# ~ print('completed_models has printed')
# ~ for xx in completed_models:
# ~ print(xx)
#在函数中修改列表
# ~ def remove(unprinted_designs,completed_models):
# ~ while unprinted_designs:
# ~ completed_model = unprinted_designs.pop()
# ~ print("Current:"+completed_model)
# ~ completed_models.append(completed_model)
# ~ def show_model(completed_models):
# ~ print('completed_models has printed')
# ~ for xx in completed_models:
# ~ print(xx)
# ~ unprinted_designs = ['iphone','samsang','huawei']
# ~ completed_models = []
# ~ remove(unprinted_designs,completed_models)
# ~ show_model(completed_models)
#禁止函数修改列表
#function_name(list_name[:]) 将列表的副本传递给函数
# ~ unprinted_designs = ['iphone','samsang','huawei']
# ~ completed_models = []
# ~ remove(unprinted_designs[:],completed_models)
# ~ print(unprinted_designs)
# ~ print(completed_models)
#-----------------------------------------------------
# *形参,传递任意数量(包括0)的实参
#形参名*toppings中的*让Python创建名为toppings的空元组,并将收到的所有值都封装到这个元组中
# ~ def make_pizza(*toppings):
# ~ print('\nMaking a pizza with following toppings')
# ~ for top in toppings:
# ~ print('- '+top)
# ~ make_pizza('mushroom')
# ~ make_pizza('apple','orange','banana')
# ~ def make_pizza(size,*toppings):
# ~ print('\nMaking a '+str(size)+'-inch pizza')
# ~ for top in toppings:
# ~ print('- '+top)
# ~ make_pizza(12)
# ~ make_pizza(12,'mushroom')
# ~ make_pizza(12,'apple','orange','banana')
# **形参,传递任意数量(包括0)的键值对
#形参**让Python创建名为user_info的空字典,将收到的所有名称—值对都封装到这个字典中
# ~ def build_profile(first,last,**info):
# ~ profile = {}
# ~ profile['first_name'] = first
# ~ profile['last_name'] = last
# ~ for key,value in info.items():
# ~ profile[key] = value
# ~ return profile
# ~ user_profile = build_profile('li','ming',age=24,sex='male')
# ~ print(user_profile)
#-----------------------------------------------------
# 将函数存储在模块(独立文件)中
# 导入整个模块
# ~ import function
# ~ function.make_pizza(16)
# ~ function.make_pizza(16,'mushroom','green peppers')
# 给模块制定别名
# ~ import function as f
# ~ f.make_pizza(16)
# ~ f.make_pizza(16,'mushroom','green peppers')
# 导入特定的函数,调用时无需指定模块名
# from module_name import function_name
# 导入一个函数
# from module_name import function_0, function_1, function_2
# 导入任意个函数
# ~ from function import make_pizza
# ~ make_pizza(16)
# ~ make_pizza(16,'mushroom','green peppers')
# as给函数指定别名
# ~ from function import make_pizza as mp
# ~ mp(16)
# ~ mp(16,'mushroom','green peppers')
# *导入模块所有函数
from function import *
make_pizza(16)
make_pizza(16,'mushroom','green peppers')