简介
数字(number)是不可更改的类型,因此变更数字会生成新的对象,重新分配内存空间。
Python3中支持三种数值类型:
整型(int):又称整数。Python3中整型没有限制大小,因此不包括python2中的长整型。除此之外,布尔类型也是只有两个值的整型。
浮点型(float):浮点型值通常都有一个小数点和一个可选的后缀e(科学计数法,比如:1.5e3=1500)。
复数(complex):复数由实数部分和虚数部分组成,实数部分和虚数部分都是浮点型,虚数部分必须有后缀j或J(比如1.3+1.4j)或者用complex(1.3, 1.4)表示。
类型转换
这三种数值类型之间可以通过类型函数名进行转换。
int(x) #将x转成整数
float(x) #将x转成浮点数
complex(x) #将x转成一个复数,实部为x,虚部为0
complex(x, y) #将x、y转成一个复数,实部为x,虚部为y
1
2
3
4
int(x)#将x转成整数
float(x)#将x转成浮点数
complex(x)#将x转成一个复数,实部为x,虚部为0
complex(x,y)#将x、y转成一个复数,实部为x,虚部为y
除了这些转换函数,Python中提供很多用于数字数据处理的函数:
数学运算函数
三角函数
布尔函数
随机数函数
进制转换函数
ASCII转换函数
数学运算函数
函数
描述
abs(x)
返回数字的绝对值
(x > y) – (x < y)
如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
exp(x)
返回e的x次幂
fabs(x)
返回数字的绝对值
ceil(x)
返回数字的上入整数
floor(x)
返回数字的下舍整数
log(x)
默认以e为底的函数,可以引入其他底,log(x, 底)
log10(x)
返回以10为基数的x的对数
max(x1, x2, …)
返回给定参数的最大值,参数可以为序列
min(x1, x2, …)
返回给定参数的最小值,参数可以为序列
modf(x)
返回x的小数部分与整数部分,两部分的数值符号与x相同,整数部分以浮点型表示
pow(x, y)
x的y次方
round(x, n)
”理论上”返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数
sqrt(x)
返回数字x的平方根
divmod(x, y)
除法-取余计算的结合。返回一个元组(x / y, x % y), 对浮点型和复数的商进行下取整
代码演示:
>>>import math
>>>abs(-5)
-5
>>>(2 > 1) - (2 < 1)
1
>>>math.exp(2)
7.38905609893065
>>>math.fabs(-5)
5.0
>>>math.ceil(4.5)
5
>>>math.floor(4.5)
4
>>>math.log(math.e)
1.0
>>>math.log(9, 3)
2.0
>>>max([1, 2, 3, 4])
4
>>>min([1, 2, 3, 4])
1
>>>math.modf(-2.5)
(-0.5, -2.0)
>>>pow(2, 3)
8
>>>round(0.5)
0
>>>round(1.5)
2
>>>round(2.675)
2.67
>>>round(1.245)
1.25
>>>math.sqrt(9)
3.0
>>>divmod(4, 3)
(1, 1)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
>>>importmath
>>>abs(-5)
-5
>>>(2>1)-(2<1)
1
>>>math.exp(2)
7.38905609893065
>>>math.fabs(-5)
5.0
>>>math.ceil(4.5)
5
>>>math.floor(4.5)
4
>>>math.log(math.e)
1.0
>>>math.log(9,3)
2.0
>>>max([1,2,3,4])
4
>>>min([1,2,3,4])
1
>>>math.modf(-2.5)
(-0.5,-2.0)
>>>pow(2,3)
8
>>>round(0.5)
0
>>>round(1.5)
2
>>>round(2.675)
2.67
>>>round(1.245)
1.25
>>>math.sqrt(9)
3.0
>>>divmod(4,3)
(1,1)
需要注意的是round()函数,当近似到整数部分,如果距离两边一样远,会保留到偶数的一边,比如round(0.5)和round(-0.5)都会保留到0,而round(1.5)会保留到2。如果是保留几位小数,要看机器在截断二进制数的时候是偏大还是偏小了,比如round(2.675, 2)结果为2.67,而round(1.245, 2)结果为1.25。在机器中浮点数不一定能精确表达,因为换算成一串1或0后可能是无限位数的,机器已经做出了截断处理,实际得到的值会或大或小一点点,从而导致这种“bug”。因此,对浮点精度要求很高的话,请用decimal模块。
三角函数
函数
描述
sin(x)
返回的x弧度的正弦值
cos(x)
返回x的弧度的余弦值
tan(x)
返回x弧度的正切值
asin(x)
返回x的反正弦弧度值
acos(x)
返回x的反余弦弧度值
atan(x)
返回x的反正切弧度值
atan2(y, x)
返回给定的 X 及 Y 坐标值的反正切值
hypot(x, y)
返回欧几里德范数 sqrt(x*x + y*y)
degrees(x)
将弧度转换为角度
radians(x)
将角度转换为弧度
代码演示:
>>>import math
>>>math.sin(math.pi/2)
1.0
>>>math.hypot(3, 4)
5.0
>>>math.degrees(math.pi)
180.0
>>>math.radians(180)
3.141592653589793
1
2
3
4
5
6
7
8
9
10
11
12
>>>importmath
>>>math.sin(math.pi/2)
1.0
>>>math.hypot(3,4)
5.0
>>>math.degrees(math.pi)
180.0
>>>math.radians(180)
3.141592653589793
布尔函数
布尔值有两个:True和False,他们分别对应1和0。
代码演示:
>>>bool(1)
True
>>>bool(0)
False
>>>bool('0')
True
>>>bool([])
False
>>>x = 1
>>>y = x < 2
>>>y
True
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>>>bool(1)
True
>>>bool(0)
False
>>>bool('0')
True
>>>bool([])
False
>>>x=1
>>>y=x<2
>>>y
True
随机数函数
在数据挖掘,游戏设计和算法等领域都要使用随机数,python的random模块包含以下常用的随机数函数:
函数
描述
choice(x)
从序列x的元素中随机挑选一个元素
random()
在[0,1)范围内随机生成一个实数
randint(x, y)
在整数[x,y]范围内随机生成一个整数
uniform(x, y)
在[x,y]范围内随机生成一个实数
randrange(start, stop, step)
从指定范围内[start, stop)不包含stop,按指定步数递增的集合中获取一个随机数,步数缺省值为1
shuffle(x)
将序列x的所有元素随机排序
seed(x)
随机数生成器的种子seed。如果不设定x,每次结果都随机,该函数没有返回值,在调用其他随机模块函数之前调用此函数。
代码演示:
>>>import random
>>>random.choice([1, 2, 3, 4])
3
>>>random.random()
0.297556756440553
>>>random.randint(1, 10)
4
>>>random.uniform(1, 3)
1.786673945115081
>>>random.randrange(0, 10, 2)
6
>>>x = [1, 2, 3, 4]
>>>random.shuffle(x)
>>>x
[3, 4, 1, 2]
>>>random.seed(1) #种子数固定,产生的随机数一样
>>>random.random()
0.13436424411240122
>>>random.seed(1) #种子数固定,产生的随机数一样
>>>random.random()
0.13436424411240122
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
>>>importrandom
>>>random.choice([1,2,3,4])
3
>>>random.random()
0.297556756440553
>>>random.randint(1,10)
4
>>>random.uniform(1,3)
1.786673945115081
>>>random.randrange(0,10,2)
6
>>>x=[1,2,3,4]
>>>random.shuffle(x)
>>>x
[3,4,1,2]
>>>random.seed(1)#种子数固定,产生的随机数一样
>>>random.random()
0.13436424411240122
>>>random.seed(1)#种子数固定,产生的随机数一样
>>>random.random()
0.13436424411240122
进制转换函数
函数
描述
int(x, y)
将字符串x(二进制、八进制、十六进制)转换成十进制数并以字符串形式返回,y参数表示x是几进制数
bin(x)
将数字x(十进制)转换成二进制数并以字符串形式返回
oct(x)
将数字x(二进制、十进制、十六进制)转换成八进制数并以字符串形式返回
hex(x)
将数字x(十进制)转换成十六进制数并以字符串形式返回
转十进制
使用int()函数,将字符串转换成十进制数。
二进制转十进制
>>>int('101', 2)
5
1
2
>>>int('101',2)
5
八进制转十进制
>>>int('17', 8)
15
1
2
>>>int('17',8)
15
十六进制转十进制
>>>int('0xf', 16)
15
1
2
>>>int('0xf',16)
15
转二进制
十进制转二进制
>>>bin(5)
'0b101'
1
2
>>>bin(5)
'0b101'
八进制转二进制
先转十进制,再转二进制
>>>bin(int('17', 8))
'0b1111'
1
2
>>>bin(int('17',8))
'0b1111'
十六进制转二进制
先转十进制,再转二进制
>>>bin(int('0xf', 16))
'0b1111'
1
2
>>>bin(int('0xf',16))
'0b1111'
转八进制
二进制转八进制
>>>oct(0b1111)
'0o17'
1
2
>>>oct(0b1111)
'0o17'
十进制转八进制
>>>oct(15)
'0o17'
1
2
>>>oct(15)
'0o17'
十六进制转八进制
>>>oct(0xf)
'0o17'
1
2
>>>oct(0xf)
'0o17'
转十六进制
十进制转十六进制
>>>hex(15)
'0xf'
1
2
>>>hex(15)
'0xf'
二进制转十六进制
先转十进制,再转十六进制
>>>hex(int('0b1111', 2))
'0xf'
1
2
>>>hex(int('0b1111',2))
'0xf'
八进制转十六进制
先转十进制,再转十六进制
>>>hex(int('0o17', 8))
'0xf'
1
2
>>>hex(int('0o17',8))
'0xf'
ASCII转换函数
函数
描述
chr(x)
将x的值转换成ASCII字符,x的范围在[0, 255]之间
ord(x)
接受一个ASCII字符,返回相应的ASCII值
代码演示:
>>>chr(97)
'a'
>>>ord('a')
97
1
2
3
4
5
>>>chr(97)
'a'
>>>ord('a')
97
完整的ASCII表
最后附上完整的ASCII对查表:
ASCII值
控制字符
ASCII值
控制字符
ASCII值
控制字符
ASCII值
控制字符
0
NUL
32
(space)
64
@
96
、
1
SOH
33
!
65
A
97
a
2
STX
34
”
66
B
98
b
3
ETX
35
#
67
C
99
c
4
EOT
36
$
68
D
100
d
5
ENQ
37
%
69
E
101
e
6
ACK
38
&
70
F
102
f
7
BEL
39
‘
71
G
103
g
8
BS
40
(
72
H
104
h
9
HT
41
)
73
I
105
i
10
LF
42
*
74
J
106
j
11
VT
43
+
75
K
107
k
12
FF
44
,
76
L
108
l
13
CR
45
–
77
M
109
m
14
SO
46
.
78
N
110
n
15
SI
47
/
79
O
111
o
16
DLE
48
0
80
P
112
p
17
DCI
49
1
81
Q
113
q
18
DC2
50
2
82
R
114
r
19
DC3
51
3
83
X
115
s
20
DC4
52
4
84
T
116
t
21
NAK
53
5
85
U
117
u
22
SYN
54
6
86
V
118
v
23
TB
55
7
87
W
119
w
24
CAN
56
8
88
X
120
x
25
EM
57
9
89
Y
121
y
26
SUB
58
:
90
Z
122
z
27
ESC
59
;
91
[
123
{
28
FS
60
92
\
124
|
29
GS
61
=
93
]
125
}
30
RS
62
>
94
^
126
~
31
US
63
?
95
—
127
DEL
十进制
十六进制
字符
十进制
十六进制
字符
128
80
Ç
192
C0
└
129
81
ü
193
C1
┴
130
82
é
194
C2
┬
131
83
â
195
C3
├
132
84
ä
196
C4
─
133
85
à
197
C5
┼
134
86
å
198
C6
╞
135
87
ç
199
C7
╟
136
88
ê
200
C8
╚
137
89
ë
201
C9
╔
138
8A
è
202
CA
╩
139
8B
ï
203
CB
╦
140
8C
î
204
CC
╠
141
8D
ì
205
CD
═
142
8E
Ä
206
CE
╬
143
8F
Å
207
CF
╧
144
90
É
208
D0
╨
145
91
æ
209
D1
╤
146
92
Æ
210
D2
╥
147
93
ô
211
D3
╙
148
94
ö
212
D4
Ô
149
95
ò
213
D5
╒
150
96
û
214
D6
╓
151
97
ù
215
D7
╫
152
98
ÿ
216
D8
╪
153
99
Ö
217
D9
┘
154
9A
Ü
218
DA
┌
155
9B
¢
219
DB
█
156
9C
£
220
DC
▄
157
9D
¥
221
DD
▌
158
9E
?
222
DE
?
159
9F
ƒ
223
DF
?
160
A0
á
224
E0
α
161
A1
í
225
E1
ß
162
A2
ó
226
E2
Γ
163
A3
ú
227
E3
π
164
A4
ñ
228
E4
Σ
165
A5
Ñ
229
E5
σ
166
A6
ª
230
E6
µ
167
A7
º
231
E7
τ
168
A8
¿
232
E8
Φ
169
A9
?
233
E9
Θ
170
AA
¬
234
EA
Ω
171
AB
½
235
EB
δ
172
AC
¼
236
EC
∞
173
AD
¡
237
ED
φ
174
AE
«
238
EE
ε
175
AF
»
239
EF
∩
176
B0
?
240
F0
≡
177
B1
?
241
F1
±
178
B2
▓
242
F2
≥
179
B3
│
243
F3
≤
180
B4
┤
244
F4
?
181
B5
╡
245
F5
?
182
B6
╢
246
F6
÷
183
B7
╖
247
F7
≈
184
B8
╕
248
F8
≈
185
B9
╣
249
F9
?
186
BA
║
250
FA
·
187
BB
╗
251
FB
√
188
BC
╝
252
FC
?
189
BD
╜
253
FD
²
190
BE
╛
254
FE
■
191
BF
┐
255
FF
ÿ
如果觉得《python数字形式转换代码_Python数字(number)》对你有帮助,请点赞、收藏,并留下你的观点哦!