当前位置: 代码迷 >> 综合 >> 自学Python笔记-第八章函数以及课后代码(上)
  详细解决方案

自学Python笔记-第八章函数以及课后代码(上)

热度:54   发布时间:2024-03-09 06:26:10.0

断更三天,我很抱歉。

函数,是带名字的代码块。要执行函数定义的特定任务时,可调用该函数

 

定义函数

例子 

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 personmusician = 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 introductionprint(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_numberreturn albumprint(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_numberreturn album_dictwhile True:print("\n请按要求输入信息")print("(如果想退出,请输入‘quit’)")s_name = input("\n请告诉我歌手的名称: ")if s_name == 'quit':print("程序结束。")breaka_name = input("请告诉我专辑的名称: ")if a_name == 'quit':print("程序结束。")breaks_number = input("请告诉我专辑中有几首歌: ")if s_number == 'quit':print("程序结束。")breakalbum = make_album(s_name, a_name, s_number)print(album)

 

  相关解决方案