风变Python6---布尔值,break,continue,pass,else等语句的学习

动次打次,哈哈,又是新的一天,又是充满活力的一天。开启新的学习之旅。
今天学习的内容是布尔运算和布尔值以及其他的四个语句。

我么们首先来了解一下什么是布尔值,以及布尔运算

布尔值
在计算机语言中就是用来参与逻辑运算的值,简单来说,就是判断一个值,一件事是真,还是假的值,它通常用TRUE或者FALSE两个中的一个来表示。比如3>5,这个判断,明显是不对的,因此他的布尔值是FALSE,在计算机语言中,这种TRUE或者FALSE的表示,也可以用1和0来表示,这样,我们就可以把逻辑判断的结果,参与数值运算。

在上一章的学习中,我们讲过,计算机利用数据有三种方式:
1.直接使用数据,
2.计算和加工数据,
3.用数据做判断。

除了while循环,我之前学过的if…elif…else语句,也涉及到【利用数据用做逻辑判断】。当逻辑判断通过才会继续执行:

在这里插入图片描述

当然,if和while有个显著的区别。那就是if语句只会执行一次,而while是循环语句,只要条件判断为真,就一直循环执行。

布尔运算
这个“判断”的过程,在计算机的世界里是如何发生的呢?计算机的逻辑判断,只有两种结果,就是True(英文意思是“真”)和False(英文意思是“假”),没有灰色地带。这个计算真假的过程,叫做【布尔运算】。而True和False,也就叫做【布尔值】。
在这里插入图片描述

在这里插入图片描述

小结一下,布尔运算和布尔值的产生过程。
在这里插入图片描述

现在我们知道了什么是布尔运算以及布尔值的作用,我们接着学习【布尔运算】的三种方式。

1.其中的第一种,就是作比较。在此时,计算机会先做一次布尔运算,判断比较是否正确,然后再把判断的结果以【布尔值】的方式打印出来。用两个数值做比较的【布尔运算】,主要包含以下情况:
在这里插入图片描述

另外,特别提醒大家一点:在代码中,A == B表示A和B相等,表示相等关系;而=表示给变量赋值。=和虽然长得相似,但没有任何关系。

2.我们接着看布尔运算的第二种方式:直接用数值做运算。
在这里插入图片描述
其实,整数1在这里就是作为一个条件,被判断为真(True)。这就是数值本身作为一个条件,被判断真假的情况。那为什么可以这样操作呢?因为在Python中已经设定好什么数据为真,什么为假。假的是有限的,那么除了假的,就都是真的。请看下图:在这里插入图片描述
这个表的左侧一列,它们在Python中被判定为假,比如False、0、’’ (空字符串)等等。假的东西是有限的,那么除了假的,其他就都是真的。比如上一个例子中出现的整数1,就是真的。至于None,它代表的是【空值】,自成一派,数据类型是NoneType。要注意它和0的区别,0是整数0,可并非什么都没有。

我们可以使用bool()函数来查看一个数据会被判断为真还是假。这个函数的用法与type()函数相似(还有印象吧~),在bool()函数括号中放入我们想要判断真假的数据,然后print出来即可。我们来做个试验,用bool()函数把前面我们提到的各种数据都放进去判断一下,打印出来看看。请阅读代码后再直接运行:
在这里插入图片描述

好啦,现在你明白了“直接用数值做布尔运算”是怎么一回事,再来看看第三种情况。
布尔值之间的运算,你会接触到and、or、not、in、not in五种运算,别怕,只是看起来多,我保证不难。还是用例子来说明吧。我们先看看【and】和【or】。

请先阅读代码,然后直接运行:a1 and b1的意思是【a=1并且b=1】,要两个条件都满足,才能判断为True,而a1 or b1的意思是【a=1或者b=1】,只要两个条件满足一个,就能判断为True。
在此把and和or的计算逻辑和大家做一个总结:
在这里插入图片描述

在这里插入图片描述

接下来我们看看【not】运算。这个运算很简单,表示翻转的意思。not True就等于False,
在这里插入图片描述

最后,我们讲一下【in】和【not in】两种运算。【in】的意思是“判断一个元素是否在一堆数据之中”,【not in】反之。这个超简单的。not False就等于True。

如果涉及到的数据集合是字典的话,【in】和【not in】就可以用来判断字典中是否存在某个【键】:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

我们以后还会经常看到布尔运算和布尔值在代码中的运用,今天对布尔值的讲解就到这里。接下来,是本关的第二个主题:循环里的四种新语句四种新的语句。
这4种新语句配合for循环和while循环,可以让循环发挥更多的功能。我们逐个来看。

break语句

在这里插入图片描述

break语句只能在循环的内部使用。
在这里插入图片描述

注意缩进级别,在循环内部的时候有一级缩进,在缩进后,如果继续使用if等条件语句,他还需要进一步的缩进。另外,在缩进的时候,tab键,一次缩进4个空格,且Tab键和空格键不能同时混用,否则将会导致报错。

在这里插入图片描述

在这里插入图片描述

第1行:用while True 开启了一个无限循环。你也可以用while 1 或其他形式开启一个无限循环。第2行:用input() 函数获取到了一个数据。第3行:如果这个数据等于之前设定的密码,那么就第4行:结束循环。如果这个数据不等于之前设定的密码,那就回到第1行while True继续循环。第5行:结束循环后,就打印–通过啦。这已经是循环外部的代码了,所以没有缩进噢。break子句,咱们就讲到这里。
在这里插入图片描述

接下来“继续”,continue语句。
continue语句

continue的意思是“继续”。这个子句也是在循环内部使用的。当某个条件被满足的时候,触发continue语句,将跳过之后的代码,直接回到循环的开始。

在这里插入图片描述

在这里插入图片描述
上面的代码,当i==3的时候会触发continue语句,于是回到了循环开头,跳过了一句print语句。

这样的数字游戏是不是有点无聊?不如再用一个小说例子来解解闷吧。《天龙八部》里面有这样一个情节:西夏公主招亲选婿,吸引了许许多多的青年才俊。
西夏公主挑驸马的方式是,是问这些青年3个问题。
在这里插入图片描述

这三个问题,只有连续答对,才能判定他就是西夏公主的意中人;否则,只要有任何一题错,都要换人从头开始回答问题。事实上,西夏公主曾和她的意中人虚竹邂逅于一个黑暗的冰窖之中,但两人不知对方姓名,只互称呼“梦姑”和“梦郎”,两人也看不清彼此的脸。因此,西夏公主为了找到虚竹,才进行招亲,并对候选者问出这三个问题。如果用Python来描述这个故事,我想应该是这样的:
在这里插入图片描述

好,你可以看到continue的作用就是就是当某个条件为真时,又提前回到循环,而不会执行下面的代码。关于continue语句,我就讲到这里。接下来是pass语句。

pass语句
pass语句就非常简单了,它的英文意思是“跳过”。

如果没有pass来占据一个位置表示“什么都不做”,以上的代码执行起来会报错:(请你先体验一下报错,然后把pass语句加上。)

最后是else语句

最后一种else语句,我们在条件判断语句见过【else】,其实,else不但可以和if配合使用,它还能跟for循环和while循环配合使用。举一个例子


for i in range(5):
    a = int(input('请输入0来结束循环,你有5次机会:'))  ##在此处的i并不是指的是具体的输入数字,而是指循环的次数。
    if a == 0:
        print('你触发了break语句,循环结束,导致else语句不会生效。')    
        break
else:
    print('5次循环你都错过了,else语句生效了。')
    

所以,用一句话总结,当循环中没有碰到break语句,就会执行循环后面的else语句,否则就不会执行。
在while循环中,else的用法也是如此,格式一模一样:


i=0
while i in range(5):
    a = int(input('请输入0结束循环,你有5次机会:'))
    i=i+1
    if a == 0:
        print('你触发了break语句,导致else语句不会生效。')    
        break
else:
    print('5次循环你都错过了,else语句生效了。')

对以上四个语句进行总结
在这里插入图片描述课后一练

secret = 24  #设定秘密数字
while True:       
    guess = input('你来猜猜我的秘密数字是多少:')   #输入猜测数字
    if int(guess)==secret:  #数字对比
        print('正确!你很棒哦。') 
        break
    elif int(guess)>secret:
        print('你猜的太大了,请重新猜猜~')
    else:
        print('你猜的太小了,请重新猜猜~')

进阶学习

secret = 24
for i in range(3):
    guess = input('guess which number is my secret:')
    if  int(guess) ==secret:
        print('正确!你很棒哦。')  #输出结果
        break
    elif int(guess)>secret:
        print('你猜的太大了,请重新猜猜~')
    else:
        print('你猜的太小了,请重新猜猜~') 
else:
    print('给你3次机会都猜不到,你失败了。')

既然是三次机会,那么我们就利用range(3)生成0,1,2的序列,三次循环之后即会结束。这里我们重点看两个地方:一是break,二是倒数第二句的else。

在for…in…循环中也可以使用break,正常情况下,三次机会用完之后就结束循环,但如果第一次就猜对了,也需要结束循环。前者我们能用range(3)解决,后者则依靠break语句。for…in…可以和else语句搭配使用。意思是在for…in…循环结束之后,执行else语句里的命令。不过如果for…in…是因为break结束的就不会执行else语句里的命令。

所以如果第一次就猜对了,break会结束循环,计算机会告诉你right,但不会打印出else里面的“给你3次机会都猜不到,你失败了。”其实编程就是这样,不断拆解,不断动手,不断接受失败,于是不断成长。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值