2017-09-07 59 views
-2
a = 0 
for a in range(1,99): 
    a = (a + 2) 
    y = a 
    print(y) 

這是我曾經嘗試和產生1之間的奇數,以99.However它不顯示任何結果的代碼。問題是,我想保持代碼的結構相同,在它的任何問題進行整流,我可能要添加到它,但我不想完全編寫新的代碼,我可能不明白,由於我在Python的是新的。先謝謝你們。python的for循環奇數生成器的代碼是否有效?

PS - 我在此得到的問題是,它打印的所有號碼的範圍,而不是隻有奇的。

+0

最後三行可以簡化到只有'打印(A + 2)' – marcusshep

+0

你們採取了調試的步驟你的問題?當你使用調試器時會發生什麼? – Software2

+0

您的代碼顯示(錯誤)輸出,但仍顯示結果。 – birryree

回答

1

問題是你不應該在循環內修改a,因爲它是由range行自動設置的。

a = 0 #unneeded 
for a in range(1,99): #first time sets a to 1 
    a = (a + 2) # sets a to 3 
    y = a  # sets y to 3 
    print(y)  # prints y 
# loop back to beginning 
for a in range(1,99): #sets a to 2 
    a = (a + 2) # sets a to 4 
    y = a  # sets y to 4 
    ... 

您可以將循環迭代更改爲不同的變量:for _ in range(50):

或者,您可以通過使用範圍功能設置a,而不是修改它在循環體中做一些更Python:for a in range(1,100,2): print(a)

0

在代碼

A =(A + 2)

只會增加 「A」 的值。

您可以通過這種方式得到的任何類型的數字序列的奇數:

for a in range(1,100): 
    if a % 2 != 0: 
     print(a)