python数字
python整数
加(+)减(-)乘(*)除(/)运算如下:
>>> 2 + 3
5
>>> 3 - 2
1
>>> 2 * 3
6
>>> 3 / 2
1.5
在终端会话中,python直接运算结果,python使用两个乘号表示乘方运算:
>>> 3 ** 2
9
>>> 3 ** 3
27
>>> 10 ** 6
1000000
python还支持运算次序,因此你可在同一个表达式中使用多种运算,还可以使用括号来修改运算次序,让按你指定的次序执行运算,如下:
>>> 2 + 3 * 4
14
>>> (2 + 3) * 4
20
在这些示例中,空格不影响python计算表达式的方式,它们的存在旨在让你阅读代码时,能迅速确定先执行哪部分运算。
浮点数
python将带小数点的数字都称为浮点数。大多数编程语言都使用了这个术语,它指出了这样一个事实:小数点可出现在数字的任何位置。每种编程语言都须细心设计,以妥善的处理浮点数,确保不管小数点出现在什么位置,数字的行为都是正常的。
很大程度上来说,使用浮点数时无需考虑其行为,只需输入要使用的数字,python都会按你期望的方式处理他们
>>> 0.1 + 0.1
0.2
>>> 0.2 + 0.2
0.4
>>> 2 * 0.1
0.2
>>> 2 * 0.2
0.4
需要注意的是,结果包含的小数位数可能是不确定的:
>>> 0.2 + 0.1
0.30000000000000004
>>> 3 * 0.1
0.30000000000000004
所有语言都存在这种问题,所以,并不需要担心,python会尽力找到一种方式,以尽可能精确地表示结果,但鉴于计算机内部表示数字地方式,在有些情况下很难,就现在而言,暂时忽略多余的小数位即可。
使用函数str()避免类型错误
我们有时经常需要在消息中使用变量的值。例如,假设你要助人生日快乐,可能会编写类似于下面的代码:
birthday.py
age = 23
message = "Happy " + age + "rd Birthday!"
print (message)
运行结果如下:
Traceback (most recent call last):
File "birthday.py", line 2, in <module>
message = "Happy " + age + "rd Birthday!"
TypeError:can't convert 'int' object to str implicitly
只是一个类型错误,意味着python无法识别你使用的信息。在这个示例中,python发现你使用了一个值为整数(int)的变量,但它不知道该如何解读这个值。python知道,这个变量表示的可能是数值23,也可能是字符2和3。像上面这样在字符串中使用整数时,需要显式地指出你希望python将这个整数用作字符串。为此,可调用函数str(),它让python将非字符串值表示为字符串:
age = 23
message = "Happy " + str(age) + "rd Birthday!"
print (message)
运行结果如下:
Happy 23rd Birthday!
python 2中的整数
在python 2 中,将两个整数相除得到的结果稍有不同:
>>> python 2.7
>>> 3 / 2
1
python返回的结果为1,而不是1.5.在python 2中,整数除法的结果只包含整数部分,小数部分被删除。请注意,计算整数结果时,采取的方式不是四舍五入,而是将小数部分直接删除。
在python 2中,若要避免这种情况,务必确保至少有一个操作数为浮点数,这样结果也将为浮点数:
>>> 3 / 2
1
>>> 3.0 / 2
1.5
>>> 3 / 2.0
1.5
>>> 3.0 / 2.0
1.5
从python 3转而用python 2或从python 2转而用python 3时,这种除法行为常常令人迷惑,使用或编写浮点数代码时,一定要注意这种异常行为。
python之禅
python社区的理念都包含在TimPeter撰写的“python”之禅中。要获得相关指导原则,在解释器中输入命令import this.
>>> import this