加法:+,与C#中并无区别,并且一样可以作用于字符串。
但Python中不支持字符串与数值类型的相加。
1 i = 1
2 s = '1'
3 print(s + i)
这样是会在运行时报错的,正确写法如下:
1 i = 1
2 s = '1'
3 print(s + str(i))
Python中不支持自增,即:
1 i = 1
2 i++
是错误的,正确写法:
1 i = 1
2 i += 1
减法:-,同C#。且不支持自减。
乘法:*,同C#。值得注意的是,Python支持幂运算,使用两个*。(C#中则使用Math.Pow)
1 i = 9
2 print(i**2)3 print(i**3)4 print(i**0.5)5 print(i**-1)
输出:
81
729
3.0
0.1111111111111111
除法:/,Python中的除法比较特殊。
1 a = 11
2 b = 2
3 print(a/b)
得到的结果是5.5,而并不是5。
在Python中,除法会将被除数和除数都先转换为float类型再进行运算。同理,10/2会得到5.0。因此,在Python中,除法的结果必然是一个float。
那么就无法使用整除了么?答案是否定的。
1 print(11//2)# 5
2 print(-11//2)# -6
3 print(11.0//2)# 5.0
第一行:// 运算符执行古怪的整数除法。如果结果为正数,可将其视为朝向小数位取整(不是四舍五入),但是要小心这一点。
第二行:当整数除以负数, // 运算符将结果朝着最近的整数“向上”四舍五入。从数学角度来说,由于 −6 比 −5 要小,它是“向下”四舍五入,如果期望将结果取整为 −5,它将会误导你。
第三行:// 运算符并非总是返回整数结果。如果分子或者分母是 float,它仍将朝着最近的整数进行四舍五入,但实际返回的值将会是 float 类型。
PS:摘自《深入Python3》
模运算,即取余:%,同C#。
11%2得1