终于到了最重要最常用的一章内容了
首先我们来定义并使用一个函数,自己看一看函数的定义形式
#定义函数
def greet_user(): #def 是定义 函数的关键字
"""显示简单的问候语"""#说明函数的功能
print("Hello!") #函数的具体作用
#使用函数
greet_user() #调用即显示问候语
向函数传递信息
def greet_user(username): #此处的username是一个形参 --- 类似于数学函数f(x)里的x
"""显示简单的问候语"""
print("Hello, " + username.title() + "!")
greet_user('jesse') #jesse是一个实参 --- 相当于给f(x)一个具体的值
传递实参
1 位置实参
#还是描述宠物的例子
def describe_pet(animal_type, pet_name): #含有两个形参 --- 类似于数学里的二元函数
"""显示宠物信息"""
print("\nI have a " + animal_type + ".")
print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet('dog', 'petter') #dog 传递给animal_type, petter传递给pet_name
######当然函数是用来多次调用的
describe_pet('cat', 'zonghui')
2 关键字实参
#依然是描述宠物的例子
def describe_pet(animal_type, pet_name):
"""显示宠物信息"""
print("\nI have a " + animal_type + ".")
print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet(pet_name = 'zonghui', animal_type = 'cat')
#没对应好位置,但是指定了形参
3 默认值 --- 为形参设置默认值
#描述宠物的例子。。。。
def describe_pet(pet_name, animal_type = 'cat'):
#默认宠物类型都是cat, 注意把默认的放最后面
"""显示宠物信息"""
print("\nI have a " + animal_type + ".")
print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet(pet_name = 'zonghui') #只需要指定一个pet_name就够了
######等效函数调用
describe_pet('zonghui')
#输出结果和以上一致,就是说在确定的情况下,指不指定形参都行
函数的返回值
#一个返回完整姓名的函数 --- 仅仅为展示返回值
def get_formatted_name(first_name, last_name): #函数名字略长啊 --- get_formatted_name
"""返回整洁的名字"""
full_name = first_name + " " + last_name
return full_name.title() #return将结果返回给函数
musician = get_formatted_name('jimi', 'hendrix')
print(musician)
让实参变成可选择的
例如上面的例子,有的人还有中间名,所以可能需要3个形参,可以让有一个形参默认是空字符
#还是一个返回完整姓名的函数
def get_formatted_name(first_name, last_name, middle_name = ""): #默认形参放在最后
"""返回整洁的名字"""
if middle_name: #middle_name默认是空字符,也就是假
full_name = first_name + " " + middle_name + " " + last_name
else:
full_name = first_name + " " + last_name
return full_name.title() #return将结果返回给函数
musician = get_formatted_name('jimi', 'hendrix')
print(musician)
musician = get_formatted_name('john', 'hooker', 'lee')
print(musician)
返回字典
def build_person(first_name, last_name, age = ""):
"""返回一个字典,包含有关一个人的信息"""
person = {'first': first_name, 'last': last_name}
if age:
person['age'] = age #如果输入了age,则增加一个键
return person
musician = build_person('jimi', 'hendrix', age = 27)
print(musician)
结合while循环使用函数
#一个返回完整姓名的函数 ......
def get_formatted_name(first_name, last_name): #函数名字略长啊 --- get_formatted_name
"""返回整洁的名字"""
full_name = first_name + " " + last_name
return full_name.title()
while True:
print("\nPlease tell me your name:")
print("(enter 'q' to quit at any time)")
f_name = input("First name:")
if f_name == 'q':
break
l_name = input("Last name:")
if l_name == 'q':
break
formatted_name = get_formatted_name(f_name, l_name)
print("\nHello, " + formatted_name + "!")
![](https://img.haomeiwen.com/i15126004/9cc9693d9cfdacf2.jpg)
4624ecd66fa6bca0357faced937bc441.jpg
网友评论