Python编程:从入门到实践(第2版)第五章课后题

第五章

5.2

练习5-1:条件测试  编写一系列条件测试,将每个测试以及对其结果的预测 和实际结果打印出来。你编写的代码应类似于下面这样:

car = 'subaru' print("Is car == 'subaru'? I predict True.")

print(car == 'subaru')

print("\nIs car == 'audi'? I predict False.")

print(car == 'audi')
  • 详细研究实际结果,直到你明白它为何为True 或False 。
  • 创建至少10个测试,且其中结果分别为True 和False 的测试都至少有5 个。
# 测试1
car = 'subaru'
print("Is car == 'subaru'? I predict True.")
print(car == 'subaru')

# 测试2
print("\nIs car == 'audi'? I predict False.")
print(car == 'audi')

# 测试3
number = 7
print("\nIs number > 5? I predict True.")
print(number > 5)

# 测试4
print("\nIs number < 3? I predict False.")
print(number < 3)

# 测试5
name = 'Alice'
print("\nIs name == 'Alice'? I predict True.")
print(name == 'Alice')

# 测试6
print("\nIs name == 'Bob'? I predict False.")
print(name == 'Bob')

# 测试7
age = 25
print("\nIs age >= 18? I predict True.")
print(age >= 18)

# 测试8
print("\nIs age < 21? I predict False.")
print(age < 21)

# 测试9
height = 180
print("\nIs height <= 200? I predict True.")
print(height <= 200)

# 测试10
print("\nIs height != 180? I predict False.")
print(height != 180)

练习5-2:更多条件测试  你并非只能创建10个测试。如果想尝试做更多比 较,可再编写一些测试,并将它们加入conditional_tests.py中。对于下面列 出的各种情况,至少编写两个结果分别为True 和False 的测试。

  • 检查两个字符串相等和不等。
  • 使用方法lower() 的测试。
  • 涉及相等、不等、大于、小于、大于等于和小于等于的数值测试。
  • 使用关键字and 和or 的测试。
  • 测试特定的值是否包含在列表中。
  • 测试特定的值是否未包含在列表中。
# 检查两个字符串相等和不等
str1 = "hello"
str2 = "HELLO"
print("\nIs str1.lower() == str2.lower()? I predict True.")
print(str1.lower() == str2.lower())

# 使用方法lower() 的测试
print("\nIs str1.lower() != str2.lower()? I predict False.")
print(str1.lower() != str2.lower())

# 涉及相等、不等、大于、小于、大于等于和小于等于的数值测试
num1 = 10
num2 = 5
print("\nIs num1 == num2? I predict False.")
print(num1 == num2)
print("\nIs num1 != num2? I predict True.")
print(num1 != num2)
print("\nIs num1 > num2? I predict True.")
print(num1 > num2)
print("\nIs num1 < num2? I predict False.")
print(num1 < num2)
print("\nIs num1 >= num2? I predict True.")
print(num1 >= num2)
print("\nIs num1 <= num2? I predict False.")
print(num1 <= num2)

# 使用关键字and 和or 的测试
value1 = 15
value2 = 20
print("\nIs value1 > 10 and value2 < 25? I predict True.")
print(value1 > 10 and value2 < 25)
print("\nIs value1 < 10 or value2 > 25? I predict False.")
print(value1 < 10 or value2 > 25)

# 测试特定的值是否包含在列表中
numbers = [1, 2, 3, 4, 5]
print("\nIs 3 in numbers? I predict True.")
print(3 in numbers)
print("\nIs 6 in numbers? I predict False.")
print(6 in numbers)

# 测试特定的值是否未包含在列表中
print("\nIs 6 not in numbers? I predict True.")
print(6 not in numbers)
print("\nIs 3 not in numbers? I predict False.")
print(3 not in numbers)

 5.3

练习5-3:外星人颜色  假设在游戏中刚射杀了一个外星人,请创建一个名为 alien_color 的变量,并将其赋值为'green' 、'yellow' 或'red' 。

  • 编写一条if 语句,检查外星人是否是绿色的。如果是,就打印一条消息, 指出玩家获得了5分。
  • 编写这个程序的两个版本,在一个版本中上述测试通过了,而在另一个版 本中未通过(未通过测试时没有输出)。

 

# 版本1:外星人是绿色的
alien_color = 'green'

if alien_color == 'green':
    print("You earned 5 points!")
# 版本2:外星人不是绿色的
alien_color = 'yellow'

if alien_color == 'green':
    print("You earned 5 points!")

练习5-4:外星人颜色2  像练习5-3那样设置外星人的颜色,并编写一个if else 结构。

  • 如果外星人是绿色的,就打印一条消息,指出玩家因射杀该外星人获得了5 分。
  • 如果外星人不是绿色的,就打印一条消息,指出玩家获得了10分。
  • 编写这个程序的两个版本,在一个版本中执行if 代码块,在另一个版本中 执行else 代码块。
# 版本1:外星人是绿色的
alien_color = 'green'

if alien_color == 'green':
    print("You earned 5 points!")
else:
    print("You earned 10 points!")
# 版本2:外星人不是绿色的
alien_color = 'yellow'

if alien_color == 'green':
    print("You earned 5 points!")
else:
    print("You earned 10 points!")

 

练习5-5:外星人颜色3  将练习5-4中的if-else 结构改为if-elif-else 结构。

  • 如果外星人是绿色的,就打印一条消息,指出玩家获得了5分。 如果外星人是黄色的,就打印一条消息,指出玩家获得了10分。
  • 如果外星人是红色的,就打印一条消息,指出玩家获得了15分。
  • 编写这个程序的三个版本,分别在外星人为绿色、黄色和红色时打印一条 消息。
alien_color = 'red'

if alien_color == 'green':
    print("You earned 5 points!")
elif alien_color == 'yellow':
    print("You earned 10 points!")
else:
    print("You earned 15 points!")

 

练习5-6:人生的不同阶段  设置变量age 的值,再编写一个if-elif-else 结构,根据age 的值判断一个人处于人生的哪个阶段。

  • 如果年龄小于2岁,就打印一条消息,指出这个人是婴儿。
  • 如果年龄为2(含)~4岁,就打印一条消息,指出这个人是幼儿。
  • 如果年龄为4(含)~13岁,就打印一条消息,指出这个人是儿童。
  • 如果年龄为13(含)~20岁,就打印一条消息,指出这个人是青少年。
  • 如果年龄为20(含)~65岁,就打印一条消息,指出这个人是成年人。
  • 如果年龄超过65岁(含),就打印一条消息,指出这个人是老年人。
age = 30

if age < 2:
    print("This person is a baby.")
elif age < 4:
    print("This person is a toddler.")
elif age < 13:
    print("This person is a child.")
elif age < 20:
    print("This person is a teenager.")
elif age < 65:
    print("This person is an adult.")
else:
    print("This person is an elder.")

 

练习5-7:喜欢的水果  创建一个列表,其中包含你喜欢的水果,再编写一系 列独立的if 语句,检查列表中是否包含特定的水果。

  • 将该列表命名为favorite_fruits ,并在其中包含三种水果。
  • 编写5条if 语句,每条都检查某种水果是否包含在列表中。如果是,就打 印一条消息,下面是一个例子。

You really like bananas!

favorite_fruits = ['apple', 'banana', 'orange']

if 'apple' in favorite_fruits:
    print("You really like apples!")
if 'banana' in favorite_fruits:
    print("You really like bananas!")
if 'grape' in favorite_fruits:
    print("You really like grapes!")
if 'watermelon' in favorite_fruits:
    print("You really like watermelons!")
if 'orange' in favorite_fruits:
    print("You really like oranges!")

 5.4

练习5-8:以特殊方式跟管理员打招呼  创建一个至少包含5个用户名的列表, 且其中一个用户名为'admin' 。想象你要编写代码,在每位用户登录网站后都 打印一条问候消息。遍历用户名列表,并向每位用户打印一条问候消息。

  • 如果用户名为'admin' ,就打印一条特殊的问候消息,如下所示。

Hello admin, would you like to see a status report?

  • 否则,打印一条普通的问候消息,如下所示。

Hello Jaden, thank you for logging in again.

usernames = ['admin', 'jaden', 'emma', 'liam', 'ava']

for username in usernames:
    if username == 'admin':
        print("Hello admin, would you like to see a status report?")
    else:
        print(f"Hello {username.title()}, thank you for logging in again.")

练习5-9:处理没有用户的情形  在为完成练习5-8编写的程序中,添加一条 if 语句,检查用户名列表是否为空。

  • 如果为空,就打印如下消息。

We need to find some users!

  • 删除列表中的所有用户名,确定将打印正确的消息。
usernames = []

if usernames:
    for username in usernames:
        if username == 'admin':
            print("Hello admin, would you like to see a status report?")
        else:
            print(f"Hello {username.title()}, thank you for logging in again.")
else:
    print("We need to find some users!")

练习5-10:检查用户名  按下面的说明编写一个程序,模拟网站如何确保每位 用户的用户名都独一无二。

  • 创建一个至少包含5个用户名的列表,并将其命名为current_users 。
  • 再创建一个包含5个用户名的列表,将其命名为new_users ,并确保其中 有一两个用户名也包含在列表current_users 中。
  • 遍历列表new_users ,对于其中的每个用户名,都检查它是否已被使 用。如果是,就打印一条消息,指出需要输入别的用户名;否则,打印一 条消息,指出这个用户名未被使用。
  • 确保比较时不区分大小写。换句话说,如果用户名'John' 已被使用,应 拒绝用户名'JOHN' 。(为此,需要创建列表current_users 的副本, 其中包含当前所有用户名的小写版本。)
current_users = ['admin', 'jaden', 'emma', 'liam', 'ava']
new_users = ['ava', 'noah', 'mason', 'jaden', 'lucas']

current_users_lower = [user.lower() for user in current_users]

for new_user in new_users:
    if new_user.lower() in current_users_lower:
        print(f"Sorry, {new_user} is already taken. Please choose another username.")
    else:
        print(f"Congratulations, {new_user} is available!")

练习5-11:序数  序数表示位置,如1st和2nd。序数大多以th结尾,只有1、2 和3例外。

  • 在一个列表中存储数字1~9。
  • 遍历这个列表。
  • 在循环中使用一个if-elif-else 结构,以打印每个数字对应的序数。输出内容应为"1st 2nd 3rd 4th 5th 6th 7th 8th 9th" ,但每个序 数都独占一行。
numbers = list(range(1, 10))

for number in numbers:
    if number == 1:
        suffix = 'st'
    elif number == 2:
        suffix = 'nd'
    elif number == 3:
        suffix = 'rd'
    else:
        suffix = 'th'
    print(f"{number}{suffix}")

5.5

练习5-12:设置 if 语句的格式  审核你在本章编写的程序,确保正确地设置了条件测试的格式。

在编写程序时,确保设置if语句的格式符合PEP 8指南,具体包括:

  1. 使用四个空格进行缩进。
  2. 条件测试后面使用一个空格。
  3. 使用恰当的空格来使代码更易读。

练习5-13:自己的想法  与刚拿起本书时相比,现在你是一名能力更强的程序 员了。鉴于你对如何在程序中模拟现实情形有了更深入的认识,可以考虑使用程序来解决一些问题了。随着编程技能不断提高,你可能想解决一些问题,请 将这方面的想法记录下来。想想你可能想编写的游戏、想研究的数据集以及想创建的Web应用程序。

  1. 编写游戏:尝试编写自己的游戏,可以是文本冒险游戏、简单的射击游戏或者迷你RPG游戏。
  2. 研究数据集:使用Python来处理和分析数据集,探索数据之间的关系,并进行可视化展示。
  3. 创建Web应用程序:学习使用Django或Flask等Web框架,搭建自己的网站或Web应用程序,实现个人博客、待办事项列表等功能。
  4. 开发工具和应用:编写实用的工具和应用程序,解决日常生活中的问题,如密码管理器、天气预报应用等。
  5. 参与开源项目:贡献代码给开源项目,学习与他人合作、提升编码能力。
  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 《Python编程:从入门实践(第2)》是一本非常适合初学者的Python编程入门书籍。本书内容详实,从基础语法开始讲解,逐步深入,涵盖了Python编程的各个方面,包括函数、类、模块、文件操作、Web编程等。此外,本书还提供了大量的实例和练习,帮助读者巩固所学知识,提高编程能力。总之,这是一本非常优秀的Python编程入门书籍,值得初学者阅读。 ### 回答2: 《Python 编程:从入门实践(第2)》是一本以Python语言为主编程教材,旨在帮助那些新手进入Python编程的世界。本书由美国沃恩·贾尼卡编写,分为两个部分:第一部分为基础知识和编程概念,第二部分着重介绍Python编程实践场景。 第一部分主要介绍Python语言的基础知识和编程语言基础概念、算法和数据结构,定位较为基础和入门级别。在此基础之上,第二部分介绍了Python编程实践场景,如图形界面、Web开发、数据库编程以及游戏开发等。 本书的优势在于全面涵盖了Python编程的方方面面,包括入门基础、高级用法,以及实践案例,流程严密通俗易懂。此外,书中提供了大量的实际案例,如编写文本游戏、数据可视化和网页应用等,非常适合初学者进行实践练习,更容易掌握Python编程必备的技能。 总之,对于那些想要学习Python编程的初学者,《Python 编程:从入门实践(第2)》是一个非常不错的教材选择,对于进一步学习Python,具有相当高的参考价值。 ### 回答3: 《Python编程:从入门实践(第2)》是一本非常适合初学者学习Python语言的书籍。这本书的作者是Eric Matthes,他通过实例和案例的方式,为读者提供了非常详细和易于理解的Python语言入门指南,使初学者们可以在短时间内掌握Python语言的基础知识。 本书的主要内容包括Python语言的基本语法、字符串、列表、字典、函数、类和文件等方面的内容。其中,作者通过许多实用案例来帮助读者熟悉Python的应用场景,例如:文本分析、数据可视化、Web开发、游戏开发等。 阅读本书需要具备一定的编程基础,但作者在书中非常注重基础知识的讲解,所以对于没有编程基础的读者,也可以逐步学习。 此外,本书还配有许多练习和项目实践,读者可以通过练习来巩固自己的知识,提高自己的编程能力。 总之,如果你想学习Python语言并想快速入门,那么《Python编程:从入门实践(第2)》一定是你的不二选择。它的知识点详尽、案例实用、练习丰富,能够让你在短时间内掌握Python语言的基础知识,快速成为Python开发者。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值