动手试一试(ch.5)

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



猜你喜欢

转载自blog.csdn.net/weixin_38196217/article/details/79614577