写在之前
截止到昨天我已经写完了 Python 的基本对象类型,在了解了这些戏本的对象类型以后,我们就可以用 Python 的语句来使用它们,语句的作用就是用某些逻辑组合操作某些对象,所以接下来的一段时间我们将开始 Python 语句的学习。
运算符
我们虽然在之前的文章中(零基础学习 Python 之数字与运算)讲过运算,但那个时候我们处于刚开始接触的阶段,所以我们只是稍微讲了其中的一点点,编程语言的运算符其实还是比较多的,我接下来会将各种运算符总结一下。
1.算术运算符
上表是常见的算术运算符(截图自菜鸟教程),上面的运算符和我们以前中学时学的运算符大多数是一样的,因为我们平时学的运算符有计算的优先级,在编程语言里面也是有优先级的,且规律和在数学中的是一样的,如果不确定的话可以自己试试。
2.比较运算符
在计算机中任何两个同一类型的对象都可以比较,比如数字,字符串等等,但是一定要记住比较的双方一定要是同一类型的对象。因为不同类型的对象比较起来完全没有意义,你说一只猪和一台电视两个谁大呢?所以在真正的编程中,我们要谨慎对待。
比较运算符其实我们也是很早很早以前就接触了:大于,小于,等于,不等于等等,Python 里也都基本上是这些东西,都熟悉的很。
上表就是常用的比较运算符(截图自菜鸟教程),比较的返回结果一个是 True 一个是 False,这个的意思就是如果比较的结果成立,则为真,返回 True;如果比较的结果不成立,则为假,返回 False。下面用几个例子来演示一下。
>>> a = 10>>> b = 20>>> a > bFalse>>> a < bTrue>>> a == bFalse>>> a >= bFalse>>> a <= bTrue>>> a != bTrue复制代码
其实不是只有数字才可以比较,字符串也可以比较,字符串的比较是按照字典序来进行的,首先比较第一个字符,相同的话再比较第二个字符,直到找到不同的或者到了末尾。
>>> a = 'abcd'>>> b = 'abcf'>>> a > bFalse>>> a < bTrue复制代码
在 Python 中两种不同类型的对象虽然可以比较,但是我建议你还是不要这么做。
3.逻辑运算符
逻辑运算符里我想讲的就是布尔(bool)类型,至于什么是逻辑你可以先不用懂,或者你想知道的话可以去 Google,权当它就是个叫法就好了。
其实在所有的高级语言中,都有这么一类对象,这类对象被称为布尔类型,它是用一个人的名字来命名的 -- 乔治布尔,感兴趣的同样可以去搜一搜,在这里多说一句,其实你为什么会觉得数学学起来枯燥无味,你觉得它充满了理性,一点没有意思,但是创造数学里各种组成的大人物都是有血有肉的,多去了解一下数学的历史,数学的人物,了解一下背后的东西可以提高学习数学的乐趣。
那么到底什么是布尔类型?其实就是返回的结果为 True 或 False 的对象。如果你想判断表达式的布尔类型返回值,可以用 bool() 函数。下面我来说一下一些比较特殊的布尔值,简单的可以自己去尝试,学习的乐趣就是在不断尝试中激发出来的。
>>> a = "" #这是空>>> bool(a)False>>> a = " " #这是空格,空格是一个字符>>> bool(a)True>>> a = [] #这是一个空列表>>> bool(a)False>>> a = {} #这是一个空字典>>> bool(a)False>>> a = 'leey'>>> bool(a)True复制代码
下面来说说布尔运算,进行布尔运算的运算符成为逻辑运算符,有 and, or 和 not。
and 是 “与” 运算,它的运算方法是:如果 A 是 True,那么就计算 B,如果 B 为 True,那么结果就是 True,如果 B 为 False,那么结果就是 False;如果 A 是 False 的话,直接不用计算 B,直接返回 False。
>>> 4 > 2 and 4 > 3True>>> 4 > 2 and 4 < 3False>>> 4 < 2 and 4 > 3False复制代码
or 是 “或” 运算,它的运算方法是:如果 A 是 True,那么不用看 B,直接返回 True;如果 A 是 False,再计算 B,B 是什么,就返回什么。
>>> 4 > 3 or 4 > 2True>>> 4 < 3 or 4 > 2True>>> 4< 3 or 4 < 2False复制代码
not 是 “非” 运算,即无论是什么,都要否定它。
>>> 4 > 3True>>> not(4>3)False>>> 4 < 3False>>> not(4<3)True复制代码
当然了,在进行逻辑判断或者条件判断的时候,肯定不都是上述的简单的表达式,肯定会碰到复杂的表达式,碰到复杂的表达式的时候最好使用括号,这样便于分辨和运算,再者是因为前面我们说的优先级的问题。
优先级的顺序基本上是: " == " > "!=" > "not" > "and" > "or",所以为了不去记这些复杂的优先顺序,还是用括号吧,用多余的脑容量去记点别的问题。
写在最后
更多内容,欢迎关注公众号「Python空间」,期待和你的交流。