第五章
5-1 条件测试
编写一系列条件测试;将每个测试以及你对其结果的预测和实际结果都打印出来。
print(1 == '1')
print(49 == '1')
因为python中的变量可以重新定义类型,所以第一句可能是True?
因为‘1’的ASCII码是49,所以第二句可能是True?
运行结果:
False
False
这说明python中的变量在比较中是不能重新定义类型的。同时,与C不同,python没有字符这种类型。
类型不同的相同数可以比较吗?整除与浮点数除法不同吗?浮点数运算有误差吗?
a = 3
b = 3.00
print( a == b )
print( 1 // b == 1 / a )
print( 0.2 + 0.1 != 0.3)
运行结果:
True
False
True
这说明python中的变量类型不同的相同数是可以比较的。同时,与C不同,python3.0中整除是//,除法是/。浮点数运算有舍入误差!
range用法:
print( 1 in range(1,10))
print( 10 in range(1,10))
运行结果:
True
False
列表用法1:
list1 = ['haha','hei']
list2 = list1[:]
print(list1 == list2)
list2 = list1.reverse()
print(list1 == list2)
运行结果:
True
False
这里需要注意,复制列表不能直接赋值。
列表用法2:
car1 = ['subaru','audi']
car2 = car1
car2 = ['toyota','bmw']
print(car1 == car2)
car2 = car1
car2[0] = 'toyota'
print(car1 == car2)
运行结果:
False
True
5-2 更多的条件测试
你并非只能创建10个测试。如果你想尝试做更多的比较,可再编写一些测试,并将它们加入到
conditional_tests.py中。对于下面列出的各种测试,至少编写一个结果为True和False的测试。
- 检查两个字符串相等和不等。使用函数lower()的测试。
- 检查两个数字相等、不等、大于、小于、大于等于和小于等于。 使用关键字and和or的测试。
- 测试特定的值是否包含在列表中。
- 测试特定的值是否未包含在列表中。
str = "HAHA"
print(str > str.lower())
print(1 == 0 or 1 != 0)
print(1 > 0 and 1 < 0)
print(1 in range(1,10))
print(10 not in range(1,10))
5-3 外星人颜色#1
假设在游戏中刚射杀了一个外星人,请创建一个名为alien_color 的变量,并将其设置为’green’、’yellow’ 或’red’。
- 编写一条if 语句,检查外星人是否是绿色的;如果是,就打印一条消息,指出玩家获得了5个点。
- 编写这个程序的两个版本,在一个版本中上述测试通过了,而在另一个版本中未通过(未通过测试时没有输出)。
color = ['green','yellow','red']
alien_color = color[0]
if alien_color == 'green&