1..返回值:函数并非总是直接显示输出,它可以处理一些数据,并返回一个或一组值,函数返回的值被称为返回值。在函数中使用return语句将值返回到调用函数的代码行。调用返回值的函数时,需要提供一个变量,用于存储返回的值。

2.return 和 print的区别

a.在执行函数的时候return无法打印出值,return返回的结果只能用于给变量赋值,return返回值只能通过print打印出来

b.在函数中,凡是遇到return,这个函数就会结束

def func1():
    for i in range(1, 5):
        print(i)
# print(func1())输出结果为 1 2 3 4 none 直接func1的结果为1 2 3 4


def func2():
    for i in range(1, 5):
        return i
# print(func2())输出结果为1,直接func2()没有输出


func1()
print(func1())
print(func2())
func2()

3.返回字典:函数可以返回任何类型的值,包括列表和字典。同时可以使用while循环

def one_user(user_name, pass_word):
    info = {'name': user_name,
            'password': pass_word}
    return info


while True:
    print('you can quit whenever you enter a q')
    user_name1 = input('create a user name: ')
    if user_name1 == 'q':
        break
    pass_word1 = input('create a pass word: ')
    if pass_word1 == 'q':
        break
    print(one_user(user_name1, pass_word1))

4.向函数传递列表

def loved_music(new_songs, old_songs):
    while new_songs:
        choosed_song = input('which song do you want to listen? ')
        new_songs.remove(choosed_song)
        old_songs.append(choosed_song)
        for loved_song in old_songs:
            print('%s is a good song' % loved_song)


new_songs = ['roar', 'lemon', 'sugar', 'hero']
old_songs = []

loved_music(new_songs[:], old_songs)  # 不会修改原列表new_songs
print(new_songs)

 5.传递任意数量的实参

def favorite_songs(*songs):  # 使用* 创建一个名为songs的空元组,将收到的所有实参都封装到这个元组中
    """打印最喜欢的音乐"""  # 文档字符串,描述函数的作用
    print(songs)


favorite_songs('lemon', 'city song', 'stray')

如果要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后

6.使用任意数量的关键字实参

def make_car(manufacturer, type, **car_info):  # 使用**创建一个字典,将收到的所有键值对都封装到这个字典中
    
    car = {}
    car['manufacturer _name'] = manufacturer
    car['type_name'] = type
    for key, value in car_info.items():
        car[key] = value
    return car


cars = make_car('subaru', 'outback', color='blue', two_package=True)
print(cars)
print(make_car('subaru', 'outback', color='blue', two_package=True))

 

posted on 2019-04-11 21:40  zhanyie  阅读(505)  评论(0编辑  收藏  举报