欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

自学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)

 

相关标签: 记录 python