Python 实用**表示乘方。
2**4 = 16
/表示除法,会保留小数。
//表示整除,丢弃小数点后面的值。
>>> 6/3
2.0
>>> 6//3
2
>>> 5//3
1
Python对整数的长度没有限制。
>>> 25**99 2489206111144456682857625621512049696236100867488466853240446645915879533614153376473577929250285446782786635822048992849886417388916015625
区分5和5.0很重要,因为5是整数,而5.0是浮点数,它们的内部表示大相径庭。
与整数不同,浮点数存在上限和下限,超出上限或下限将导致溢出错误。溢出错误意味着计算结果太大或太小,Python无法将其表示为浮点数。面对溢出错误,Python可能沉默不语,避免溢出错误的职责由程序员承担。
>>> 25.0**1000 Traceback (most recent call last): File "<pyshell#20>", line 1, in <module> 25.0**1000 OverflowError: (34, 'Result too large')
精度有限
无论在哪种计算机上,浮点数的精度都是一个无法解决的难题。在计算机中,数字用二进制表示,但并非所有浮点数都可用二进制精确表示。即便在最简单的情况下,也可能出现问题,比如下例:
>>> 1-2/3 0.33333333333333337
结果应该是小数点后面有无穷个3,但这里只包含17位。另外,最后一位也不对——应该是3而不是7。
应该优先考虑使用整数而不是浮点数,因为它们更精确且绝不会溢出。
在Python中,用1j表示-1的平方根。
>>> 1j 1j >>> 1j*1j (-1+0j) >>> 1J 1j
2015-06-19 23:35:16