布尔值只有两种:True还有False,分别代表真与假。
#布尔值长这样
True
False
True、False的首字母大写,其他小写,这是固定写法,不要写错
可是大多数时候,布尔值并不会直接出现在代码中……
布尔值更多时候以这三种形式活跃在代码里

布尔值第一种情况:两个数值在互相比较时
weather = input('请回答:今晚下雨or没下雨')
if weather =='下雨':
print('我和唐僧可以在一起。')
变量weather里的数据 和 ‘下雨’ 这个数据就是在做比较,如果两个数据相等,就为真(True);不相等,就为假(False)。这就是布尔值出现的时刻。在 if 语句中,后面条件为真,即True,就会继续执行 if 下面的代码。
两个数值做比较,除了看两个数值是否相等,还可以有其他类型的比较:
'长安'=='长安'#相等
'长安'!='金陵'#不相等,!= 代表不等于
3>5#大于
3<5#小于
如果使用print() 函数,把这些数值比较的结果显示在屏幕上,会显示True或者是False。

第1行代码:字符串'长安'和字符串'长安'做是否相等的比较,结果正确,所以打印为True。第2行代码:字符串'长安'和字符串'金陵'做比较,结果不相等,【!=】代表不等号,结果正确,打印为True。
第3行代码:整数3>整数5,这个比较的结果是错误的,所以打印为False。第4行代码:整数3<整数5,这个比较的结果是正确的,所以打印为True。
总结一下:两个数值做比较,主要包含以下情况:

主要记住前两种【==】和【!=】,这两种在条件判断中用得非常多。还有大于【>】和小于【<】了,这都属于数学常识了。
特别提醒大家一点:在代码中,A == B表示A和B相等,“==”表示相等关系;而变量中的“=”表示赋值。
再次强调,我们一般不会直接在代码中写下True或是False,但是它们会隐藏在代码中,当某些语句被判断为真的时候,就执行某些命令。
布尔值的第二种使用情况:数值本身作为一个条件,被判断真假。

终端打印出了一个字符串'熊猫'。我们看看这两行代码,这是一段使用了条件判断的代码。因为终端打印出了'熊猫',说明 if 后面的条件为真。
if 后面接的不像是一个条件,而是一个数字。
整数1在这里就是作为一个条件,被判断为真(True)。这就是数值本身作为一个条件,被判断真假的情况。
Python中已经设定好什么数据为真,什么为假。

这个表的左侧一列,它们在Python中被判定为假,比如False、0、'' (空字符串)等等。
那么除了假的,其他就都是真的。比如上一个例子中出现的整数1,就是真的。
None,它代表的是空值,自成一派,数据类型是NoneType。要注意它和0的区别,0是整数0,可并非什么都没有。
if '开心':
print('熊猫')
if'':
print('熊猫')
执行这段程序时,终端会显示一个'熊猫'字符串。
'开心'这个字符串作为一个条件时,被判定为真,所以if后面的条件满足,计算机会执行if的下一行代码;而 ''(空字符串)本身作为一个条件时,被判定为假,if后面的条件为假,计算机不会执行if的下一行代码。
布尔值的第三种使用情况:布尔值的运算
会接触到or、and、not三种运算
#以下为国师的要求
v1 = input('对方是达官显贵吗?')
v2 = input('对方是富可敌国吗?')
if v1=='是达官显贵'orv2=='是富可敌国':
print('国师的要求通过了')
else:
print('国师的要求没通过')
新符号——【or】。or 连接着两个布尔值,只要其中一个布尔值为真,运算结果就可以为真。or的中文是或。
国师对女王老公的要求是——要么是达官显贵,要么是富可敌国,两个条件,只要其中一个为真,就okay,这正是or的运算逻辑——两个值中一个值为真,即为真。

女王陛下自己对丈夫的要求:
#以下为女王的要求
v3 = input('对方善良吗?')
v4 = input('对方好看吗?')
if v3=='善良'andv4=='好看':
print('女王的要求通过了')
else:
print('女王的要求没通过')
【and】,表示且的意思。女王的要求是既要善良,也要好看,两个条件,必须同时满足,她才满意。【and】的运算逻辑:只有两个条件都为真,才为真。

还有一个【not】,它只连接一个布尔值,表示相反的意思

a =5
b =-1
c =0
d =7
if a<b and c<d:
print('True')
else:
print('False')
终端会输出False
报错
当你写出的代码在终端没有运行出你想要的结果,而是出现了一大段莫名其妙的字符,这就是报错。

我们看第一行文字,前面显示的是这个py文件的路径,然后红框里的 "line 1" 意思是第一行代码写错了。假如终端显示的是"line 13"的话,就是说你前面12行都没错,从第13行开始出错的。
然后看第二行文字:print('Hello world') 。是我们写的代码,并且在print 之后有个小小的三角指针。这意味着是这个地方出错了。
继续看第三行文字:SyntaxError: invalid character in identifier。这句话是计算机告诉我们,程序不能运行下去的理由,也就是报错的理由。
我们可以去网上搜索"SyntaxError: invalid character in identifier" ,

看红框中的小字:“请确保代码行内没有夹杂中文的空格,tab等,非文字字符",我们甚至都不用点进去,就可以做出合理的猜测:再结合指针指向的位置,我们思考,print 没有写错,那这个括号是不是写错了?更改后,再次运行,就通过了。
这个小小的例子是想说明程序员也不是什么都记在脑子里,而是把必要的知识记住,遇到不懂的再上网查。
要学会阅读报错,然后思考自己哪里做错了,并能适时借助搜索引擎的力量,找出报错的原因。
在初学者的阶段,我建议你在报错时进行这样的操作。


作业
#布尔值的三种使用情况
#两个值在互相比较时
weather = input('请回答:你今天开心吗')
ifweather =='开心':
print('我也替你开心。')
#数值本身作为一个条件,被判断真假。
if '开心':
print(108)
if'':
print(108)
if1:
print(108)
#布尔值的运算
#国师的要求,二选一
v1 = input('对方是达官显贵吗?')
v2 = input('对方是富可敌国吗?')
if v1=='是达官显贵'orv2=='是富可敌国':
print('国师的要求通过了')
else:
print('国师的要求没通过')
#女王的要求,都满足
v3 = input('对方善良吗?')
v4 = input('对方好看吗?')
if v3=='善良'andv4=='好看':
print('女王的要求通过了')
else:
print('女王的要求没通过')
终端
user1009@python-class:~/assignment/6$ python ~/assignment/6/main.py
请回答:你今天开心吗开心
我也替你开心。
108
108
对方是达官显贵吗?是达官显贵
对方是富可敌国吗?不是
国师的要求通过了
对方善良吗?善良
对方好看吗?好看
女王的要求通过了

我一开始还担心学不会,开课之后发现一点都不难,非常适合入门,写出第一行代码的时候超级自豪。想捉住人工智能机遇的人推荐来报名!
网友评论