Python支持的运算符类型有算术运算符、关系运算符、逻辑运算符、赋值运算符,如图2-9所示。
图2-9 运算符类型
接下来一一进行介绍。
算术运算符也称为数学运算符,用来对数字进行数学运算,比如加、减、乘、除、求模、取整。表2-3列出了Python支持的所有算术运算符。
表2-3 算术运算符
下列代码演示算术运算符的使用,源代码见 code\2\calculate.py。
1 a=3 2 b=2 3 print("加法运算符:a+b=",a+b) 4 print("减法运算符:a-b=",a-b) 5 print("乘法运算符:a*b=",a*b) 6 print("除法运算符:a/b=",a/b) 7 print("取模运算符:a%b=",a%b) 8 print("幂运算符:a**b=",a**b) 9 print("取整运算符:a//b=",a//b)
代码的执行结果如下。
加法运算符:a+b= 5 减法运算符:a-b= 1 乘法运算符:a*b= 6 除法运算符:a/b= 1.5 取模运算符:a%b= 1 幂运算符:a**b= 9 取整运算符:a//b= 1
对字符串也可以使用+和*运算符。
下列代码演示字符串中的+和*的使用,源代码见 code\2\str_calc.py。
1 a="abcde" 2 b="hijkl" 3 print("加法运算符:a+b=",a+b) 4 print("乘法运算符:a*2=",a*2)
代码的执行结果如下。
加法运算符:a+b= abcdehijkl 乘法运算符:a*2= abcdeabcde
注意:在*运算符的表达式中,第一个变量是字符串,第二个变量是整数,表示重复该字符串多次。
一个字符串和一个数字是不可以直接连接的,此处通过下列代码来演示,源代码见code\2\ str_calc.py。
1 a="abcde" 2 b=12345 3 print("加法运算符:a+b=",a+b)
代码的执行结果如下。
Traceback (most recent call last): File "g:/book/code/str_cale.py", line 3, in <module> print("加法运算符:a+b=",a+b) TypeError: can only concatenate str (not "int") to str
系统提示,字符串只能与字符串连接,如果要连接字符串与整数类型的数据,需要用str()函数进行处理。
下列代码演示两种不同类型的变量相加,源代码见code\2\str_calc.py。
1 a="abcde" 2 b=12345 3 print("加法运算符:a+b=",a+str(b))
代码的执行结果如下。
加法运算符:a+b= abcde12345
关系运算符主要用于对两个对象进行比较。表2-4列出了Python支持的关系运算符。
表2-4 关系运算符
下列代码演示关系运算符的使用,源代码见code\2\relational.py。
1 a=3 2 b=2 3 print("等于运算符:a==b ",a==b) 4 print("不等于运算符:a!=b ",a!=b) 5 print("大于运算符:a>b ",a>b) 6 print("小于运算符:a<b ",a<b) 7 print("大于等于运算符:a>=b ",a>=b) 8 print("小于等于运算符:a<=b ",a<=b)
代码的执行结果如下。
等于运算符:a==b False 不等于运算符:a!=b True 大于运算符:a>b True 小于运算符:a<b False 大于等于运算符:a>=b True 小于等于运算符:a<=b False
在Python中,还可以使用关系运算符比较字符串、列表。列表会在第4章详细介绍。
下列代码演示关系运算符的使用,源代码见code\2\relational_1.py。
1 a="abcde" 2 b="hijkl" 3 print("字符串比较:a==b ",a==b) 4 print("字符串比较:a>b ",a>b) 5 print("字符串比较:a<b ",a<b) 6 a=[1,2,3] 7 b=[1,2,3] 8 print("列表比较:a=b ",a==b) 9 b=[4,5,6] 10 print("列表比较:a<b ",a<b)
代码的执行结果如下。
字符串比较:a==b False 字符串比较:a>b False 字符串比较:a<b True 列表比较:a=b True 列表比较:a<b True
逻辑运算就是将变量用逻辑运算符连接起来,并对其进行求值的运算过程。表2-5列出了Python支持的and、or和not等3种逻辑运算符。
表2-5 逻辑运算符
下列代码演示逻辑运算符的使用,源代码见code\2\logical_1.py。
1 a=3 2 b=2 3 #a、b都为True 4 if a and b: 5 print('逻辑与为True') 6 else: 7 print('逻辑与为False') 8 #a>b为True,a>5为False 9 if a>b and a>5: 10 print('逻辑与为True') 11 else: 12 print('逻辑与为False') 13 #a、b都为True 14 if a or b: 15 print('逻辑或为True') 16 else: 17 print('逻辑或为False') 18 #a<b为False,b>0为True 19 if a<b or b>0: 20 print('逻辑或为True') 21 else: 22 print('逻辑或为False') 23 #not a为False 24 if not a: 25 print('逻辑非为True') 26 else: 27 print('逻辑非为False')
代码的执行结果如下,读者可以反复测试分析。
逻辑与为True 逻辑与为False 逻辑或为True 逻辑或为True 逻辑非为False
赋值运算符用于给某个变量或表达式设定一个值。表2-6中列出了Python支持的赋值运算符。
表2-6 赋值运算符
下列代码演示赋值运算符的使用,源代码见code\2\assign.py。
1 a=3 2 b=2 3 print("+=加法赋值运算符:a+=b ",a+b) 4 print("-=减法赋值运算符:a-=b ",a-b) 5 print("*=乘法赋值运算符:a*=b ",a*b) 6 print("/=除法赋值运算符:a/=b ",a/b) 7 print("%=取模赋值运算符:a%=b",a%b) 8 print("**=幂赋值运算符:a**=b",a**b) 9 print("//=取整赋值运算符:a//=b",a//b)
代码的执行结果如下。
+=加法赋值运算符:a+=b 5 -=减法赋值运算符:a-=b 1 *=乘法赋值运算符:a*=b 6 /=除法赋值运算符:a/=b 1.5 %=取模赋值运算符:a%=b 1 **=幂赋值运算符:a**=b 9 //=取整赋值运算符:a//=b 1