Python学习-24.Python中的算术运算

加法:+,与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

posted @ 2014-09-29 15:56  h82258652  阅读(866)  评论(0编辑  收藏  举报