# _*_ coding:utf-8 _*_
"""
name:zhangxingzai
date:2022/11/6
form:《Python编程从入门到实践》
"""
函数并非总是直接显示输出,它还可以处理一些数据,并返回一个或一组值,函数返回的值称为返回值
在函数中,可以使用return语句,将值返回到调用函数的代码行。
简单返回值,下面来看一个返回全名的函数
def get_name(first_name, last_name):
"""返回全名"""
full_name = f'{first_name}{last_name}'
return full_name.title()
tester = get_name('zhang', 'san')
print(tester)
让实参变成可选的,可以使用默认值来让实参变成可选的
def get_name(first_name, last_name, middle_name=""): # 将中间名设置默认为空字符串
"""返回全名"""
if middle_name: # if middle_name = True
full_name = f'{first_name}{middle_name}{last_name}'
else:
full_name = f'{first_name}{last_name}'
return full_name.title()
tester1 = get_name('zhang', 'san')
tester2 = get_name('zhang', 'san', 'xiao')
print(tester1)
print(tester2)
函数的返回值可以是任何类型的值,包括列表和字典等复杂的数据结构
下面是函数接收姓名的组成部分,并返回一个表示人的字典
def build_person(first_name, last_name):
"""返回一个字典,其中包含有关一个人的信息"""
person = {'first': first_name, 'last': last_name}
return person
tester = build_person('zhang', 'san')
print(tester)
扩展上面的函数
def build_person(first_name, last_name, age = None):
"""返回一个字典,其中包含有关一个人的信息"""
person = {'first': first_name, 'last': last_name}
if age:
person['age'] = age # 这里[]中别忘记引号,不然会把键值也赋值改掉
return person
tester = build_person('zhang', 'san', age=18)
print(tester)
结合使用函数和while循环
def get_name(first_name, last_name):
"""返回全名"""
full_name = f'{first_name}{last_name}'
return full_name.title()
# 这是一个无限循环
while True:
print('请输入您的姓名:\n输入q即可退出')
f_name = input('First name:')
if f_name == 'q': # 这里设置条件,如果用户输入q,即可退出循环
break
l_name = input('Last name:')
if l_name == 'q':
break
tester = get_name(f_name, l_name)
print(f'你好,{tester}')