当前位置:首页 >> 脚本专栏

python的数学算法函数及公式用法

之前老是跟大家说看久了Python,总感觉就像是很多的数学公式运算,大家一致觉得只是一点点像,那今天跟大家直接就说下叫“数学”算法的内容,这样大家再来品鉴下,是不是可以贯通使用的内容呢?话不多说了,一起来了解下吧~

数学运算方法

除了上面的基础算术运算符,还支持很多数值类型的运算符,例如:取反(~)、位移()、位与(&)、位异或(^)、逻辑与(and)、逻辑或(or)。

除此之外,还有几个python的内置数学函数:

  • pow():求幂
  • abs():求绝对值
  • round():四舍五入
  • int():取整(截去小数部分)
  • float():转换成浮点数
  • oct():十进制整数转换成八进制
  • hex():十进制整数转换成十六进制整数
  • bin():十进制整数转换成二进制

在Python里还有专门因为数学而创造出来的模块,因此,大家在学习python之前肯定也是经历过数学阶段的吧

python数学算法题举例

斐波那契数列

# 斐波那契数列
sum = 0
num = 1
i = 0
while i < 10:
  nth = sum + num
  print(nth, end=" , ")
  # 更新值
  sum = num
  num = nth
  i+= 1
 
结果:
1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 , 89

阿姆斯特朗数

# 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。
# 1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。
sum = int(input("输入一个数"))
sumlen = len(str(sum))
sumNum = 0
for i in str(sum):
  sumNum +=int(i) ** sumlen
if sum == sumNum:
  print("这个数的阿姆斯特郎数")
else:
  print("不是阿姆斯特郎数")
 
sums = int(input("请输入要查找到多少的阿姆斯特郎数"))
sum = 0
while True:
  num = 0
  n = len(str(sum))
  for i in str(sum):
    num += int(i)**n
  if sum == num:
    print("%d\t这是个阿姆斯特朗数"%sum)
  if sum >sums:
    break
  sum +=1