运行这样的东西时,我总是遇到这个错误:
from decimal import *
getcontext().prec =30
b=("2/3")
Decimal(b)
Run Code Online (Sandbox Code Playgroud)
错误:
Traceback (most recent call last):
File "Test.py", line 6, in <module>
Decimal(b)
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]
Run Code Online (Sandbox Code Playgroud)
另外,为什么我从控制台得到这个结果?
>>> Decimal(2/3)
Decimal('0.66666666666666662965923251249478198587894439697265625')
Run Code Online (Sandbox Code Playgroud)
谢谢
这是我所说的基本例子:
从0到10000000计数
import time
k = 0
beginning = time.time()
while k < 10000000:
k = k+1
elapsed = round(time.time()-beginning, 5)
print (elapsed)
Run Code Online (Sandbox Code Playgroud)
现在有了一种计算的"状态"(每1秒显示一次百分比):
import time
k = 0
beginning = time.time()
interval = time.time()
while k < 10000000:
if time.time() - interval > 1:
print (round((k/100000), 5))
interval = time.time()
k = k+1
elapsed = round(time.time()-beginning, 5)
print (elapsed)
Run Code Online (Sandbox Code Playgroud)
第一个示例需要3.67188秒,第二个示例需要12.62541秒.我想这是因为脚本必须不断检查是否已经过了1秒.有没有办法解决这个问题?我发现了一些关于线程和多进程的东西,但我无法弄清楚如何实现它.谢谢