Python 基础知识全篇-数字(Numbers)

2020-05-19  本文已影响0人  BABYMISS

整数

整数的基本操作如你预想的那样,相对直观简洁。相加和相减就用加号和减号,乘法用星号,除法用斜杠,幂乘用双星号

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 Arithmetic​docs.oracle.comdecimal module​docs.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)

上一篇 下一篇

猜你喜欢

热点阅读