5-2 更多的条件测试:你并非只能创建10个测试。如果你想尝试做更多的比较,可再编写一些测试,并将它们加入到conditional_tests.py中。对于下面列出的各种测 试,至少编写一个结果为True 和False 的测试。
检查两个字符串相等和不等。
检查两个字符串相等和不等。
使用函数lower() 的测试。
检查两个数字相等、不等、大于、小于、大于等于和小于等于。
检查两个数字相等、不等、大于、小于、大于等于和小于等于。
使用关键字and 和or 的测试。
测试特定的值是否包含在列表中。
测试特定的值是否未包含在列表中。
测试特定的值是否包含在列表中。
测试特定的值是否未包含在列表中。
s1 = "串" s2 = '串' s3 = '字符串' print('s2 == s1? 我猜为True') print(s1 == s2) print('s2 == s3? 我猜为False') print(s2 == s3) s4 = 'BMW' print('s4.lower() == "bmw"? 我猜为True') print(s4.lower() == "bmw") i1 = 1 i2 = 2 print('i1 == i2? 我猜为False') print(i1 == i2) print('i1 > i2? 我猜为False') print(i1 > i2) print('i1 < i2? 我猜为True') print(i1 < i2) print('i1 != i2? 我猜为True') print(i1 != i2) print('i1 >= i2? 我猜为False') print(i1 >= i2) print('i1 <= i2? 我猜为True') print(i1 <= i2) b1 = True b2 = False print('b1 and b2? 我猜为False') print(b1 and b2) print('b1 or b2? 我猜为True') print(b1 or b2) l = [0, 1, 2] print("0 in l? 我猜为True") print(0 in l) print("3 not in l? 我猜为True") print(3 not in l)
输出:
s2 == s1? 我猜为True True s2 == s3? 我猜为False False s4.lower() == "bmw"? 我猜为True True i1 == i2? 我猜为False False i1 > i2? 我猜为False False i1 < i2? 我猜为True True i1 != i2? 我猜为True True i1 >= i2? 我猜为False False i1 <= i2? 我猜为True True b1 and b2? 我猜为False False b1 or b2? 我猜为True True 0 in l? 我猜为True True 3 not in l? 我猜为True True
5-5 外星人颜色#3 :将练习5-4中的if-else 结构改为if-elif-else 结构。
如果外星人是绿色的,就打印一条消息,指出玩家获得了5个点。
如果外星人是黄色的,就打印一条消息,指出玩家获得了10个点。
如果外星人是红色的,就打印一条消息,指出玩家获得了15个点。
编写这个程序的三个版本,它们分别在外星人为绿色、黄色和红色时打印一条消息。
编写这个程序的三个版本,它们分别在外星人为绿色、黄色和红色时打印一条消息。
#v1 alien_color = 'Green' if alien_color == 'Green': print('You get 5 pt!') elif alien_color == 'Yellow': print('You get 10 pt!') else: print('You get 15 pt!') #v2 alien_color = 'Yellow' if alien_color == 'Green': print('You get 5 pt!') elif alien_color == 'Yellow': print('You get 10 pt!') else: print('You get 15 pt!') #v3 alien_color = 'Red' if alien_color == 'Green': print('You get 5 pt!') elif alien_color == 'Yellow': print('You get 10 pt!') else: print('You get 15 pt!')
输出:
You get 5 pt! You get 10 pt! You get 15 pt!
5-6 人生的不同阶段 :设置变量age 的值,再编写一个if-elif-else 结构,根据age 的值判断处于人生的哪个阶段。
如果一个人的年龄小于2岁,就打印一条消息,指出他是婴儿。
如果一个人的年龄为2(含)~4岁,就打印一条消息,指出他正蹒跚学步。
如果一个人的年龄为4(含)~13岁,就打印一条消息,指出他是儿童。
如果一个人的年龄为13(含)~20岁,就打印一条消息,指出他是青少年。
如果一个人的年龄为20(含)~65岁,就打印一条消息,指出他是成年人。
ageage如果一个人的年龄超过65(含)岁,就打印一条消息,指出他是老年人。
age = 66 if age < 2: print('他是婴儿') elif 2 <= age < 4: print('他正蹒跚学步') elif 4 <= age < 13: print('他是儿童') elif 13 <= age < 20: print('他是青少年') elif 20 <= age < 65: print('他是成年人') else: print('他是老年人')输出:
他是老年人
5-10 检查用户名 :按下面的说明编写一个程序,模拟网站确保每位用户的用户名都独一无二的方式。
创建一个至少包含5个用户名的列表,并将其命名为current_users 。
再创建一个包含5个用户名的列表,将其命名为new_users ,并确保其中有一两个用户名也包含在列表current_users 中。
遍历列表new_users ,对于其中的每个用户名,都检查它是否已被使用。
如果是这样,就打印一条消息,指出需要输入别的用户名;否则,打印一条消息,指出这个用户名未被使用。
确保比较时不区分大消息;换句话说,如果用户名'John' 已被使用,应拒绝用户名'JOHN' 。
current_user = ['James', 'David', 'Elizabeth', 'Sarah', 'Catherine'] cur_lower = [name.lower() for name in current_user] new_user = ['Daniel', 'James', 'Ann', 'Michael', 'ANN'] for name in new_user: if name.lower() in cur_lower: print('"' + name + '"' + ' has been used!') else: print('"' + name + '"' + ' has not been used') current_user.append(name) cur_lower.append(name.lower())输出:
"Daniel" has not been used "James" has been used! "Ann" has not been used "Michael" has not been used "ANN" has been used!
5-11 序数 :序数表示位置,如1st和2nd。大多数序数都以th结尾,只有1、2和3例外。
在一个列表中存储数字1~9。
遍历这个列表。
遍历这个列表。
在循环中使用一个if-elif-else 结构,以打印每个数字对应的序数。
输出内容应为1st 、2nd 、3rd 、4th 、5th 、6th 、7th 、8th 和9th ,但每个序 数都独占一行。
for num in range(1, 10): print(num, end = '') if num == 1: print('st') elif num == 2: print('nd') elif num == 3: print('rd') else: print('th')输出:
1st 2nd 3rd 4th 5th 6th 7th 8th 9th