第三节 操作符
一、数值运算符
python提供了9个基本的数值运算符,这些运算符由编译器直接提供,所以叫做内置运算符(操作符):
运算符 | 功能 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 模 |
** | 幂 |
// | 整除 |
-i | 负数 |
+i | 正数 |
+
的使用:
>>> 2+3
5
-
的使用:
>>> 2-3
-1
*
的使用:
>>> 2*3
6
这9种运算符和数学习惯完全一致,运算结果也符合数学意义。比如两个数相除如果商是小数则结果是浮点数。实数和虚数计算结果是虚数则输出虚数:
>>> 2/3
0.6666666666666666
>>> 1.2+2+7j
(3.2+7j)
>>>
%
的使用:
>>> 2%3
2
**
的使用:
>>> 2**3
8
//
的使用:
>>> 2//3
0
>>> 8//3
2
python和其他一些编程语言不同,它没有自减(--
)自增(++
)等运算符。
二、比较运算符
比较运算符有的教科书称为关系运算符,如要有6种:
符号 | 功能 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!=或<> | 不等于 |
这些运算符的涵义和数学意义上的涵义一致。
三、赋值运算符
要清楚赋值运算就要清楚一个概念:变量。所谓变量就是在内存中开辟的一个空间。所谓赋值就是在这个空间里塞进数据,变量在赋值前没有数据类型,赋值后变量的数据类型就是所赋值的类型,变量是需要名字的,变量的名字由字母、下划线及数字组成,但数字不能在最前面,变量名字中不能包含空格。另外命名python变量名不能用python的关键字(关于关键字的概念后面介绍)。比如给变量命名是合法的:a
、abc
、_abc
、a2bc
、a_2Bc
;以下是不合法的:2a
数字在前;if
关键字;A^b
有非法符号。在python中汉字作为变量是合法的,但是一般不会用汉字命名变量。在python程序中变量一旦命名就要它赋值,不赋值的变量Pyhton会报错误:
>>> a
Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
a
NameError: name 'a' is not defined
>>>
python中赋值运算符有7个。分别是:
符号 | 功能 | 实例 |
= | 赋值 |
|
+= | 加赋值 |
相当于a=a+3 |
-= | 减赋值 |
相当于a=a-4 |
*= | 乘赋值 |
|
/= | 除赋值 | >>> a=12>>> a/=3>>> a 4.0
|
%= | 模赋值 | >>> a=13>>> a%=3>>> a 1
|
**= | 幂赋值 | >>> a=2 >>> a**=4 >>> a 16 相当于a的4次方再赋值给a |
一般用的最多的也是最主要的是=
赋值运算符,它在数学教科书中是“等于”,在这里不是“等于”,在python中“等于”用==
。
四、逻辑运算符
在python中逻辑运算符共三个:
and
:与。表示两个量或多个量同时为True
其值才是True
,否则为False
。
>>> a=True
>>> b=True
>>> a and b
True
>>> b=False
>>> a and b
False
or
:或。表示两个量或多个量有一个为True
,其值即为True
,只有当所有的量为False
是才为False
。
>>> a=True
>>> b=False
>>> a or b
True
>>> a=False
>>> b=False
>>> a or b
False
not
:非。即取反。当量为True
是其值为False
;当量为False时其值为True
。
>>> a=True
>>> not a
False
>>> a=False
>>> not a
True
五、位运算符
python同样也支持位运算,只是用的不多。python的为运算有6个。
&
:按位与。即按位如果两个对应为同时为1
则为1
,否则为0
。
>>> a=0b1001
>>> b=0b0100
>>> a&b
0
|
:按位或。即按位如果两的对应的位有一个为1
就为1
,同时为0
才为0
。
>>> a=0b1001
>>> b=0b0100
>>> bin(a|b)
'0b1101'
~
:按位非。即按位取反,安慰取反后会出现符号位,这一点需要注意。
>>> a=0b1001
>>> bin(~a)
'-0b1010'
由于用的是64位计算机,所以其中的a
的值实际应为0b
后面60个0
再加上后面的1001
。因此,按位取反后应该是60个1
后面加0110
,用-
号表示应再对0110
取反加1
,即是结果-0b1010
。
^
:按位异或。即按对应为异或,相同为0
不同位1
。
>>> a=0b1001
>>> b=0b0100
>>> bin(a^b)
'0b1101
<<
:按位左移。按位左移要给出移位数,否侧报错。移位后空余位补0。
>>> a=0b1001
>>> bin(a<<2)
'0b100100'
>>
:按位右移。按位右移要给出移位数,否侧报错。移位后空余位补0。
>>> a=0b1001
>>> bin(a>>2)
'0b10'
另外,在python中还有成员运算符:in 、not in;及身份运算符:is 、is not。用到时再叙述。
六、转义字符
python中还有一种操作符,叫转义字符。转义字符用反斜杠\
加相应字母或符号表示。常用的有:
\\
:显示反斜杠。
\'
:显示单引号。
\"
:显示双引号。
\n
:换行。
\t
:制表符。
转义字符一般在打印(print
)输出时使用,它是因为有些字符在python语言中已被定义为其他涵义,为了避免打印输出错误,或者需要表现其他功能(比如换行、制表位等)而设计的。