一、数字
1.1 基本运算
python中数字有四种类型:整数、布尔型、浮点数和复数。
- int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
- bool (布尔), 如 True。
- float (浮点数), 如 1.23、3E-2
- complex (复数), 如 1 + 2j、 1.1 + 2.2j
数值运算(加减乘都一样)
>>> 7 / 4 # 除法,得到一个浮点数
1.75
>>> 7 // 4 # 除法,得到一个整数
1
>>> 7 % 4 # 取余
3
>>> 2 ** 5 # 乘方
32
数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。
var1,var2 = 1,42 # 实例在变量赋值时 Number 对象将被创建
del var1,var2 # del语句删除一些数字对象的引用
1.2 数字类型互相转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
- int(x) 将x转换为一个整数。
- float(x) 将x转换到一个浮点数。
- complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
- complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
x = 1.0 ; a = 3 ; b = 4
print(int(x)) # 转换成int类型
print(float(x)) # 又转换成了float类型
print(complex(x)) # 转换成了一个复数类型
cp = complex(a,b)
print(cp) # 构造出了一个复数类型
'''
1
1.0
(1+0j)
(3+4j)
'''
1.3 常用函数
- 数学函数__part1
函数 | 返回值 ( 描述 ) |
返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 |
import math # 需要调用math模块
x = math.pi
print(math.modf(x))
print(type(math.modf(x))) # 返回的结果是 Tuple元组 类型
t=math.modf(x)
print(t[0],t[1]) # 可以自己赋值,取出 整数部分 和 小数部分
print(type(t[0]),type(t[1])) # 类型都是 float 类型
以上实例运行后输出结果为:
(0.14159265358979312, 3.0)
<class 'tuple'>
0.14159265358979312 3.0
<class 'float'> <class 'float'>
- 数学函数__part2
函数 | 返回值 ( 描述 ) |
返回给定参数的最大值,参数可以为序列。 | |
返回给定参数的最小值,参数可以为序列。 |
示例代码:
print ("max(0, 100, -400) : ", max(0, 100, -400))
print ("min(-20, 100, 400) : ", min(-20, 100, 400))
结果:
max(0, 100, -400) : 100
min(-20, 100, 400) : -20
- 数学函数__part3
函数 | 返回值 ( 描述 ) |
返回数字的绝对值,如abs(-10) 返回 10 | |
返回数字的绝对值,如math.fabs(-10) 返回10.0 |
两个函数的区别:
- abs() 是一个内置函数,而 fabs() 在 math 模块中定义的。
- fabs() 函数只适用于 float 和 integer 类型,而 abs() 也适用于复数。
a = -1 ; cp1 = 3+4j
print(abs(a),abs(cp1)) # abs()直接用就完事了。又全,又方便
b = -2
import math # 调用math模块
print(math.fabs(b)) # 使用fabs(),要import math模块
- 数学函数__part4
函数 | 返回值 ( 描述 ) |
返回数字的上入整数,如math.ceil(4.1) 返回 5 | |
返回数字的下舍整数,如math.floor(4.9)返回 4 | |
[round(x ,n]) | 返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。其实准确的说是保留值将保留到离上一位更近的一端。 |
import math
x = math.pi
print(math.ceil(x)) # 需要调用math模块
print(math.floor(x)) # 需要调用math模块
print(round(x)) # round是自带的
print(round(x,4))
程序运行结果:
4
3
3
3.1416
- 数学函数__part5
函数 | 返回值 ( 描述 ) |
x**y 运算后的值。 | |
返回数字x的平方根。 |
- 数学函数__part6
函数 | 返回值 ( 描述 ) |
如math.log(math.e)返回1.0,math.log(100,10)返回2.0 | |
返回以10为基数的x的对数,如math.log10(100)返回 2.0 |
1.4 随机数函数
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
Python包含以下常用随机数函数:
函数 | 描述 |
从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 | |
[randrange (start,] stop [,step]) | 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1 |
随机生成下一个实数,它在[0,1)范围内。 | |
[seed(x]) | 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 |
将序列的所有元素随机排序 | |
随机生成下一个实数,它在[x,y]范围内。 |
理解这6种的用法:
- choice( ),给定一些确定的值,然后让你在里面选,一般规律性不强,数量不多。
- randrange( ),给定一些确定值,不过更有规律性
- random( ),随机生成下一个实数,它在[0,1)范围内。
- seed( ),设置某个seed后,可让紧接着的random( )值留存,我下次再拿出这个seed,能获得相同的random
- shuffle( ),传入的参数只能是 list,随机打乱 list 里面的值的顺序
- uniform( ),随机生成下一个实数,它在[x,y]范围内
代码例子:
import random
### random.choice( seq ) # seq 可以是一个列表,元组或字符串。###
print ("从 range(100) 返回一个随机数 : ",random.choice(range(100)))
print ("从列表中 [1, 2, 3, 5, 9]) 返回一个随机元素 : ", random.choice([1, 2, 3, 5, 9]))
print ("从字符串中 'Runoob' 返回一个随机字符 : ", random.choice('Runoob'))
"""
从 range(100) 返回一个随机数 : 68
从列表中 [1, 2, 3, 5, 9]) 返回一个随机元素 : 2
从字符串中 'Runoob' 返回一个随机字符 : u
"""
### random.randrange ([start,] stop [,step]) # stop是必须的参数,其他可以省略,[,)左闭右开 ###
print ("randrange(1,100, 2) : ", random.randrange(1, 100, 2))# 从 1-100 中选取一个奇数
print ("randrange(100) : ", random.randrange(100))# 从 0-99 选取一个随机数 默认从0开始
"""
randrange(1,100, 2) : 97
randrange(100) : 42
"""
### random.random() ###
print ("random() : ", random.random())# 第一个随机数
print ("random() : ", random.random())# 第二个随机数
"""
random() : 0.09690599908884856
random() : 0.8732120512570916
"""
### random.seed ( [x] ) ###
### 我们调用 random.random() 生成随机数时,每一次生成的数都是随机的。但是,当我们预先使用 random.seed(x) 设定好种子之后,其中的 x 可以是任意数字,如10,这个时候,先调用它的情况下,使用 random() 生成的随机数将会是同一个。
import random
random.seed(10)
print(random.random()) # 第一次 seed + random。等于说,seed(10)和 这次random出来的值 定下了契约
print(random.random()) # 没有拿出令牌,随机的random值
random.seed(10)
print(random.random()) # 拿出令牌,且令牌是10,所以就拿出,第一次存储好的random值
random.seed(15)
print(random.random())
"""
0.5714025946899135
0.4288890546751146
0.5714025946899135
0.965242141552123
"""
### random.shuffle (lst) # lst 列表 ###
list = [20, 16, 10, 5];
random.shuffle(list)
print ("随机排序列表 : ", list)
random.shuffle(list)
print ("随机排序列表 : ", list)
"""
随机排序列表 : [20, 5, 16, 10]
随机排序列表 : [5, 20, 10, 16]
"""
### random.uniform(x, y) # x和y随便谁大谁小,结果可取x和y,结果返回的是float类型 ###
print ("uniform(5, 10) 的随机浮点数 : ", random.uniform(5, 10))
"""
uniform(5, 10) 的随机浮点数 : 7.054602800254241
"""
1.5 三角函数
Python包括以下三角函数:
函数 | 描述 |
返回x的反余弦弧度值。 | |
返回x的反正弦弧度值。 | |
返回x的反正切弧度值。 | |
返回给定的 X 及 Y 坐标值的反正切值。 | |
返回x的弧度的余弦值。 | |
返回欧几里德范数 sqrt(xx + yy)。 | |
返回的x弧度的正弦值。 | |
返回x弧度的正切值。 | |
将弧度转换为角度,如degrees(math.pi/2) , 返回90.0 | |
将角度转换为弧度 |