Python 基础知识全篇-数字(Numbers)
整数
整数的基本操作如你预想的那样,相对直观简洁。相加和相减就用加号和减号,乘法用星号,除法用斜杠,幂乘用双星号
print(3+2)
print(3-2)
print(3*2)
print(3/2)
print(3**2)
也可以用括号改变计算顺序。
standard_order = 2+3*4
print(standard_order)
my_order = (2+3)*4
print(my_order)
浮点型数字
浮点型数字指代的是带小数点的数字。大多数情况下,你可以把浮点型数字想象成小数。
print(0.1+0.1)
但是有时候得到的答案并不如预想的那样。如下所示:
print(0.1+0.2)
事实上,这跟 Python 无关。生活中我们常用十进制来算术,但是计算机是用二进制来计算的。0.1 和 0.2 都要换算成二进制的才能进行计算,得到的结果也是二进制的。在二进制中,没有表示0.3的确切的数字,也就变成了我们看到的结果。
不要担心这种事情,Python 为我们解决了这个问题,稍后会讲。
你可以用其他计算得到同样的结果:
print(3 * 0.1)
3 * 0.1 == 0.3
Decimal 模块
decimal 模块提供了修正十进制浮点数的运算。它的优点如下:
Decimal 模块可以使小数精确表示。
用户可自定义修改精度。
模块设计主要围绕三个概念:十进制数、算术上下文和信号。
参阅
What Every Computer Scientist Should Know About Floating-Point Arithmeticdocs.oracle.comdecimal moduledocs.python.org
decimal 实例
from decimal import Decimal, getcontext
getcontext().prec = 17
result = 3 * Decimal(0.1)
print(type(result))
print(3 * Decimal(0.1))
print(3 * 0.1)
动手试一试
Arithmetic
动手写一个程序,在程序中进行加,减,乘,除,幂乘等基本运算。
Order of Operations
写出一个算术表达式。
利用圆括号打印不同顺序下的表达式结果。
Long Decimals
你已经知道在 Python 中,0.1+0.2=0.30000000000000004。找出另外几种能够得到一个很长小数的运算。
# Ex : Arithmetic
a = 6
b = 5
print("a + b = ", end='')
o = a+b
print(o)
# Ex : Order of Operations
result = (3*4)+2
print('The result of the calculation of (3*4)+2', result, sep=' = ')
# Ex : Long Decimals
print(3.125 / 0.2)