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

断更三天,我很抱歉。

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

 

定义函数

例子 

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)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值