我正在编写一些简单的代码来提高基值的幂,然后对输出执行一些操作。我已经在下面包含了我现在使用的代码(请参阅此消息的结尾),还可以立即在下面看到当我从控制台运行我的脚本时的样子;
C:\PYTHON34>python tst.py
INPUT Value: 431.1
INPUT Power Value; 1.9907
RESULT 1739.554505641426658257842063903808593750000000000000000000000000
我需要能够做的是:
将整数值存储到小数点左侧,不带小数到变量 = x
获取小数点右侧的整个十进制值并存储在变量 = y 中
根据一些简单的规则解析 (y)。这对我来说是个窍门。
我想要做的是检查 (y) 以查看是否有任何前导零和尾随零
在示例1739.554505.....中,如果此值改为,则类似于以下任何内容
1739.0554505
1739.00554505
1739.000554505
然后,我想提取整数减去任何连续的前导零。
接下来,我想减少数字,以便当有四个连续的尾随零时,从前四个连续零开始的第一个零开始的所有零和所有后续零都被截断。
所以在我们的例子中
1739.554505641426658257842063903808593750000000000000000000000000
(y) 变成55450564142665825784206390380859375
接下来,我想通过 %1999 取上述值的 mod。这返回1407。
接下来,我想将此值作为右边的十进制值加入
1739.1407
好的,那么现在为什么我会卡在这一点上?
我对学习 Python 还是很陌生,所以我实际上并不知道最好的方法是什么。
我在想我可能只是对小数点右侧的值进行修剪,将其转换为字符串,然后将每个数字切碎并将每个数字单独存储到一个数组中,然后编写一个规则集遍历数组单元中的字符串,但这似乎也可能比我想要的要花费更多的 CPU 时间。我希望尽可能快地执行这种操作。
此外,即使我必须将其作为字符串存储到数组中,我什至不知道如何最好地解决这个问题,如果我理解正确,字符串处理往往比数字计算花费更多的 CPU 时间。
非常感谢任何见解、方向、代码建议!
这是我目前正在使用的代码
import time
e0=time.time()
c0=time.clock()
import sys
import math
from sympy import mpmath
from mpmath import *
mpmath.mp.dps = 10000
inputx = float(input('Enter inputx Value: '))
powerx =float(input('Enter Power Value; '))
inputx_squared = float((mpmath.power(inputx, powerx)))%1999
print('\r')
print('RESULT ', '%.60f' % inputx_squared)
elapsed_time=time.time() -e0
cpu_time=time.clock() -c0
print('\r')
print("CPU TIME ;", cpu_time)