- 函数可以处理数据并返回一个值或一组值。
- 返回的值称为返回值。
- return 语句将值发送回调用函数的行。
- 优点:通过将工作委派给函数来简化主程序。
def add_numbers(a, b):
return a + b
result = add_numbers(5, 3)
print(result) # Output: 8
返回一个简单值:
函数可以根据输入返回单个格式化结果。
例如,设置人员全名的格式
def get_formatted_name(first_name, last_name):
full_name = f"{first_name} {last_name}"
return full_name.title()
musician = get_formatted_name('Nidhi', 'Ashtikar')
print(musician) # Output: Nidhi Ashtikar
get_formatted_name() 函数将名字和姓氏组合在一起,并使用 title() 对其进行格式化,然后返回结果。
可选参数:
默认参数值可用于使参数成为可选参数。
允许更灵活的函数调用,其中某些信息可能并不总是必要的。
def get_formatted_name(first_name, last_name, middle_name=''):
if middle_name:
full_name = f"{first_name} {middle_name} {last_name}"
else:
full_name = f"{first_name} {last_name}"
return full_name.title()
# Calling the function with and without a middle name:
musician1 = get_formatted_name('Nidhi', 'ashtikar')
musician2 = get_formatted_name('nidhi', 'Ashtikar', 'Nid')
print(musician1) # Output: Nidhi Ashtikar
print(musician2) # Output: Nidhi Nid Ashtikar
通过提供默认空字符串 middle_name='',将中间名设为可选。
该函数检查是否提供了中间名,并相应地设置格式。
返回字典:
函数可以返回复杂的数据结构,如字典。
这允许以结构化格式组织相关数据。
def build_person(first_name, last_name):
person = {'first': first_name, 'last': last_name}
return person
musician = build_person('nidhi', 'ashtikar')
print(musician) # Output: {'first': 'nidhi', 'last': 'ashtikar'}
该函数将名字和姓氏存储在字典中,并返回整个字典。
添加可选字典值:
使用 None 作为可能并不总是提供的可选参数的默认值。
def build_person(first_name, last_name, age=None):
person = {'first': first_name, 'last': last_name}
if age:
person['age'] = age
return person
musician = build_person('nidhi', 'ashtikar', age=35)
print(musician) # Output: {'first': 'nidhi', 'last': 'ashtikar', 'age': 35}
仅当提供可选的 age 参数时,才会将其添加到字典中。
def build_person(first_name, last_name, age=None):
person = {'first': first_name, 'last': last_name}
if age:
person['age'] = age
return person
musician = build_person('nidhi', 'ashtikar')
print(musician) # Output: {'first': 'nidhi', 'last': 'ashtikar'}
在循环中使用函数:
可以在循环中使用函数,以根据用户输入重复执行操作。
示例:一个函数,用于格式化 while 循环中使用的名称以问候用户。
def get_formatted_name(first_name, last_name):
full_name = f"{first_name} {last_name}"
return full_name.title()
while True:
print("\nPlease tell me your name:")
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(f"\nHello, {formatted_name}!")
>>
Please tell me your name:
First name: Nidhi
Last name: Ashtikar
Hello, Nidhi Ashtikar!
Please tell me your name:
First name: q
>
用户可以重复输入他们的名字,程序会向他们打招呼。循环一直持续,直到用户输入 'q' 退出。