8.3.1.返回简单值
#接受名和姓并返回整洁的姓名 def get_formatted_name(first_name,last_name): """返回整洁的姓名""" full_name=first_name+' '+last_name return full_name.title() mussician=get_formatted_name("jimi","hendrix") print(mussician) >>> ==================== RESTART: D:/python学习/第8章 函数/8.3.1.py ==================== Jimi Hendrix >>>
8.3.2 让实参变成可选的
以上实例扩展:使其还可以处理中间名。
#接受名、中间名和姓并返回整洁的姓名 def get_formatted_name(first_name,middle_name,last_name): """返回整洁的姓名""" full_name=first_name+' '+middle_name+' '+last_name return full_name.title() mussician=get_formatted_name("join","lee","hooker") print(mussician) >>> ==================== RESTART: D:/python学习/第8章 函数/8.3.2.py ==================== Join Lee Hooker >>>
如果中间名变成可选,可给实参middle_name指定一个默认值(空字符串),并将其移到形参列表的末尾,在调用函数时若没有提供中间名则使用默认值。
#接受名、中间名和姓并返回整洁的姓名 """ 如果中间名变成可选,可给实参middle_name指定一个默认值(空字符串), 并将其移到形参列表的末尾,在调用函数时若没有提供中间名则使用默认值。 """ def get_formatted_name(first_name,last_name,middle_name=' '): """返回整洁的姓名""" full_name=first_name+' '+middle_name+' '+last_name return full_name.title() #不提供中间名 mussician=get_formatted_name("join","hooker") print(mussician) #提供中间名 mussician=get_formatted_name("join","lee","hooker") print(mussician) >>> =================== RESTART: D:/python学习/第8章 函数/8.3.2l.py =================== Join Hooker Join Hooker Lee >>>
8.3.3 返回字典
函数可返回任何类型的值,包括列表和字典等复杂的数据。
def build_person(first_name,last_name): """返回一个字典,其中包含有关一个人的信息""" person={"first":first_name,"last":last_name} return person musician=build_person("jimi","hendrix") print(musician) >>> ==================== RESTART: D:/python学习/第8章 函数/8.3.3.py ==================== {'last': 'hendrix', 'first': 'jimi'} >>>
也可以有可选形参:
#可以增加可选形参(age=" ") def build_person(first_name,last_name,age=""): """返回一个字典,其中包含有关一个人的信息""" person={"first":first_name,"last":last_name} if age: person['age']=age return person #有可选形参age musician=build_person("jimi","hendrix",age=27) print(musician) print() #无可选形参age musician=build_person("jimi","hendrix") print(musician) >>> =================== RESTART: D:/python学习/第8章 函数/8.3.3l.py =================== {'last': 'hendrix', 'first': 'jimi', 'age': 27} {'last': 'hendrix', 'first': 'jimi'} >>>
8.3.4 结合使用函数和while循环
#结合使用while循环,以更正规的方式问候用户 def get_formatted_name(first_name,last_name): """返回整洁的姓名""" full_name=first_name+' '+last_name return full_name.title() #这个一个无限循环! while True: print("\nPlease tell me you name:") f_name=input("First name:") #如果输入q退出循环 if f_name=="q": break #如果输入q退出循环 l_name=input("Last name:") if l_name=="q": break format_name=get_formatted_name(f_name,l_name) print("\nHello,"+format_name+"!") 运行结果: >>> ==================== RESTART: D:/python学习/第8章 函数/8.3.4.py ==================== Please tell me you name: First name:zhang Last name:san Hello,Zhang San! Please tell me you name: First name:li Last name:si Hello,Li Si! Please tell me you name: First name:wang Last name:q >>>