练习5-3:外星人颜色 假设在游戏中刚射杀了一个外星人,请创建一个名为 alien color 的 变量,并将其 赋 值为'green'、'yellow'或'red' 。
编写一条 if 语句,检查外星人是否是绿色的。如果是,就打印一条消息,指出玩家获得了5分。
编写这个程序的两个版本,在一个版本中上述测试通过了而在另一个版本中未通过(未通过测试时没有输出)。
#外星人颜色 alien_colors=["green","yellow","red"] alien_color1=alien_colors[0] if alien_color1 == "green" : print("玩家获得五分") alien_color2=alien_colors[1] if alien_color2 == "green" : print("玩家没有获得分数")
练习 5-4:外星人颜色2 像练习 5-3 那样设置外星人的颜并编写一个 if-else 结构。
如果外星人是绿色的,就打印一条消息,指出玩家因射杀该外星人获得了5分。
如果外星人不是绿色的,就打印一条消息,指出玩家获得了10 分。
编写这个程序的两个版本,在一个版本中执行if 代码块,在另一个版本中执行 else 代码块。
#外星人颜色2 alien_colors=["green","yellow","red"] for alien_color in alien_colors : if alien_color == "green" : print("玩家射杀该外星人获得5分") else: print("不是绿色玩家获得10分")
练习 5-5:外星人颜色3 将练习 5-4 中的 if-else 结构改为if-elif-else 结构。
·如果外星人是绿色的,就打印一条消息,指出玩家获得了5分。
如果外星人是黄色的,就打印一条消息,指出玩家获得了10 分。
·如果外星人是红色的,就打印一条消息,指出玩家获得了15 分。
编写这个程序的三个版本,分别在外星人为绿色、黄色和红色时打印一条消息。
#外星人颜色3 alien_colors=["green","yellow","red"] for alien_color in alien_colors : if alien_color == "green" : print(f"玩家获得5分,颜色为{alien_color}") elif alien_color == "yellow": print(f"玩家获得10分,颜色为{alien_color}") else: print(f"玩家获得15分,颜色为{alien_color}")
练习 5-6:人生的不同阶段 设置变量 age 的值,再编写一个 if-elif-else 结构,根据 age 的值判断一个人处于人生的哪个阶段。
·如果年龄小于2岁,就打印一条消息,指出这个人是婴儿。
·如果年龄为 2(含)~4岁,就打印一条消息,指出这个人是幼儿。
如果年龄为 4(含)~13 岁,就打印一条消息,指出这个人是儿童。
如果年龄为 13(含)~20岁,就打印一条消息,指出这个人是青少年。
·如果年龄为 20(含)~65 岁,就打印一条消息,指出这个人是成年人。
·如果年龄超过 65岁(含),就打印一条消息,指出这个人是老年人。
#人生的不同阶段 age=input("输入一个0-100的整数") if int(age) < 2 : print("这个人是婴儿") elif int(age) >= 2 and int(age) < 4 : print("这个人是幼儿") elif int(age) >= 4 and int(age) < 13 : print("这个人是儿童") elif int(age) >= 13 and int(age) < 20 : print("这个人是青少年") elif int(age) >= 20 and int(age) < 65 : print("这个人是成年人") elif int(age) >= 65 : print("这个人是老年人")
练习 5-7:喜欢的水果,创建一个列表,其中包含你喜欢的水果,再编写一系列独立的if语句,检查列表中是否包含特定的水果。
将该列表命名为 favorite fruits,并在其中包含三种水果,编写5条if语句,每条都检查某种水果是否包含在列表中如果是,就打印一条消息,下面是一个例子。
You really like bananas!
favorite_fruits=["bananas","apple","pear"] if "bananas" in favorite_fruits : print("You really like bananas!") if "grep" in favorite_fruits : print("You really like grep!") if "taozi" in favorite_fruits : print("You really like taozi!") if "apple" in favorite_fruits: print("You really like apple!") if "pear" in favorite_fruits: print("You really like pear!")
练习 5-8:以特殊方式跟管理员打招呼 创建一个至少包含5 个用户名的列表,且其中一个用户名为'admin'。想象你要编写代码,在每位用户登录网站后都打印一条问候消息。遍历用户名列表,并向每位用户打印一条问候消息。
·如果用户名为'admin',就打印一条特殊的问候消息,如下所示。
Hello admin, would you like to see a status report?
否则,打印一条普通的问候消息,如下所示。
Hello Jaden, thank you for logging in again.
#打招呼 user_names=["admin","jaden","lisa","rose","jenne"] for user_name in user_names : if user_name == "admin" : print("helo admin, would you like to see status report") else : print(f"hello {user_name}, thank you for logging in again.")
练习 5-9:处理没有用户的情形,在为完成练习5-8编写的程序中,添加一条if 语句,检查用户名列表是否为空。
如果为空,就打印如下消息,.
We need to find some users! 删除列表中的所有用户名,确定将打印正确的消息。
#没有用户 user_names=["admin","jaden","lisa","rose","jenne"] if len(user_names) != 0 : del user_names[:] if len(user_names) == 0 : print("We need to find some users!")
练习 5-10:检查用户名 按下面的说明编写一个程序,拟网站如何确保每位用户的用户名都独一无二
创建一个至少包含5个用户名的列表,并将其命名为cur-rent users.
再创建一个包含5个用户名的列表,将其命名为new_users,并确保其中有一两个用户名也包含在列表 cur-rent users 中。
遍历列表 new users,对于其中的每个用户名,都检查它是否已被使用。如果是,就打印一条消息,指出需要输入别的用户名;否则,打印一条消息,指出这个用户名未被使用。
确保比较时不区分大小写。换句话说,如果用户名John'已被使用,应拒绝用户名JOHN'。(为此,需要创建列表 cur-rent_users 的副本,其中包含当前所有用户名的小写版本钞。)
#检查用户名 current_users=["YI","ER","SAN","SI","WU"] new_users=["LIU","QI","SAN","SI","BA"] flag=0 for user in new_users : for user1 in current_users : if user == user1 or user == user1.lower(): flag=1 print("该用户名已经被使用") break if flag == 1 : print("用户名申请成功")
练习 5-11:序数 序数表示位置,如 1st 和 2nd。序数大多以 th 结尾,只有 1、2 和3例外。
在一个列表中存储数字1~9。遍历这个列表。
在循环中使用一个 if-elif-else 结构,以打印每个数字对应的序数。输出内容应为"1st 2nd 3rd 4th 5th 6th 7th 8th9th",但每个序数都独占一行。
#序数 list=[] for i in range(1,10): list.append(i) print(list) for i in list: if i == 1 : print(f"{i}st") elif i == 2 : print(f"{i}nd") elif i == 3 : print(f"{i}rd") else: print(f"{i}th")
总结 if-elif-else语句还是很好掌握的,如果和循环搭配使用的话要细心处理,以免产生错误