Python笔记 第五章
第五章
练习题
5-3 外星人颜色#1
假设玩家在游戏过程中击杀了外星人并获得了一个机会,请根据实际情况创建一个名为alien_color的变量,并将其赋值为'green'、'yellow'或'red'三种颜色之一。
根据检测结果编写一段代码逻辑:如果检测到的是绿色,则将该结果存储于变量is_green并返回True;否则返回False。
请完成以下两项功能:第一项功能要求您在第一个版本中的代码逻辑满足条件;第二项功能要求您在第二个版本中的条件判断逻辑未能满足。
alien_color = "red"
if alien_color == "green":
print("you get 5 points")
5-4 外星人颜色#2
按照练习5-3的方法配置外星人的颜色,并实现一个基于条件判断的if-else结构。当检测到外星人具有绿色特征时,则会输出一条信息表明玩家因击倒该外星人而获得积分奖励;否则的情况则会显示另一条提示信息告知玩家未达成目标任务。分别构建两种不同的程序版本,在其中一种情况下执行if语句中的代码块而在另一种情况下则会运行else部分中的相关代码逻辑。
alien_color = "red"
if alien_color == "green":
print("you get 5 points")
else:
print("you get 10 points")
5-5 外星人颜色#3
升级练习5-4中的条件语句结构,在原有基础上增加分支条件。
当外星人的颜色被确定为绿色时,请打印一条消息并给予5个积分奖励。
当外星人的颜色被确定为黄色时,请打印一条消息并给予10个积分奖励。
当外星人的颜色被确定为红色时,请打印一条消息并给予15个积分奖励。
开发三个版本以应对不同情况(绿色、黄色和红色)的具体情况。
alien_color = "yellow"
if alien_color == "green":
print("you get 5 points")
elif alien_color == "yellow":
print("you get 10 points")
elif alien_color == "red":
print("you get 15 points")
5-6 人生的不同阶段
给变量age赋值后构造一个嵌套的if-elif-else语句来判断其数值范围对应的年龄段类别并输出相应的提示信息
age = 70
if age < 2:
print("this is an infant")
elif age < 4:
print("this is a toddler")
elif age < 13:
print("this is a child")
elif age < 20:
print("this is a teenager")
elif age < 65:
print("this is an adult")
elif age >= 65:
print("this is an old man")
5-7 喜欢的水果
请完成以下任务:创建一个名为favorite_fruits并列举了你最喜欢的三种水果的列表。随后,请写出五个独立的条件判断语句。这些条件应分别检查指定水果是否在你的喜欢之列。若条件满足,则输出相应的提示信息。
favourite_fruits = ["apple","avocado","cherry"]
if "apple" in favourite_fruits:
print("you really like apples")
if "banana" in favourite_fruits:
print("you really like bananas")
if "cherry" in favourite_fruits:
print("you really like cherries")
if "grape" in favourite_fruits:
print("you really like grapes")
if "melon" in favourite_fruits:
print("you really like melons")
5-8 以特殊方式跟管理员打招呼
生成一个包含至少5个用户名的用户列表,并确保其中一个是'admin'登录名。假设你需要编写一段代码,在每位用户登录网站后输出一条问候信息。
程序将遍历该用户列表中的每一位用户,并输出一条问候信息。
当遇到当前用户的登录名为'admin'时,请输出一条特殊提示信息:"Hello admin,请问您是否需要查看状态报告?"
对于其他登录名(如Eric),请输出普通提示信息:"Hello Eric,感谢您再次登录网站!"
user_names = ["Eric","admin","Emily","Alice","Jack"]
for user_name in user_names:
if user_name == "admin":
print("Hello admin,would you like to see a status report?")
else:
print("Hello "+user_name+",thank you for logging again")
5-9 处理没有用户的情形
在编写完成练习5-8的程序时,请插入一条if语句以判断用户名列表是否为空。若为空,则输出提示信息"需要查找一些用户!"。清除该列表中的所有用户名,并确保随后显示正确的提示信息。
user_names = []
if user_names:
for user_name in user_names:
if user_name == "admin":
print("Hello admin,would you like to see a status report?")
else:
print("Hello "+user_name+",thank you for logging again")
else:
print("we need to find some users")
5-10 检查用户名
根据以下说明编写一段代码:
首先生成一个包含至少5个独特字符串的新列表currentUsers。
然后创建另一个包含5个 usernames 的新列表newUsers,并确保其中有一两个 usernames 也存在于 currentUsers 中。
逐一遍历 newUsers 列表中的每一个 username ,判断该 username 是否已存在于 currentUsers 中。
若发现冲突 username ,将提示用户更换验证码。
若无冲突,则表示该 username 是可用的。
最后,在判断过程中忽略字符串的大写字母状态以避免大小写干扰。
current_users = ["John","Annie","mary","Jack","HARRY"]
new_users = ["JOHN","ron","emily","henry","HARRY"]
lower_current_users = []
for current_user in current_users:
lower_current_users.append(current_user.lower())
for new_user in new_users:
if new_user.lower() in lower_current_users:
print(new_user+" is used,please use another name")
else:
print("this name hasn't been used,you can use it")
5-11 序数
用于表示位置的序数词中包含1^{st}和2^{nd}形式。通常情况下, 大多数序数词以th结尾, 但前三个数字(即第1位至第3位)则例外。
将数字1至9存储在一个列表中。
逐个遍历该列表中的每个数字。
使用if-elif-else语句结构, 为每个数字生成相应的序数形式。
输出结果应分别显示第1至第9位的正确序数形式。
numbers = [1,2,3,4,5,6,7,8,9]
for number in numbers:
if number == 1:
print(str(number)+"st")
elif number == 2:
print(str(number)+"nd")
elif number == 3:
print(str(number)+"rd")
else:
print(str(number)+"th")
