1、向函数传递信息
1 def greet_user(username): 2 print('Hello,' + username.title() + '!') 3 greet_user('jesse')
2、位置实参
1 def greet_user(animal_type,pet_name): 2 print(' I have a' + animal_type + '.') 3 print('My' + animal_type + 'name is' + pet_name.title() + '.') 4 greet_user('hamster','harry')
调用函数多次,可以根据调用的函数任意次
def greet_user(animal_type,pet_name): print(' I have a' + animal_type + '.') print('My' + animal_type + 'name is' + pet_name.title() + '.') greet_user('hamster','harry') greet_user('dog','wille')
3、关键字实参
关键字实参是传递给函数的名称--值对。因些向函数传递实参时不会混淆。关键字实参让你无需考虑函数调用中的实参顺序。
def greet_user(animal_type,pet_name): print(' I have a' + animal_type + '.') print('My' + animal_type + 'name is' + pet_name.title() + '.') greet_user(animal_type='hamster',pet_name='harry') greet_user(pet_name='harry',animal_type='hamster')
注意:使用关键字实参时,务必准确地指定函数定义中的形参名。
4、返回值
函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值。在函数中,可使用return语句将值返回到调用函数的代码行。返回值让你能够将程序的大部分繁重工作移到函数中去完成,从而简化主程序。
4.1 返回简单值
def get_formatted(first_name,last_name): full_name=first_name + ' ' + last_name return full_name.title() musician =get_formatted('jimi','hendrix') print(musician)
4.2 让实参变的可选
def get_formatted(first_name,last_name,midddle_name=''): if midddle_name: full_name=first_name + ' '+ midddle_name + ' ' + last_name else: full_name=first_name + ' ' + last_name return full_name musician=get_formatted('jimi','hendirx') print(musician) # musician=get_formatted('john','hooker','lee') # print(musician)
4.3 返回字典
def build_person(first_name,last_name): person={'first':first_name,'last':last_name} return person musician=build_person('jimi','hendrix') print(musician)
可选形参:
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)
5、结合使用函数和while循环
def get_formatted(first_name,last_name): full_name=first_name+ ' ' + last_name return full_name.title() while True: print(' pls 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=get_formatted(f_name,l_name) print(' Hello,' + formatted + '!')
6、传递列表
1 usernames=['hannah','ty','margot'] 2 def greet_users(username): 3 for name in username: 4 msg='Hello,' + name.title() 5 print(msg) 6 greet_users(usernames)