一、数字

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

函数

返回值 ( 描述 )

modf(x)

返回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

函数

返回值 ( 描述 )

max(x1, x2,…)

返回给定参数的最大值,参数可以为序列。

min(x1, x2,…)

返回给定参数的最小值,参数可以为序列。

示例代码:

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(x)

返回数字的绝对值,如abs(-10) 返回 10

fabs(x)

返回数字的绝对值,如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

函数

返回值 ( 描述 )

ceil(x)

返回数字的上入整数,如math.ceil(4.1) 返回 5

floor(x)

返回数字的下舍整数,如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

函数

返回值 ( 描述 )

pow(x, y)

x**y 运算后的值。

sqrt(x)

返回数字x的平方根。

  • 数学函数__part6

函数

返回值 ( 描述 )

log(x)

如math.log(math.e)返回1.0,math.log(100,10)返回2.0

log10(x)

返回以10为基数的x的对数,如math.log10(100)返回 2.0

1.4 随机数函数

随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。

Python包含以下常用随机数函数:

函数

描述

choice(seq)

从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。

[randrange (start,] stop [,step])

从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1

random()

随机生成下一个实数,它在[0,1)范围内。

[seed(x])

改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。

shuffle(lst)

将序列的所有元素随机排序

uniform(x, y)

随机生成下一个实数,它在[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包括以下三角函数:

函数

描述

acos(x)

返回x的反余弦弧度值。

asin(x)

返回x的反正弦弧度值。

atan(x)

返回x的反正切弧度值。

atan2(y, x)

返回给定的 X 及 Y 坐标值的反正切值。

cos(x)

返回x的弧度的余弦值。

hypot(x, y)

返回欧几里德范数 sqrt(xx + yy)。

sin(x)

返回的x弧度的正弦值。

tan(x)

返回x弧度的正切值。

degrees(x)

将弧度转换为角度,如degrees(math.pi/2) , 返回90.0

radians(x)

将角度转换为弧度