函数2返回值-python进阶篇二

  一、返回值

  函数返回的值被称为返回值返 。在函数中,可使用return 语句将值返回到调用函数的代码行。

  return可以返回一个值,也可以返回多个值,如果是多个值类似,return a,b,c,将会把值封装到元祖中,将元祖作为整体返回:(a,b,c)

def GetMaxAndMin(nuberms):
    for i in range(0, len(nuberms) - 1):
        for j in range(0, len(nuberms) - 1 - i):
            if nuberms[j] > nuberms[j + 1]:
                nuberms[j], nuberms[j + 1] = nuberms[j + 1], nuberms[j]
    xiao = nuberms[0]
    da = nuberms[-1]
    return xiao, da


x, d = GetMaxAndMin([22, 45, 14, 86, 97, 105])
print('最小是:{},最大是:{}'.format(x, d))  # 最小是:14,最大是:105

 

def get_formatted_name(first_name, last_name):
"""返回整洁的姓名"""
    full_name = first_name + ' ' + last_name
    return full_name.title()
musician = get_formatted_name('jimi', 'hendrix')
print(musician)
#Jimi Hendrix

   让实参变成可选的,例如,假设我们要扩展函数get_formatted_name() ,使其还处理中间名。为此,可将其修改成类似于下面这样:

def get_formatted_name(first_name, middle_name, last_name):
    """返回整洁的姓名"""
    full_name = first_name + ' ' + middle_name + ' ' + last_name
    return full_name.title()
musician = get_formatted_name('john', 'lee', 'hooker')
print(musician)

  只要同时提供名、中间名和姓,这个函数就能正确地运行。然而,并非所有的人都有中间名,但如果你调用这个函数时只提供了名和姓,它将不能正确地运行。为让中间名变成可选的,可给实参middle_name 指定一个默认值——空字符串,并在用户没有提供中间名时不使用这个实参。为让get_formatted_name() 在没有提供中间名时依然可行,可给实参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')
print(musician)

'''
Jimi Hendrix
John Lee Hooker
'''

  二、返回字典

  函数可返回任何类型的值,包括列表和字典等较复杂的数据结构。例如,下面的函数接受姓名的组成部分,并返回一个表示人的字典:

def build_person(first_name, last_name):
"""返回一个字典,其中包含有关一个人的信息"""
    person = {'first': first_name, 'last': last_name}
    return person
musician = build_person('jimi', 'hendrix')
print(musician)
#{'first': 'jimi', 'last': 'hendrix'}

  加入处理数据的能力

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(musician)

  结合使用函数和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 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 + "!")    

 

posted @ 2021-09-10 10:11  逍遥abin  阅读(114)  评论(0编辑  收藏  举报