前言:
当前你们对“python比较数字”可能比较讲究,同学们都需要分析一些“python比较数字”的相关文章。那么小编同时在网摘上网罗了一些对于“python比较数字””的相关内容,希望咱们能喜欢,你们快快来学习一下吧!前面我们已经学习了输入和类型转换。现在我们可以使用Python解决一些实际的问题了。我们再引入一个数学的问题,2 + 3和2 × 3的结果谁大谁小?这个问题使用Python如何解决呢?这次的课我们将要讲一下比较运算、逻辑运算和布尔值。
一、布尔值1.1 什么是布尔值
布尔值(bool)由真(True)和假(False)这两个值组成,用于逻辑判断。布尔值的True对应数字1,False对应数字0。
1.2 布尔值与其他类型的转换
布尔值True转换为整数为1、转换为浮点数为1.0
布尔值False转换成整数为0、转换为浮点数为0.0
print(int(True)) # 1print(float(True)) # 1.0print(int(False)) # 0print(float(False)) # 0.0
整数0转换为布尔值为False,其他整数转换为布尔型都为True
浮点数0.0转换为布尔值为False,其他浮点数转换为布尔型都为True
空字符串转换为布尔值为False,其他字符串转换为布尔值都为True
print(bool(0)) # Falseprint(bool(0.0)) # Falseprint(bool(12)) # Trueprint(bool(0.1)) # Trueprint(bool('')) # Falseprint(bool('hello')) # True二、比较运算符
比较运算符一共有六个:
运算符
作用
==
判断两个值是否相等
!=
判断两个值是否不相等
>
判断左边是否大于右边
<
判断左边是否小于右边
>=
判断左边是否大于或等于右边
<=
判断左边是否小于或等于右边
注意:等于的比较运算符是==,应当与赋值运算符=区分开,不能写错。
比较运算符的结果是布尔值,为True或者False。
例:
3 == 3.0
True
5 != 5
False
6 > 4
True
6 < 4
False
7 >= 6
True
6 <= 6
True
2.1 数字大小的比较
不管是整数还是浮点数,大小的比较与数学上数字的大小完全一致。
print(4.0 == 4) # Trueprint(2 > -1) # Trueprint(10 < -10) # False2.2 字符串大小的比较
字符串的大小比较的原理来自于Unicode码(具体字符编码的知识在后面的高级课程中会涉及)。在现阶段我们只需要掌握如下规律:
数字 < 大写字母 < 小写字母 < 汉字
同样是大写字母(小写字母)的,按照英文字母表的顺序,前面 < 后面。
字符串大小比较按照逐一比较的原则来比较大小。第一个字符不一样,即直接比较出大小,无论后面还有什么字符;第一个字符一样,则比较第二个字符,第二个字符不一样,即比较出大小;以此类推。
我们来看一下具体示例:
'123'
<
'abc'
数字 < 字母
'ABC'
<
'abc'
小写字母 < 大写字母
'ABC'
<
'BCD'
字母A在字母B前面
'ABC'
<
'ACD'
第一个字母相同,比较第二个字母
'12'
>
'111'
第一个字符都是1,第二个字符2>1
'AB'
>
'A'
第一个字符相同,右边没有第二个字符,左边大
三、逻辑运算符
逻辑运算符一共有三个,与(and)、或(or)、非(not)。
3.1 not运算符
not运算符是取反,not True结果为False、not False结果为True
大家可以思考一下,以下代码的运算结果是什么?
print(not 2)print(not '')
前面讲过,非0的数字都是True,因此not 2的结果是False;空字符串是False,因此not ''的结果是True。
3.2 or运算符
or是逻辑或,如果两边都是False,结果为False;只要有一个为True,结果就为True。
print(True or True) # Trueprint(True or False) # Trueprint(False or True) # Trueprint(False or False) # False
如果两边的值都是布尔值,or运算符非常好理解。但如果两边出现数字,就要说一下Python在处理or运算符的原理了。Python中采用一种非常“懒惰”的方式计算or运算符,如果左边的值为True,那运算结果一定是True,Python就不会看右边的值了;如果左边的值为False,那就要看右边的值是True还是False。说起来有点抽象,我们具体看一下下面几个运算式的结果。
print(2 or 4) # 2print(3 or 0) # 3print(0 or 6) # 6print(0 or 0) # 0
我们看第一行和第二行,左边的数字为非0,转换成布尔型是True,因此不再看右边的值,因此结果就等于左边的值;再看第三行和第四行,左边的数字为0,转换成布尔型是False,因此看右边的值,右边的值为多少最后的结果就是多少。
3.3 and运算符
and是逻辑与,如果两边都是True,结果为True;只要有一个为False,结果就为False。
print(True and True) # Trueprint(True and False) # Falseprint(False and True) # Falseprint(False and False) # False
如果两边的值都是布尔值,and运算符非常好理解。如果两边出现数字,又要提到Python在处理and运算符的原理了。Python中同样使用“懒惰”的方式处理and运算符。如果左边的值为False,那结果一定为False,Python就不会看右边的值了;如果左边的值为True,那就要看右边的值是True还是False。同样我们看下面几个运算式的结果。
print(5 and 8) # 8print(5 and 0) # 0print(0 and 7) # 0print(0 and 0) # 0
先看第一行和第二行,左边的值为非0,转换成布尔型是True,因此需要看右边的值,右边的值是什么结果就是什么;再看第三行和第四行,左边的值为0,转换成布尔型为False,因此不再需要看右边的值,左边的值是多少结果就是多少。
3.4 逻辑运算符的优先级
逻辑运算符中,优先级最高的是not,其次是and,最后再算or。
以True or not True and False为例:
① True or not True and False
② True or False and False
③ True or False
④ True
四、运算符的优先级
我们到目前为止,学了算术运算符、比较运算符和逻辑运算符。我们最后整体看一下所有运算符的优先级关系。
整体优先级为:算术运算符 > 比较运算符 > 逻辑运算符
运算符
描述
**
算数运算符——幂运算
*、/、%、//
算数运算符——乘、除、取模、整除
+、-
算数运算符——加、减
<、<=、>、>=、==、!=
关系运算符
not
逻辑运算符——非运算
and
逻辑运算符——与运算
or
逻辑运算符——或运算
五、课后思考题
1、假设a=20,b=3,那么a or b的结果是( )
A. 20 B. False C. True D. 3
2、已知x=5,y=6,则表达式not(x!=y)的值为( )
A. True B. False C. 5 D. 6
3、在下面的运算符中,按照运算优先级,哪一个是最高级?( )
A. ** B. * C. + D. //
4、假设a=2,b=1,c= a and b-1,那么c的值是( )
A. 3 B. 1 C. 2 D. 0
5、print(2*3 > 4*2 or 121>12 and 7%3 == 4%3)的结果是( )
A. False B. True C. 3 D. 4
6、编程题
小明带了100元钱去文具店买本子,已知每本本子的单价是3.3元。输入购买的本子的数量,计算小明身上的钱够不够。如果够,输出True;如果不够,输出False
输入:
一行输入,输入本子的数量
输出:
True或者False
六、上节课思考题答案
1、10
2、参考代码:
a = input("请输入长:")b = input("请输入宽:")a = float(a)b = float(b)s = a * bprint(s)
标签: #python比较数字 #python比较数字大小函数