【发布时间】:2019-09-12 21:46:47
【问题描述】:
所以,基本上,我需要计算从 1 到用户给定数字的零数。我需要向他们询问一个数字,在函数中使用 for 循环来计算该数字中零的数量,将其打印回给他们,然后使用 time() 函数,打印计算所需的时间.所需的输出应如下所示:
你想把零数到什么数字? 10000
The number of zeros written from 1 to 10000 is 2893.
This took 0.0105922222137 seconds.
-这是我目前所拥有的,它非常迷失方向,因为我试图同时处理不同的部分,我意识到这可能不是处理它的最佳方式
from time import time
start_time =time()
stop_time = time()
elapsed = stop_time - start_time
def Count():
i = 0'
count = 0'
for i in range(1,):
if i % 10 is 0
i = i + 1
x =
Num1 = input("What number do you want to count zeros to?: ")
print "The number of zeros written from 1 to {} is {}".format(Num1, x)
如果有人能提供帮助,将不胜感激。
【问题讨论】:
-
欢迎来到 StackOverflow。请按照您创建此帐户时的建议阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布 MCVE 代码并准确说明问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中并重现您指定的问题。 StackOverflow 不是设计、编码、研究或教程资源。
-
您的行顺序错误。如果你想计算时间,那么你应该在开始和结束时获得时间,但你在开始时都需要两次。如果你得到
Num1然后在range(Num1)中使用它。数字可能有很多零,所以使用i % 10是没用的。更好地将数字转换为字符串并在此字符串中计数字符“0”。 -
考虑以log base 10的差异为起点
-
@furas,不完全正确。您可以在每个号码上使用
while循环,并使用%结合num //= 10从号码中弹出数字 -
@C.Nivs 你是对的,代码需要额外的
while循环。我想知道它是否会比转换为字符串运行得更快,但我不会对其进行测试:)
标签: python python-2.7 loops for-loop time