目录
更多关于Python函数的知识见如下博文:
《Python编程从入门到实践》记录之Python函数定义、使用
《Python编程从入门到实践》记录之Python函数实参传递(位置实参、关键字实参、列表和字典)
《Python编程从入门到实践》记录之Python函数传递任意数量的实参
函数如果在函数体内直接输出,则不需要返回值。但是,很多情况,则需要函数经过处理之后返回一个或一组值。
函数中,使用return语句将值返回到调用函数的代码行。函数可以返回任何类型的值,包括列表和字典等较复杂的数据结构
1、返回简单值
下边例子,接受名、姓和中间名(定义时有默认值)并返回整洁的姓名:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# middle_name有默认值:空字符串
def get_formatted_name(first_name, last_name, middle_name=''):
"""返回整洁的姓名"""
if middle_name:
full_name = first_name + ' ' + middle_name + ' ' + last_name
else:
full_name = first_name + ' ' + last_name
return full_name.title() #返回整洁姓名
musician = get_formatted_name('jimi', 'hendrix') # 中间名使用默认值
print(musician)
musician = get_formatted_name('john', 'hooker', 'lee') # 中间名使用lee
print(musician)
运行结果:
2、返回字典
下面的函数接受姓名的组成部分,并返回一个表示人的字典:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# age有默认值空字符
def build_person(first_name, last_name, age=''):
"""返回一个字典, 其中包含有关一个人的信息"""
person = {'first': first_name, 'last': last_name}
if age:
person['age'] = age
return person # 返回字典
musician = build_person('jimi', 'hendrix', age=27)
print(sorted(musician))
运行结果:
3、结合使用函数和while循环
可将函数同本书前面介绍的任何Python结构结合起来使用。
结合上述例子和while循环,以更正规的方式问候用户。下面尝试使用名和姓跟用户打招呼:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
def get_formatted_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
formatted_name = get_formatted_name(f_name, l_name)
print("\nHello, " + formatted_name + "!")
运行结果(红色方框为输入值):