📜  Python数字

📅  最后修改于: 2022-05-13 01:54:31.557000             🧑  作者: Mango

Python数字

数字数据类型存储数值。它们是不可变的数据类型,这意味着更改数字数据类型的值会导致新分配的对象。

不同类型的 Number 数据类型是:

  • 整数
  • 漂浮
  • 复杂的

让我们看看它们中的每一个:

整数型

int(整数) 是整数,包括负数但不包括分数。在Python中,整数值的长度没有限制。

示例 1:创建 int 并检查类型

Python3
num = -8
 
# print the data type
print(type(num))


Python3
a = 5
b = 6
 
# Addition
c = a + b
print("Addition:",c)
 
d = 9
e = 6
 
# Subtraction
f = d - e
print("Subtraction:",f)
 
g = 8
h = 2
 
# Division
i = g // h
print("Division:",i)
 
j = 3
k = 5
 
# Multiplication
l = j * k
print("Multiplication:",l)
 
m = 25
n = 5
 
# Modulus
o = m % n
 
print("Modulus:",o)
 
p = 6
q = 2
 
# Exponent
r = p ** q
print("Exponent:",r)


Python3
num = 3/4
 
# print the data type
print(type(num))


Python3
num = 6 * 7.0
 
print(type(num))


Python3
a = 5.5
b = 3.2
 
# Addition
c = a + b
print("Addition:", c)
 
# Subtraction
c = a-b
print("Subtraction:", c)
 
# Division
c = a/b
print("Division:", c)
 
# Multiplication
c = a*b
print("Multiplication:", c)


Python3
num = 6 + 9j
 
print(type(num))


Python3
a = 1 + 5j
b = 2 + 3j
 
# Addition
c = a + b
print("Addition:",c)
 
d = 1 + 5j
e = 2 - 3j
 
# Subtraction
f = d - e
print("Subtraction:",f)
 
 
g = 1 + 5j
h = 2 + 3j
 
# Division
i = g / h
print("Division:",i)
 
 
j = 1 + 5j
k = 2 + 3j
 
# Multiplication
l = j * k
print("Multiplication:",l)


Python3
a = 1.6
b = 5
 
c = a + b
 
print(c)


Python3
a = 2
print(float(a))
 
b = 5.6
print(int(b))
 
c = '3'
print(type(int(c)))
 
d = '5.6'
print(type(float(c)))
 
e = 5
print(complex(e))
 
f = 6.5
print(complex(f))


Python3
a = 1.1
b = 2.2
c = a+b
 
print(c)


Python3
a = 1.2
b = 1.0
c = a-b
 
print(c)


Python3
import decimal
 
a = decimal.Decimal('1.1')
b = decimal.Decimal('2.2')
 
c = a+b
print(c)


Python3
import random
 
print(random.random())


Python3
import random
 
s = 'geeksforgeeks'
L = [1, 2 ,3, 5, 6, 7, 7, 8, 0]
print(random.choice(s))
print(random.choice(L))


Python3
# importing "math" for mathematical operations
import math
 
a = 3.5
 
# returning the ceil of 3.5
print ("The ceil of 3.5 is : ", end="")
print (math.ceil(a))
 
# returning the floor of 3.5
print ("The floor of 3.5 is : ", end="")
print (math.floor(a))
 
# find the power
print ("The value of 3.5**2 is : ",end="")
print (pow(a,2))
 
# returning the log2 of 16
print ("The value of log2 of 3.5 is : ", end="")
print (math.log2(a))
 
# print the square root of 3.5
print ("The value of sqrt of 3.5 is : ", end="")
print(math.sqrt(a))
 
# returning the value of sine of 3.5
print ("The value of sine of 3.5 is : ", end="")
print (math.sin(a))


输出:

示例 2:对 int 类型执行算术运算

蟒蛇3

a = 5
b = 6
 
# Addition
c = a + b
print("Addition:",c)
 
d = 9
e = 6
 
# Subtraction
f = d - e
print("Subtraction:",f)
 
g = 8
h = 2
 
# Division
i = g // h
print("Division:",i)
 
j = 3
k = 5
 
# Multiplication
l = j * k
print("Multiplication:",l)
 
m = 25
n = 5
 
# Modulus
o = m % n
 
print("Modulus:",o)
 
p = 6
q = 2
 
# Exponent
r = p ** q
print("Exponent:",r)

输出:

Addition: 11
Subtraction: 3
Division: 4
Multiplication: 15
Modulus: 0
Exponent: 36

浮球型

这是一个带有浮点表示的实数。它由小数点指定。可选地,可以附加字符e 或 E 后跟正整数或负整数以指定科学计数法。 .表示为浮点数的数字的一些示例是 0.5 和 -7.823457。

它们可以通过输入带小数点的数字直接创建,也可以通过使用整数除法等操作来创建。数字末尾出现的额外零将被自动忽略。

示例 1:创建浮点数和检查类型

蟒蛇3

num = 3/4
 
# print the data type
print(type(num))

输出:

正如我们所见,任何两个整数相除会产生一个浮点数。

浮点数也可以通过对两个浮点数或一个浮点数和一个整数运行操作来产生。

蟒蛇3

num = 6 * 7.0
 
print(type(num))

输出:

示例 2:对 float 类型执行算术运算

蟒蛇3

a = 5.5
b = 3.2
 
# Addition
c = a + b
print("Addition:", c)
 
# Subtraction
c = a-b
print("Subtraction:", c)
 
# Division
c = a/b
print("Division:", c)
 
# Multiplication
c = a*b
print("Multiplication:", c)
输出
Addition: 8.7
Subtraction: 2.3
Division: 1.71875
Multiplication: 17.6

注意:浮点数的精度最多只有小数点后 15 位,第 16 位可能不准确。

复杂型

复数是由实部和虚部组成的数。例如,2 + 3j 是一个复数,其中 2 是实部,而 3 乘以 j 是虚部。

示例 1:创建 Complex 和检查类型

蟒蛇3

num = 6 + 9j
 
print(type(num))

输出:

示例 2:对复杂类型执行算术运算

蟒蛇3

a = 1 + 5j
b = 2 + 3j
 
# Addition
c = a + b
print("Addition:",c)
 
d = 1 + 5j
e = 2 - 3j
 
# Subtraction
f = d - e
print("Subtraction:",f)
 
 
g = 1 + 5j
h = 2 + 3j
 
# Division
i = g / h
print("Division:",i)
 
 
j = 1 + 5j
k = 2 + 3j
 
# Multiplication
l = j * k
print("Multiplication:",l)

输出:

Addition: (3+8j)
Subtraction: (-1+8j)
Division: (1.307692307692308+0.5384615384615384j)
Multiplication: (-13+13j)

数字之间的类型转换

我们可以通过两种方法将一个数字转换为另一种形式:

  • 使用算术运算:如果操作数之一是浮点数,我们可以使用加法、减法等运算隐式(自动)改变数字的类型。此方法不适用于复数。

示例:使用算术运算的类型转换

蟒蛇3

a = 1.6
b = 5
 
c = a + b
 
print(c)

输出:

6.6
  • 使用内置函数:我们还可以使用内置函数,如 int()、float() 和 complex() 来显式地转换为不同的类型。

示例:使用内置函数进行类型转换

蟒蛇3

a = 2
print(float(a))
 
b = 5.6
print(int(b))
 
c = '3'
print(type(int(c)))
 
d = '5.6'
print(type(float(c)))
 
e = 5
print(complex(e))
 
f = 6.5
print(complex(f))

输出:

2.0
5


(5+0j)
(6.5+0j)

当我们将 float 转换为 int 时,小数部分会被截断。

笔记:

  1. 我们无法将复杂数据类型数字转换为 int 数据类型和 float 数据类型数字。
  2. 我们不能在字符串上应用复杂的内置函数。

Python中的十进制数

浮点数的算术运算可能会产生一些意想不到的结果。让我们考虑将 1.1 添加到 2.2 的情况。你们一定想知道这个操作的结果应该是 3.3 但让我们看看Python给出的输出。

例子:

蟒蛇3

a = 1.1
b = 2.2
c = a+b
 
print(c)

输出:

3.3000000000000003

可结果却出乎你的意料。让我们考虑另一种情况,我们将减去 1.2 和 1.0。我们再次期望结果为 0.2,但让我们看看Python给出的输出。

例子:

蟒蛇3

a = 1.2
b = 1.0
c = a-b
 
print(c)

输出:

0.19999999999999996

你们一定认为Python有问题,但事实并非如此。这与Python关系不大,而与底层平台如何处理浮点数有关。这是在系统内部处理浮点数时遇到的正常情况。这是浮点数的内部表示时引起的问题,它使用固定数量的二进制数字来表示十进制数。一些十进制数很难用二进制表示,所以在很多情况下,会导致小的舍入误差。

在这种情况下,以1.2为例,0.2的二进制表示为0.00110011001100110011001100……等等。很难在内部存储这个无限的十进制数。通常,浮点对象的值以具有固定精度(通常为 53 位)的二进制浮点数存储。所以我们在内部将 1.2 表示为,

1.0011001100110011001100110011001100110011001100110011  

这完全等于:

1.1999999999999999555910790149937383830547332763671875

对于这种情况,Python 的十进制模块可以派上用场。如前所述,浮点数精度最多只有 15 位,但在十进制数中,精度由用户定义。它以我们在学校学到的相同方式对浮点数执行运算。让我们看看上面的两个例子,并尝试使用十进制数来解决它们。

例子:

蟒蛇3

import decimal
 
a = decimal.Decimal('1.1')
b = decimal.Decimal('2.2')
 
c = a+b
print(c)
输出
3.3

我们可以在以下情况下使用十进制模块 -

  • 当我们想自己定义所需的精度时
  • 对于需要精确十进制表示的金融应用程序

注意:关于Python中的十进制数以及本模块提供的函数的更多信息,请参阅Python中的十进制函数

Python中的随机数

Python提供了一个 random 模块来生成伪随机数。该模块可以创建随机数,从Python中的序列中选择随机元素等。

示例 1:创建随机值

蟒蛇3

import random
 
print(random.random())
输出
0.9867200671824407

示例 2:从字符串或列表中选择随机元素

蟒蛇3

import random
 
s = 'geeksforgeeks'
L = [1, 2 ,3, 5, 6, 7, 7, 8, 0]
print(random.choice(s))
print(random.choice(L))
输出
f
0

注意:有关随机数的更多信息,请参阅我们的随机数教程

Python数学

Python的数学模块有助于承载三角、统计、概率、对数等不同的数学运算。

例子:

蟒蛇3

# importing "math" for mathematical operations
import math
 
a = 3.5
 
# returning the ceil of 3.5
print ("The ceil of 3.5 is : ", end="")
print (math.ceil(a))
 
# returning the floor of 3.5
print ("The floor of 3.5 is : ", end="")
print (math.floor(a))
 
# find the power
print ("The value of 3.5**2 is : ",end="")
print (pow(a,2))
 
# returning the log2 of 16
print ("The value of log2 of 3.5 is : ", end="")
print (math.log2(a))
 
# print the square root of 3.5
print ("The value of sqrt of 3.5 is : ", end="")
print(math.sqrt(a))
 
# returning the value of sine of 3.5
print ("The value of sine of 3.5 is : ", end="")
print (math.sin(a))
输出
The ceil of 3.5 is : 4
The floor of 3.5 is : 3
The value of 3.5**2 is : 12.25
The value of log2 of 3.5 is : 1.8073549220576042
The value of sqrt of 3.5 is : 1.8708286933869707
The value of sine of 3.5 is : -0.35078322768961984

注意:有关 Python 的 math 模块的更多信息,请参阅我们的 math 模块教程。