Python巩固基础02-基本数据类型之Number数字类型详解
不同数值类型间的转换
数字类型中有三种数值类型:int、float、complex(复数);
在数值类型间转换,直接使用数值类型名作为函数名。
>>> int(3.8) # int函数是直接截取整数部分
3
>>> float(12)
12.0
>>> complex(5)
(5+0j)
>>> complex(5.3)
(5.3+0j)
>>> complex(5.3, 3)
(5.3+3j)
数字格式化输出
- 在python中,
%
和format()
都可以进行数字格式化输出; %
支持保留小数位数、科学计数法、进制转换;format()
支持保留小数位数、科学计数法、进制转换、数字对齐与自动填充;format()
是python2.6版本推出的功能,不仅比%
强大,也更直观便于阅读,而%
在后续版本可能会被淘汰,因此建议使用format()
。
>>> print('{:.3f}'.format(3.141592))
3.142
>>> print('{:+}'.format(3.1415))
+3.1415
>>> print('{:+.2f}'.format(3.1415))
+3.14
>>> print('{:0>2d}'.format(3))
03
>>> print('{:w>3d}'.format(6))
ww6
>>> print('{:w<5d}'.format(8))
8wwww
>>> print('{:,}'.format(1234567))
1,234,567
>>> print('{:.2%}'.format(0.23))
23.00%
>>> print('{:.0%}'.format(0.23))
23%
>>> print('{:.0e}'.format(3))
3e+00
>>> print('{:.2e}'.format(3))
3.00e+00
>>> print('{:>5}'.format(3)) # 等同于 print('{:>5d}'.format(3))
3
>>> print('{:>5}'.format('ee'))
ee
>>> print('{:<3}'.format(3)) # 右对齐,右边实际上补全了两位
3
>>> print('{:^5}'.format(3)) # 中间对齐,两边都补全了两位
3
进制转换
- 使用
format()
进行进制转换; - b、d、o、x 分别代表二进制(bin)、十进制(decimal)、八进制(octal)、十六进制(hexadecimal)。
>>> print('{}的二进制表示为{:b}'.format(8, 8))
8的二进制表示为1000
>>> print('{}的十进制表示为{:d}'.format(8, 8))
8的十进制表示为8
>>> print('{}的八进制表示为{:o}'.format(8, 8))
8的八进制表示为10
>>> print('{}的十六进制表示为{:x}'.format(12, 12))
12的十六进制表示为c
>>> print('{}的十六进制表示为{:#x}'.format(12, 12))
12的十六进制表示为0xc
常用函数
数学计算函数
>>> abs(-6) # 绝对值
6
>>> max(1, 2, 3, 4, 5, 6) # 最大值,参数可为序列
6
>>> min(1, 2, 3, 4, 5, 6) # 最小值
1
>>> pow(2, 3) # 求几次方,pow(x, y) 相当于 x ** y
8
>>> import math
>>> math.ceil(3.2) # 向上取整
4
>>> math.ceil(3.8)
4
>>> math.floor(3.8) # 向下取整
3
>>> math.sqrt(4) #平方根
2.0
随机数函数
使用random()
模块
>>> import random
# random.choice() 返回一个字符串、列表、元组中的随机项
>>> random.choice('hello')
'e'
>>> random.choice([1, 2, 3])
2
>>> random.choice(('a', 'b', 'c'))
'a'
# random.randrange(x, y, z) x为起始数,y为结束数,x和y左闭右开,[x, y),同range()一样;
# z为从x开始递增的基数,即 x+z、x+z+z依次计算,在此计算结果中随机返回一个数。
>>> random.randrange(0, 100, 2) # 在0-99的偶数中随机返回
14
>>> random.randrange(1, 10, 2) # 在1-9的奇数中随机返回
1
# random.random() 在[0, 1)中随机返回一个浮点数
>>> random.random()
0.5217545223629623
# random.randint(x, y) 在[x, y]中随机返回一个整数
>>> random.randint(1, 4)
4