目录


文章目录

  • 目录
  • 数学函数
  • 1. abs(__x) 函数
  • 说明:返回数字的绝对值。
  • 2. fabs(__x) 函数
  • 说明:返回数字的绝对值。如math.fabs(-5) 返回5.0。
  • 3. ceil(__x) 函数
  • 说明:返回一个大于或等于 x 的的最小整数。
  • 4. exp(__x) 函数
  • 说明:返回x的指数。
  • 5. floor(__x) 函数
  • 说明:返回数字的下舍整数,小于或等于 x。
  • 6. log(__x,base) 函数
  • 说明:返回x的自然对数,x > 0。
  • 7. log10(__x) 函数
  • 说明:返回以10为基数的x对数,x>0。
  • 8. max(__args1,__args2,__args3,...,key) 函数
  • 说明:返回给定参数的最大值,参数可以为序列。
  • 9. min(__args1,__args2,__args3,...,key) 函数
  • 说明:返回给定参数的最小值,参数可以为序列。
  • 10. modf(__x) 函数
  • 说明:返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
  • 11. pow(base,exp,mod) 函数
  • 说明:base的exp次方的值。如果mod存在,则再对结果进行取模,其结果等效于pow(base,exp) %mod
  • 12. round(__x,n) 函数
  • 说明:返回浮点数 x 的四舍五入值,准确的说保留值将保留到离上一位更近的一端(四舍六入)。 精度要求高的,不建议使用该函数。
  • 说明:如果n存在,表示从小数点位数,其中 x 需要四舍五入,默认值为 0。
  • 13. sqrt(__x,n) 函数
  • 说明:返回数字x的平方根。
  • 随机数函数
  • 1. choice(seq) 函数
  • 说明:返回一个列表,元组或字符串的随机项。seq是一个列表、元组或者字符串。
  • 2. randrange (start, stop,step) 函数
  • 说明:返回指定递增基数集合中的一个随机数,基数默认值为1。
  • 3. random(start, stop,step) 函数
  • 说明:返回随机生成的一个实数,它在[0,1)范围内。
  • 4. seed(a, version) 函数
  • 说明:改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数。
  • 5. shuffle(list) 函数
  • 说明:将序列的所有元素随机排序。
  • 5. uniform(a, b) 函数
  • 说明:随机生成下一个实数,它在 [a,b] 范围内。返回一个浮点数 N,取值范围为如果 a


数学函数

1. abs(__x) 函数

说明:返回数字的绝对值。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


test=-5
result=abs(test)
print(result

运行结果如下:

5

2. fabs(__x) 函数

说明:返回数字的绝对值。如math.fabs(-5) 返回5.0。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

import  math
test=5
result=math.fabs(test)
print(result)

test=-5
result=math.fabs(test)
print(result)


test=-5.0
result=math.fabs(test)
print(result)

test=-45.17
result=math.fabs(test)
print(result)

fabs() 函数类似于 abs() 函数,但是他有两点区别:

abs() 是内置函数。 fabs() 函数在 math 模块中定义。

fabs() 函数只对浮点型跟整型数值有效。 abs() 还可以运用在复数中。

运行结果如下:

5.0
5.0
5.0
45.17

3. ceil(__x) 函数

说明:返回一个大于或等于 x 的的最小整数。

注意:ceil()是不能直接访问的,需要导入 math 模块,通过静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

import  math   # 导入 math 模块

test=-5
result=math.ceil(test)
print(result)

test=-5.9
result=math.ceil(test)
print(result)

test=3.2
result=math.ceil(test)
print(result)

运行结果如下:

-5
-5
4

4. exp(__x) 函数

说明:返回x的指数。

注意:exp()是不能直接访问的,需要导入 math 模块,通过静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

import  math
test=0
result=math.exp(test)
print(result)

test=1
result=math.exp(test)
print(result)

test=2
result=math.exp(test)
print(result)

运行结果如下:

1.0
2.718281828459045
7.38905609893065

5. floor(__x) 函数

说明:返回数字的下舍整数,小于或等于 x。

注意:floor()是不能直接访问的,需要导入 math 模块,通过静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

import  math
test=5
result=math.floor(test)
print(result)

test=-5
result=math.floor(test)
print(result)


test=-45.17
result=math.floor(test)
print(result)

运行结果如下:

5
-5
-46

6. log(__x,base) 函数

说明:返回x的自然对数,x > 0。

注意:log()是不能直接访问的,需要导入 math 模块,通过静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

import  math
test=5
result=math.log(test)
print(result)

test=100
result=math.log(test)
print(result)


test=math.pi
result=math.log(test)
print(result)

test=math.e
result=math.log(test)
print(result)

test=100
result=math.log(test,10)
print(result)

运行结果如下:

1.6094379124341003
4.605170185988092
1.1447298858494002
1.0
2.0

7. log10(__x) 函数

说明:返回以10为基数的x对数,x>0。

注意:log10()是不能直接访问的,需要导入 math 模块,通过静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

import  math
test=5
result=math.log10(test)
print(result)

test=100
result=math.log10(test)
print(result)

运行结果如下:

0.6989700043360189
2.0

8. max(__args1,__args2,__args3,…,key) 函数

说明:返回给定参数的最大值,参数可以为序列。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

result=max(1,0,5,-9)
print(result)

运行结果如下:

5

9. min(__args1,__args2,__args3,…,key) 函数

说明:返回给定参数的最小值,参数可以为序列。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

result=min(1,0,5,-9)
print(result)

运行结果如下:

-9

10. modf(__x) 函数

说明:返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。

注意:modf()是不能直接访问的,需要导入 math 模块,通过静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import math
test=100.12
result=math.modf(test)
print(result)

test=17.8
result=math.modf(test)
print(result)

test=-20.2
result=math.modf(test)
print(result)

运行结果如下:

(0.12000000000000455, 100.0)
(0.8000000000000007, 17.0)
(-0.1999999999999993, -20.0)

11. pow(base,exp,mod) 函数

说明:base的exp次方的值。如果mod存在,则再对结果进行取模,其结果等效于pow(base,exp) %mod
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#



base=5
exp=2
result=pow(base,exp)
print(result)

result=pow(base,exp,3)
print(result)

运行结果如下:

25
1

注意:pow() 通过内置的方法直接调用,内置方法会把参数作为整型,而 math 模块则会把参数转换为 float。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import math
base=5
exp=2
result=math.pow(base,exp)  #不能有mod参数
print(result)

result=pow(base,exp)
print(result)

运行结果如下:

25.0
25

12. round(__x,n) 函数

说明:返回浮点数 x 的四舍五入值,准确的说保留值将保留到离上一位更近的一端(四舍六入)。 精度要求高的,不建议使用该函数。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


test=50.22
result=round(test)
print(result)

test=50.79
result=round(test)
print(result)


test=-50.22
result=round(test)
print(result)

test=-50.79
result=round(test)
print(result)

运行结果如下:

50
51
-50
-51
说明:如果n存在,表示从小数点位数,其中 x 需要四舍五入,默认值为 0。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


test=50.2268
result=round(test,3)
print(result)

test=50.72
result=round(test,2)
print(result)


test=-50.2268
result=round(test,3)
print(result)

test=-50.72
result=round(test,2)
print(result)

运行结果如下:

50.227
50.72
-50.227
-50.72

13. sqrt(__x,n) 函数

说明:返回数字x的平方根。

注意:sqrt()是不能直接访问的,需要导入 math 模块,通过静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import math
test=100
result=math.sqrt(test)
print(result)

test=32
result=math.sqrt(test)
print(result)

运行结果如下:

10.0
5.656854249492381

随机数函数

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

1. choice(seq) 函数

说明:返回一个列表,元组或字符串的随机项。seq是一个列表、元组或者字符串。

注意:choice()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import random
seq=range(1001)   #range(1001) 默认表示从0-1001的范围,和range(0,1001)等价
print(seq)

result=random.choice(seq)
print(result)

result=random.choice(range(100,1001))
print(result)

result=random.choice([1, 2, 3, 5, 9])
print(result)

result=random.choice("abcdwfghijk")
print(result)

运行结果如下:

range(0, 1001)
371
613
1
c

2. randrange (start, stop,step) 函数

说明:返回指定递增基数集合中的一个随机数,基数默认值为1。

注意:randrange()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
start – 指定范围内的开始值,包含在范围内。
stop – 指定范围内的结束值,不包含在范围内。
step – 指定递增基数。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import random

# 从 [0-100) 中选取一个偶数数
start=0  ####
stop=100
step=2
result=random.randrange(start,stop,step)
print(result)

# 从 [1-100) 中选取一个奇数
start=1   ####
stop=100
step=2
result=random.randrange(start,stop,step)
print(result)

运行结果如下:

12
65

3. random(start, stop,step) 函数

说明:返回随机生成的一个实数,它在[0,1)范围内。

注意:random()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import random
# 第一个随机数
print("第一个随机数: ", random.random())
# 第二个随机数
print("第二个随机数: ", random.random())

运行结果如下:

第一个随机数:  0.2325433276686838
第二个随机数:  0.4879651771055411

4. seed(a, version) 函数

说明:改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数。

注意:seed()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。

我们调用 random.random() 生成随机数时,每一次生成的数都是随机的。但是,当我们预先使用 random.seed(a) 设定好种子之后,其中的 a 可以是任意数字,如10,这个时候,先调用它的情况下,使用 random() 生成的随机数将会是同一个。
a 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,如果不设定,则需要系统时间作为seed,以产生下一个随机数。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import random

print("不使用种子生成随机数:", random.random())
print("不使用种子生成随机数:", random.random())

random.seed()
print("使用默认种子生成随机数:", random.random())
random.seed()
print("使用默认种子生成随机数:", random.random())

random.seed(10)
print("使用整数 10 种子生成随机数:", random.random())
random.seed(10)
print("使用整数 10 种子生成随机数:", random.random())

random.seed("hello",2)
print ("使用 字符串 种子生成随机数:", random.random())
random.seed("hello",2)
print ("使用 字符串 种子生成随机数:", random.random())

运行结果如下:

不使用种子生成随机数: 0.14418712812843582
不使用种子生成随机数: 0.2954403628110943
使用默认种子生成随机数: 0.3204525281644701
使用默认种子生成随机数: 0.823952555939719
使用整数 10 种子生成随机数: 0.5714025946899135
使用整数 10 种子生成随机数: 0.5714025946899135
使用 字符串 种子生成随机数: 0.3537754404730722
使用 字符串 种子生成随机数: 0.3537754404730722

5. shuffle(list) 函数

说明:将序列的所有元素随机排序。

注意:shuffle() 是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import random

test = [20,16,10,5,8]

print("第一次随机排序列表: ", random.shuffle(test))

print("第二次随机排序列表: ", random.shuffle(test))

random.shuffle(test)
print("第三次随机排序列表: ", test)

random.shuffle(test)
print("第四次随机排序列表: ", test)

运行结果如下:

第一次随机排序列表:  None
第二次随机排序列表:  None
第三次随机排序列表:  [20, 5, 8, 10, 16]
第四次随机排序列表:  [10, 20, 8, 5, 16]

5. uniform(a, b) 函数

说明:随机生成下一个实数,它在 [a,b] 范围内。返回一个浮点数 N,取值范围为如果 a<b 则 a <= N <= b,如果 b<a 则b <= N <= a。

注意:uniform()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import random

result=random.uniform(5,10)
print(result)

result=random.uniform(5,-10)
print(result)

运行结果如下:

5.655329555430703
-9.471473216297118

三角函数

1. sin(__x) 函数

说明:返回的x弧度的正弦值。

注意:sin()是不能直接访问的,需要导入 math 模块,然后通过 math 静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import math

result=math.sin(60)
print(result)

result=math.sin(90)
print(result)

result=math.sin(-60)
print(result)

result=math.sin(-90)
print(result)

运行结果如下:

-0.3048106211022167
0.8939966636005579
0.3048106211022167
-0.8939966636005579

2. cos(__x) 函数

说明:返回x的余弦弧度值。结果是-1 到 1 之间。

注意:cos()是不能直接访问的,需要导入 math 模块,然后通过 math 静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import math

result=math.cos(60)
print(result)

result=math.cos(90)
print(result)

result=math.cos(-60)
print(result)

result=math.cos(-90)
print(result)

运行结果如下:

-0.9524129804151563
-0.4480736161291701
-0.9524129804151563
-0.4480736161291701

3. tan(__x) 函数

说明:tan() 返回 x 弧度的正切值。

注意:tan()是不能直接访问的,需要导入 math 模块,然后通过 math 静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import math

result=math.tan(60)
print(result)

result=math.tan(90)
print(result)

result=math.tan(-60)
print(result)

result=math.tan(-90)
print(result)

运行结果如下:

0.320040389379563
-1.995200412208242
-0.320040389379563
1.995200412208242

4. asin(__x) 函数

说明:返回的x的反正弦弧度值。

注意:asin()是不能直接访问的,需要导入 math 模块,然后通过 math 静态对象调用该方法。
x是-1到1之间的数值。如果x是大于1,会产生一个错误。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import math

result=math.asin(-1)
print(result)

result=math.asin(0)
print(result)

result=math.asin(-0.5)
print(result)

result=math.asin(1)
print(result)

运行结果如下:

-1.5707963267948966
0.0
-0.5235987755982989
1.5707963267948966

5. acos(__x) 函数

说明:返回x的反余弦弧度值。

注意:acos()是不能直接访问的,需要导入 math 模块,然后通过 math 静态对象调用该方法。
x是 -1到1之间的数值。如果x是大于1,会产生一个错误。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import math

result=math.acos(0)
print(result)

result=math.acos(-1)
print(result)

result=math.acos(1)
print(result)

result=math.acos(0.5)
print(result)

运行结果如下:

1.5707963267948966
3.141592653589793
0.0
1.0471975511965979

6. atan(__x) 函数

说明:返回x的反正切弧度值。

注意:atan()是不能直接访问的,需要导入 math 模块,然后通过 math 静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import math

result=math.atan(60)
print(result)

result=math.atan(90)
print(result)

result=math.atan(-60)
print(result)

result=math.atan(-90)
print(result)

运行结果如下:

1.554131203080956
1.5596856728972892
-1.554131203080956
-1.5596856728972892

数学常量

1. pi常量

说明:数学常量 pi(圆周率,一般以π来表示)

注意: pi 是不能直接访问的,需要导入 math模块,然后通过 math静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import math

result=math.pi
print(result)

运行结果如下:

3.141592653589793

2. e常量

说明:数学常量 e,e即自然常数(自然常数)。

注意: e是不能直接访问的,需要导入 math模块,然后通过 math静态对象调用该方法。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


import math

result=math.e
print(result)

运行结果如下:

2.718281828459045

其他

1. int(self)方法

说明:将字符串转换为整型数字,转换不需要字符串对象调用
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

a="123"
print(type(a),a)
b=int(a)  #把a以默认10进制的形式转换为10进制
print(type(b),b)

运行结果如下:

<class 'str'> 123
<class 'int'> 123

说明:将字符串以某个进制转换为十进制

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test="a"
print(type(test),test)
b=int(test)
print(type(b),b)

注意: 运行时会报错,不能将包含字母或者的字符串直接转换为十进制数字
运行结果如下:

<class 'str'> a
Traceback (most recent call last):
  File "E:/softwares/python/pythonProject/day20200802/helloWorld.py", line 8, in <module>
    b=int(test) #把a以16进制的形式转换为10进制
ValueError: invalid literal for int() with base 10: 'a'

魔法加一个基础参数之后:

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test="a"
print(type(test),test)
b=int(test,base=16) #把a以16进制的形式转换为10进制
print(type(b),b)

注意:这个时候运行时不会报错,a在16进制表示10进制数字10
运行结果如下:

<class 'str'> a
<class 'int'> 10

2. bit_length(self)方法

说明:当前数字的二进制至少用几位表示(不足8位用0表示)
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

age1=1
age2=5
age3=100
# 十进制   二进制
# 1      00000001
# 2      00000010
# 3      00000011
# 4      00000100
# 5      00000101
# 6      00000110
# 100    01100100

length1=age1.bit_length()
print(length1)

length2=age2.bit_length()
print(length2)

length3=age3.bit_length()
print(length3)

运行结果如下:

1
3
7