# 位置实参defdescribe_pet(animal_type,pet_name):"""显示宠物的信息"""print("\nI have a "+ animal_type +".")print("My "+ animal_type +"'s name is "+ pet_name.title()+".")
describe_pet('hamster','harry')
I have a hamster.
My hamster's name is Harry.
# 调用函数多次defdescribe_pet(animal_type,pet_name):"""显示宠物的信息"""print("\nI have a "+ animal_type +".")print("My "+ animal_type +"'s name is "+ pet_name.title()+".")
describe_pet('hamster','harry')
describe_pet('dog','willie')
I have a hamster.
My hamster's name is Harry.
I have a dog.
My dog's name is Willie.
关键字实参
关键字实参是传递给函数的名称—值对,直接在实参中将名称和值关联起来
使用关键字实参时,准确地指定函数定义中的形参名
defdescribe_pet(animal_type,pet_name)print("\nI have a "+ animal_type +".")print("My "+ animal_type +"'s name is "+ pet_name.title()+".")
describe_pet(animal_type ='hamster',pet_name ='harry')
默认值
给每个形参指定默认值,可在函数调用中省略相应的实参,使用默认值可以简化函数调用
如果提供了实参,将忽略形参的默认值
defdescribe_pet(pet_name,animal_type ='dog'):print("\nI have a "+ animal_type +".")print("My "+ animal_type +"'s name is "+ pet_name.title()+".")
describe_pet('willie')
describe_pet(animal_type='hamster',pet_name='harry')
I have a dog.
My dog's name is Willie.
I have a hamster.
My hamster's name is Harry.
# 等效的函数调用defdescribe_pet(pet_name,animal_type ='dog'):print("\nI have a "+ animal_type +".")print("My "+ animal_type +"'s name is "+ pet_name.title()+".")
describe_pet('willie')
describe_pet(pet_name='willie')
describe_pet('harry','hamster')
describe_pet(pet_name='harry',animal_type='hamster')
describe_pet(animal_type='hamster',pet_name='harry')
I have a dog.
My dog's name is Willie.
I have a dog.
My dog's name is Willie.
I have a hamster.
My hamster's name is Harry.
I have a hamster.
My hamster's name is Harry.
I have a hamster.
My hamster's name is Harry.
练习
# 1.T恤# 编写一个名为 make_shirt() 的函数,它接受一个尺码以及要印到 T 恤上的字样。这个函数应打印一个句子,概要地说明 T 恤的尺码和字样。# 使用位置实参调用这个函数来制作一件 T 恤;再使用关键字实参来调用这个函数。defmake_shirt(size,style):print("衣服的尺码是: "+str(size))print("衣服的样式是: "+ style.title())
make_shirt(20,'nike')
衣服的尺码是: 20
衣服的样式是: Nike
# 2.大号T恤# 修改函数 make_shirt() ,使其在默认情况下制作一件印有字样 #“I love Python” 的大号 T 恤。调用这个函数来制作如下 T 恤:一件印有默认字样的大号# T恤、一件印有默认字样的中号 T 恤和一件印有其他字样的 T 恤(尺码无关紧要)defmake_shirt(size,style='l love python'):print("衣服的尺码是: "+ size )print("衣服的样式是: "+ style.title())
make_shirt('大号')
make_shirt('小号')
make_shirt('中号')
衣服的尺码是: 大号
衣服的样式是: L Love Python
衣服的尺码是: 小号
衣服的样式是: L Love Python
衣服的尺码是: 中号
衣服的样式是: L Love Python
# 3.城市# 编写一个名为 describe_city() 的函数,它接受一座城市的名字以及该城市# 所属的国家。这个函数应打印一个简单的句子,如 Reykjavik is inIceland 。# 给用于存储国家的形参指定默认值。为三座不同的城市调用这个函数,# 且其中至少有一座城市不属于默认国家。defdescribe_city(name,country='中国'):print(name +" is in "+ country)
describe_city(name ='上海')
describe_city('北京')
describe_city(name='东京',country ='日本')