自学Python笔记-第八章函数以及课后代码(上)
程序员文章站
2024-03-14 23:06:01
...
断更三天,我很抱歉。
函数,是带名字的代码块。要执行函数定义的特定任务时,可调用该函数
定义函数
例子
def greet_user():
"""显示简单的问候语"""
print("Hello!")
greet_user()
向函数传递参数
def greet_user(username):
"""显示简单的问候语"""
print("Hello!" + username.title())
greet_user('JAEN')
其中 username 是一个形参, ‘JAEN’是一个实参
传递实参
向函数传递实参的方式很多,可以使用位置实参,这要求实参的顺序与形参的顺序相同;
也可使用关键字实参,其中每个实参都由变量名和值组成;
还可以使用列表和字典
默认值
编写函数时,可给每个形参指定默认值
等效的函数调用(注意看代码里的注释)
def describe_pet(pet_name, animal_type='dog'):
"""显示宠物信息"""
print("\nI have a " + animal_type + ".")
print("My " + animal_type + "'s name is " + pet_name.title() + ".")
# 一条名为willie的小狗
describe_pet('willie') # 位置实参,还有一个默认值dog
describe_pet(pet_name='willie') # 关键字实参,加一个默认值dog
# 一只名为Harry的仓鼠
describe_pet('harry', 'hamster') # 位置实参
describe_pet(pet_name='harry', animal_type='hamster') # 关键字实参
describe_pet(animal_type='hamster', pet_name='harry') # 关键字实参,能交换位置
要注意避免实参错误
返回值
函数返回的值被称为返回值。在函数中,可以用return语句将值返回调用函数的代码行。
返回值让你能够将程序的大部分繁重的工作移到函数中去完成,从而简化主程序
让实参变成可选的
有时候需要让实参变成可选的。一般将形参的默认值定为---空字符串。然后用if判断语句来处理。
返回字典
函数可以返回任何类型的值,包括列表和字典等较复杂的数据结构。
例子:
def build_person(first_name, last_name):
"""返回一个字典,其中包含有关一个人的信息"""
person = {'first': first_name, 'last': last_name}
return person
musician = build_person('jimi', 'hendrix')
print(musician)
学习使用函数和while循环
动手试一试
8-1消息
# 8-1
def display_message():
print("在本章我学习了函数相关的知识")
8-2喜欢的图书
# 8-2
def favorite_book(title):
print("One of my favorite books is %s in Wonderland" % title.title())
8-3T恤
# 8-3
def make_shirt(size, typeface):
print("T恤的尺码是: %s,字样是: %s" % (size, typeface))
make_shirt('XL', 'WESDFSA')
8-4大号T恤
# 8-4
def make_shirt(size='big', typeface='I Love Python'):
print("T恤的尺码是: %s,字样是: %s" % (size, typeface))
make_shirt()
make_shirt('middle', 'QWEASDFAD')
8-5城市
# 8-5
def describe_city(city_name, country='China'):
print("%s is in %s" % (city_name.title(), country))
describe_city('wuxi')
describe_city('nanjin')
describe_city('Newyork', 'USA')
8-6城市名
# 8-6
def city_country(city, country):
introduction = '"' + city + ',' + country + '"'
return introduction
print(city_country('wuxi', 'china'))
print(city_country('nanjin', 'china'))
print(city_country('suzhou', 'china'))
8-7专辑
# 8-7
def make_album(singer_name, album_name, song_number=''):
album = {'singer': singer_name, 'album': album_name}
if song_number:
album['number'] = song_number
return album
print(make_album('hyk', 'qwe'))
print(make_album('yjx', 'hyk'))
print(make_album('hyk', 'qwe', str(2)))
print(make_album('wer', 'sdf', '3'))
8-8用户的专辑
# 8-8
def make_album(singer_name, album_name, song_number=''):
album_dict = {'singer': singer_name, 'album': album_name}
if song_number:
album_dict['number'] = song_number
return album_dict
while True:
print("\n请按要求输入信息")
print("(如果想退出,请输入‘quit’)")
s_name = input("\n请告诉我歌手的名称: ")
if s_name == 'quit':
print("程序结束。")
break
a_name = input("请告诉我专辑的名称: ")
if a_name == 'quit':
print("程序结束。")
break
s_number = input("请告诉我专辑中有几首歌: ")
if s_number == 'quit':
print("程序结束。")
break
album = make_album(s_name, a_name, s_number)
print(album)