python(14):函数(1)
2022-04-07 本文已影响0人
Z_bioinfo
1.定义函数
def greet_user():#使用关键字def告诉python定义一个函数,并向python指出函数名greet_user(),它不需要任何信息就能完成其工作,因此括号是空的,最后,定义以冒号结尾
"""显示简单的问候语"""
print('hello!')#函数体,greet_user()只做一项工作,打印hello!
greet_user()#调用greet_user()函数
hello!
2.向函数传递信息
def greet_user(username):#在greet_user()的括号内添加username,就可让函数接受给username指定的任何值
"""显示简单的问候语"""
print('hello, ' + username.title() + '!')
greet_user('da ming')#调用greet_user()函数,并向它执行print语句所需的信息,这个函数接受传递给它的名字,并向这个人发出问候
hello, Da Ming!
3.形参和实参
前面定义函数greet_user()时,要求给变量username指定一个值,调用这个函数并提供这种信息(人名)时,它将打印相应的问候语。
在函数greet_user()种,变量username是一个形参,函数完成其工作所需要的一项信息。在代码greet_user('da ming')中,值'da ming'是一个实参。实参时调用函数时传递给函数的信息。
在调用函数时,将要让函数使用的信息放在括号内,在greet_user('da ming')中,将实参'da ming'传递给函数greet_user(),这个值被存贮在形参username中。
4.传递实参
鉴于函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参。
向函数传递实参的方式有很多,可使用位置实参,这要求实参的顺序与形参的顺序相同;也可使用关键字实参,其中每个实参都由变量名和值组成;还可以使用列表和字典
###1.位置实参,要求实参的顺序与形参的顺序相同
def describe_pet(animal_type, pet_name):
"""显示宠物的信息"""
print('\nI have a ' + animal_type + '.')
print('my ' + animal_type + " 's name is " + pet_name + '.')
describe_pet('dog', 'bei bei')
I have a dog.
my dog 's name is bei bei.
#调用函数多次
def describe_pet(animal_type, pet_name):
"""显示宠物的信息"""
print('\nI have a ' + animal_type + '.')
print('my ' + animal_type + " 's name is " + pet_name + '.')
describe_pet('dog', 'bei bei')
describe_pet('cat', 'ni ni')#再调用一次describe_pet()即可
I have a dog.
my dog 's name is bei bei.
I have a cat.
my cat 's name is ni ni.
=========================================
#2.关键字实参:传递给函数的名称-值对,无需考虑函数调用的实参顺序,还清楚的指出了函数调用中各个值的用途
def describe_pet(animal_type, pet_name):
"""显示宠物的信息"""
print('\nI have a ' + animal_type + '.')
print('my ' + animal_type + " 's name is " + pet_name + '.')
describe_pet(animal_type = 'dog', pet_name = 'bei bei')
I have a dog.
my dog 's name is bei bei.
=================================
#3.默认值
#编写函数时,可以给每个形参指定默认值,在调用函数中给形参提供了实参时,python将使用指定的实参值;否则,将使用形参的默认值,
def describe_pet(animal_type, pet_name = 'bei bei'):#默认名字叫'bei bei'
"""显示宠物的信息"""
print('\nI have a ' + animal_type + '.')
print('my ' + animal_type + " 's name is " + pet_name + '.')
describe_pet(animal_type = 'dog')
#或者更简单的语句
def describe_pet(animal_type, pet_name = 'bei bei'):#默认名字叫'bei bei'
"""显示宠物的信息"""
print('\nI have a ' + animal_type + '.')
print('my ' + animal_type + " 's name is " + pet_name + '.')
describe_pet('dog')
I have a dog.
my dog 's name is bei bei.
#如果要描述的动物名字不叫'bei bei'
def describe_pet(animal_type, pet_name = 'bei bei'):#默认名字叫'bei bei'
"""显示宠物的信息"""
print('\nI have a ' + animal_type + '.')
print('my ' + animal_type + " 's name is " + pet_name + '.')
describe_pet(animal_type = 'dog', pet_name = 'ni ni')
I have a dog.
my dog 's name is ni ni.