函数
定义函数
我们先用函数打印一个问候语将他命名为greet_user()
例如
def greet_user():
print("hello,world!")
greet_user()
def来告诉python你要定义一个函数,函数名为greet_user(),他不需要任何信息就能工作,因此括号就是空的,最后定义以冒号结尾。
代码print(“hello,world!”)是函数内的唯一一行代码,因此greet_user()只做了一项工作就是输出hello,world,之后我们调用函数,执行代码这个函数不需要任何信息,调用他只需输入greet_user()即可。
我们还可以在函数def greet_user()括号里添加username。这可以让函数接受你给username指定的任何值,当我们调用函数greet_user()时可以在括号里输入名字
例如:
def greet_user(username):
print(f"hello,{username.title()}!")
greet_user('tom')
函数接受了这个名字将会执行
hello,Tom
实参和形参
在我们上面那个代码中
def greet_user(username):
print(f"hello,{username.title()}!")
greet_user('tom')
在函数greet_user()定义中变脸username是一个形参,就是函数完成工作时需要的信息。
在代码greet_user(‘tom’)中值‘tom’就是一个实参,就是调用函数时传给函数的信息。
传递实参
每个实参都会关联到函数中的一个形参,就是说当我们有多个形参和实参时时按照顺序进行关联的。
例如
def describe_pet(animal_type,pet_name):
print(f"\ni have a{animal_type}.")
print(f"my {animal_type}'s name is {pet_name.tetle()}.")
describe_pet('hamster','harry')
这时实参hamster将会赋给形参animal_type,实参harry将会赋值给形参pet_name.在函数内可以使用这两个形参来表示这两个实参。
我们可以多次调用一个函数多次,当我们想要描述多个宠物的时候只需要多次调用函数就可以
例如
def describe_pet(animal_type,pet_name):
print(f"\ni have a{animal_type}.")
print(f"my {animal_type}'s name is {pet_name.tetle()}.")
describe_pet('hamster','harry')
describe_pet('dog','willie')
i have a hamster.
my hamster's nmae is Harry.
i have a dog
my dog's name is Willie.
在函数中实参的位置顺序十分重要,如果位置错误可能就会变成笑话。
def describe_pet(animal_type,pet_name):
print(f"\ni have a{animal_type}.")
print(f"my {animal_type}'s name is {pet_name.tetle()}.")
describe_pet('harry','hamster')
i have a harry.
my harry's nmae is hamsrter.
我们将两个实参调换了一下位置,这与我们设置的理解的方式不同,就会出现种类是名字,名字是种类这种笑话。