Python工程师之Python编程:从入门到实践【2.5】

动手试一试
练习8-6:城市名  编写一个名为city_country() 的函数,它接受城市的
名称及其所属的国家。这个函数应返回一个格式类似于下面的字符串:
"Santiago, Chile"
至少使用三个城市国家对来调用这个函数,并打印它返回的值。
练习8-7:专辑  编写一个名为make_album() 的函数,它创建一个描述音乐
专辑的字典。这个函数应接受歌手的名字和专辑名,并返回一个包含这两项信
息的字典。使用这个函数创建三个表示不同专辑的字典,并打印每个返回的
值,以核实字典正确地存储了专辑的信息。
给函数make_album() 添加一个默认值为None 的可选形参,以便存储专辑包
含的歌曲数。如果调用这个函数时指定了歌曲数,就将该值添加到表示专辑的
字典中。调用这个函数,并至少在一次调用中指定专辑包含的歌曲数。
练习8-8:用户的专辑  在为完成练习8-7编写的程序中,编写一个while 循
环,让用户输入专辑的歌手和名称。获取这些信息后,使用它们来调用函数
make_album() 并将创建的字典打印出来。在这个while 循环中,务必提供
退出途径。

8.4 传递列表

你经常会发现,向函数传递列表很有用,其中包含的可能是名字、数或更复杂的对
象(如字典)。将列表传递给函数后,函数就能直接访问其内容。下面使用函数来
提高处理列表的效率。
假设有一个用户列表,我们要问候其中的每位用户。下面的示例将包含名字的列表
传递给一个名为greet_users() 的函数,这个函数问候列表中的每个人:
greet_users.py
def greet_users(names):
"""向列表中的每位用户发出简单的问候。"""
for name in names:
msg = f"Hello, {name.title()}!"
print(msg)
❶ usernames = ['hannah', 'ty', 'margot']
greet_users(usernames)
我们将greet_users() 定义为接受一个名字列表,并将其赋给形参names 。这个
函数遍历收到的列表,并对其中的每位用户打印一条问候语。❶处定义了一个用户列
表usernames ,然后调用greet_users() 并将该列表传递给它:
Hello, Hannah!
Hello, Ty!
Hello, Margot!
输出完全符合预期。每位用户都看到了一条个性化的问候语。每当需要问候一组用
户时,都可调用这个函数。

8.4.1 在函数中修改列表

将列表传递给函数后,函数就可对其进行修改。在函数中对这个列表所做的任何修
改都是永久性的,这让你能够高效地处理大量数据。
来看一家为用户提交的设计制作3D打印模型的公司。需要打印的设计存储在一个列
表中,打印后将移到另一个列表中。下面是在不使用函数的情况下模拟这个过程的
代码:
printing_models.py
# 首先创建一个列表,其中包含一些要打印的设计。
unprinted_designs = ['phone case', 'robot pendant', 'dodecahedron']
completed_models = []
# 模拟打印每个设计,直到没有未打印的设计为止。
# 打印每个设计后,都将其移到列表completed_models中。
while unprinted_designs:
current_design = unprinted_designs.pop()
print(f"Printing model: {current_design}")
completed_models.append(current_design)
# 显示打印好的所有模型。
print("\nThe following models have been printed:")
for completed_model in completed_models:
prin

  • 17
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值