布尔值与循环:查找集合中的特定值

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),把负无穷的负号去掉,仅此而已,快去尝试一下运用正负无穷判断大小吧

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chennn__

感谢!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值