1.引言
在前面我们讨论了关于循环的很多很多问题,计数相加过滤筛选,不过有时候我们只想知道,集合当中有没有我们想要的值
2.布尔值(Boolean)
布尔值,是一种变量的类型(我们之前见到过整数类型、字符串类型、浮点数类型),对于布尔类型来说,只有对和错两种情况(True/False)
found = False
print('before', found)
for i in [10,40,13,4,73,19]:
if i == 13:
found = True
print(found, i)
print('after', found)
# before False
# False 10
# False 40
# True 13
# True 4
# True 73
# True 19
# after True
True和False在Python中是常量,所以我们可以放心大胆的创建一个名为found的变量(这个变量名易于我们去记忆它的作用,这就是有意义的变量名),代码开始运行,首先是10,不是13,False,40,False,13来了,True,在之后的三个数字4、73、19,虽然并不是13,但变量名found已经变成了True,所以输出的同样也是True,这相当于在提醒你,13已经找到了,如果你觉得麻烦呢,我们之前有讨论过break,我们可以通过插入break,让结果一等于True就跳出循环
3.代码改进
a.排序方法
在前面寻找最大值最小值的时候,我们讨论了None Type,除此之外,我们将回顾一下之前所提到的排序方法
numbers = [-10, -40, -13, -4, -73, -19]
largerst_so_far = numbers[0]
print('before', largerst_so_far)
for the_num in numbers:
if the_num > largerst_so_far:
largerst_so_far = the_num
print(largerst_so_far, the_num)
print('after', largerst_so_far)
# before -10
# -10 -10
# -10 -40
# -10 -13
# -4 -4
# -4 -73
# -4 -19
# after -4
我们先将集合展示出来,并直接给变量赋予集合中第一个值,紧接着开始比较,对于Python来说,0代表的是第一个数,1代表的是第二个数
b.无限方法
largerst_so_far = float('-inf')
print('before', largerst_so_far)
for the_num in [-10, -40, -13, -4, -73, -19]:
if the_num > largerst_so_far:
largerst_so_far = the_num
print(largerst_so_far, the_num)
print('after', largerst_so_far)
# before -inf
# -10 -10
# -10 -40
# -10 -13
# -4 -4
# -4 -73
# -4 -19
# after -4
我们将largest_so_far赋值为浮点数的负无穷(-inf),初始值已经是负无穷了,在负数当中求得最大值也就不是一件难事了,有负无穷就会有正无穷,你想的没错,正无穷就是(inf),把负无穷的负号去掉,仅此而已,快去尝试一下运用正负无穷判断大小吧