我想循环这个,每次循环我都想要+1,所以它会打印(1 2 3.直到无穷大)但它打印了2 1 2 1 2..我做错了什么

  • 本文关键字:打印 循环 无穷大 错了 python loops math
  • 更新时间 :
  • 英文 :


我想循环这个,每次循环我都想要+1,所以它会打印(1 2 3 4 5..直到无穷大(但它打印的是12 12 12 12。。。我做错了什么?代码:

import time
x = 1
def main():
print(x)    
x + 1 
time.sleep(1)
print(x+1)

main()
main()

您的代码说main做了->打印1,2,睡眠,打印2。

你应该做

x = 1
def main():
while true:
print(x)
x += 1
time.sleep(1)

main()

您的原始代码不会改变x。x+=1表示x=x+1。

x+1只是2。2不会存储在任何地方。要无限地继续,只需留下一个真正的循环运行,然后手动终止代码。尽管你可以把它盖上1000个环。

您可以使用迭代器。通过使用next(),你可以问它下一个数字是什么,只有当你真正需要它们时,它们才会被计算出来。在本例中,限制是python整数的系统大小。

import sys
maxSize = sys.maxsize
i = iter(range(maxSize))
def main():
print(next(i))
main()
# 0
main()
# 1
main()
# 2

这里的错误是,每次缩放函数main((时都会重新启动x,因为没有循环。

def main():
x = 1
while True:
print(x)
time.sleep(1)
x += 1
main()

在函数内部添加x+1时,不会将值存储回x中进行更新。下面是一个更好的实现。

import time
x = 1

def main():
global x
print(x)
x += 1
time.sleep(1)

while True:
main()

我希望这是的最佳答案

import time #importing time
def infinitive_loop(): #define new function
x = 1 #making variable x equals 1
while True: #this is the loop
yield x
time.sleep(1)#wait 1 sec.
x += 1#it increases one every time
for x in infinitive_loop():
print(x)#print "x"

最新更新