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