我想回圈這個,每次回圈我想要 1 所以它列印( 1 2 3 4 5 .. 直到無限)但它列印 1 2 1 2 1 2 1 2 ...我做錯了什么?代碼:
import time
x = 1
def main():
print(x)
x 1
time.sleep(1)
print(x 1)
main()
main()
uj5u.com熱心網友回復:
添加時在函式內部,x 1您不會將值存盤回 x 以更新它。這是一個更好的實作。
import time
x = 1
def main():
global x
print(x)
x = 1
time.sleep(1)
while True:
main()
uj5u.com熱心網友回復:
您的代碼說 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 個回圈。
uj5u.com熱心網友回復:
您可以使用迭代器。通過使用,next()您可以詢問下一個數字是多少,并且只有在您真正需要它們時才會計算它們。在這個例子中,限制是 python-integers 的系統大小。
import sys
maxSize = sys.maxsize
i = iter(range(maxSize))
def main():
print(next(i))
main()
# 0
main()
# 1
main()
# 2
uj5u.com熱心網友回復:
這里的錯誤是每次呼叫函式 main() 時都要重新啟動 x,因為沒有回圈。
def main():
x = 1
while True:
print(x)
time.sleep(1)
x = 1
main()
uj5u.com熱心網友回復:
我希望這是最好的答案
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"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/387548.html
上一篇:如何向神經網路教授拋物線函式
