??编程语言中的表达式和语句是有本质的区别的。语句是要编译成机器码,属于CPU的指令系统,由CPU执行。而表达式就是可以计算的,汇编中明确说了表示式会在汇编过程经过运算得到一个操作数。同理,在其他的高级语言中,比如C++ 和python,也同样如此。
??再说一下表达式的组成,表达式=对象(或者变量)+ 操作符。
??表达式就是可以计算出结果的,最终就是得到一个某一种数据类型的数。某一种指的是什么?在python中,可以是int型,float型,bool型,更可以是字符串型和列表型等等(因为它们可以使用+号和*号进行运算,并且*的本质就是多个+号的使用。)。
??从上面我们就知道了,操作符就是表达式的一个部分,本质上就是用来实现某一种运算的功能。那么下面的话,我们来对操作符进行一个分类。分类的依据主要是运算得到的结果。可以分成三大类。
加 | 减 | 乘 | 除 | 取模 | 取余 | 幂 |
---|---|---|---|---|---|---|
+ | - | * | / | // | % | ** |
??附加说明一下,上面的+ 和*除了可以用来进行数值的运算之外,还可以进行其他的数据类型的运算。比如字符串,列表,元组和集合等等。
??我们知道在计算机的内存中,任何的东西,无论是数值还是字符串还是图像或者音乐都是按照位或者bit来存储的,本质上就是0和1,对应于高低电平。不同类型的东西只是经过译码和解码得到不同的内容而已。位操作是计算运算最本质的运算。
??这里介绍的位运算,只是针对于bitwise,就是逻辑操作。包括按位与,按位或,按位取反,按位异或。
??在说明一下,按位操作,得到的结果还是一个计算内存的二进制数。注意,就是一个二进制数,不管它代表的是什么,数值还是字符串还是图像还是视频等等。这里和逻辑运算符是有本质的区别的。
??具体的按位操作符如下表所示:
bitwise_and | bitwise_or | bitwise_not | bitwise_xor |
---|---|---|---|
& | | | ~ | ^ |
??我们会发现,很多表达式都会这样。bool在python中无非就是True和Flase(注意大小写,python是case-sensitive的),这很有用,可以用作条件判断。用在循环和条件语句中。所以这个很重要!
??逻辑运算符的操作对象或者说变量的数据类型是属于布尔型的。并且运算结果也是布尔型。逻辑运算符有三个,就是与或非。
与 | 或 | 非 |
---|---|---|
and | or | not |
??python中的逻辑运算的规则非常重要。
1)对于x and y,如果x和y都是真,就是返回最后一个值就是y。如果其中有一个是假,则返回那个假的值(x或者y中的一个)。如果两个都是假的话,就会返回第一个假的值。
>>> # 两个都是真
... 1 and True
True
>>> # 其中一个是真
... 1 and []
[]
>>> # 两个都是假
... ‘‘ and Flase
‘‘
2)对于x or y,如果两个都是真,返回第一个真。如果一个是真,则返回真值。如果两个都是假,则返回最后一个假的值。
>>> # 两个都是真,返回第一个
... 1 or ‘nihao‘
1
>>> # 一个是真,返回真值
... [1] or False
[1]
>>> # 两个都是假,返回最后一个假
... {} or []
[]
3)对于not的话,结果只返回True和False。这个要和and和or进行区分。
总结:所以进行逻辑运算,不一定是布尔类型。关键要学会python是怎么判断真和假的,然后按照上面的运算规则进行运算。请参考我的文章:<<python对于真和假的定义>>
??首先说明,比较运算符进行比较的对象必须是同一种类型的。比如都是int,或者都是list类型的。
等于 | 不等于 | 大于 | 大于等于 | 小于 | 小于等于 |
---|---|---|---|---|---|
== | != | > | >= | < | <= |
特别说明,不仅仅是数据可以进行比较,向字符串和列表等等都是可以比较的。序列比较的规则是,从序列的开始逐一对序列的元素进行比较,一旦有结果就返回来。
成员测试,就是说序列中的某一个成员是否属于该序列。
??身份测试,测试的是id,就是内存中的id地址。我们知道,所有的东西都是存在于计算机的内存中的。这个测试如果是真,就证明是同一个对象。或者可以说,这就是进行一个对象测试了。看是否是同一个对象。
??首先说就是=,这是一个赋值运算符。本质就是引用的意思。
??增强型运算符,就是算术运算符+赋值运算符。其实就是缩写用的。比如+=, *=, -=,就是先进行一个运算运算,然后再进行赋值的意思。相当于C++中的i++,在python中就是 i+=1。
原文:https://www.cnblogs.com/GuangJI/p/13528615.html