逻辑判断与循环——True&False
判断与循环是编程的灵魂,如果要实现一个复杂的功能和程序,判断与循环是必不可少的。
if-ealse是常见的逻辑判断手段,但在进行逻辑判断之前,需要了解逻辑判断的基本准则——布尔类型(Boolean Type)
布尔类型 (Boolean Type)
布尔类型是数据类型中的一种,却只有两个 True 和 False(需要注意大小写,Python对大小写非常严格,大小写错误会导致程序报错),人类以真假判断事实,计算机则以0和1判断,0对应False,1对应True。
任何能够的返回布尔类型的表达式均是布尔表达式
在Python终端输入代码会得到:
>>> 1>2 #这就属于一个表达式,可以返回布尔值
False
>>> 1<2
True
>>> 42 != '42'
True
>>> 'Name' = 'name'
False
>>> 'M' = 'Magic'
True
>>> number = 12
>>> number in 12
True
比较运算符
上面代码产生的布尔值的表达方式不同,我们来讲一下这些运算符的的意义和用法
运算符 | 含义 |
---|---|
= | 将右边的值赋给左右边 |
== | 左右两边值相等时返回True |
!= | 左右两边不相等时返回True |
> | 左右大于右边时返回True |
< | 左右小于右边时返回True |
<= | 左边小于或等于右边时返回True |
>= | 左右大于或等于右边时返回Ture |
除了上述简单的数学比较外,当然也可以多条件复杂的比较:
>>> number = 5 #赋值变量
>>> 1 < number <10
Ture
#---------变量的比较-------------
>>> two = 1 + 1
>>> three = 2 + 1
>>> two < three #进行变量值的比较
True
#---------字符串的比较------------
>>> 'Hello World' == 'hello world'
>>> False #在Python中严格区分大小写,所以这个比较的结果返回False
#---------函数结果的比较-----------
>>> asb(-20) > len('length of the world')
#对两个函数结果进行比较实际等价于"20 > 19"
#注:asb()是会返回参数的绝对值的函数
比较运算符的注意事项:
不同类型的对象不能用">,<,<=,>=“进行比较,但可以用”==“和”!="比较,例如字符串和数字之间:
42 > 'the answer' #无法比较
42 = 'the answer' #False
42 != 'the answer' #True
需要注意的是,浮点型和整数型虽然类型不同,但是不影响比较运算:
5.0 == 5 #True
3.0 > 1 #True
你可能会有个疑问,为什么"1 = 1 要写作 1 == 1?",因为在Python中运算符号和数学很多相似之处,但又略有不同。"=“表示的意义是赋值,并非数学中的"等于”。所以"1 = 1"这种写法并不成立,并且Python也不会给你返回布尔值。所以使用"==“这种表示"等于”,记住就可以了。
布尔类型的比较:
True > False
True + False > False + False
这个结果如何理解呢?还记得前面说过得,True和Flase对于计算机就是1和0,如果在输入True + Flase
查看结果不难发现,True = 1,False = 0,也就是说,上面的代码实际等价于:
1 > 0
1 + 0 > 0 + 0
还有个小技巧是1 <> 3
这种表达式实际上等价于1 != 3
,记住即可。