2014-09-26 92 views
-3

這是我的程序。一切正常。問題是,我需要用戶能夠確定循環的數量。我嘗試過的所有方法都不起作用。實現Python動態循環?

這是代碼:

def main(): 

    print("This is a chaotic function") 

    # c voor index, a & b zijn user inputs 
    a = float(input("Number between 0 and 1: ").replace(',','.')) 
    b = float(input("Another number between 0 and 1: ").replace(',','.')) 
    c = int(input("How many iterations? ")) 
    z = 0 


    # print de randen van de tabellen 
    print('%10s %20s %20s' % ("Index", a, b)) 
    print("______________________________________________________") 
    a_temp = a 
    b_temp = b 

    # loops berekenen de chaotische nummers voor de input 
    for i in range(10): 
     a_temp = 3.9 * a_temp * (1 - a_temp) 
     b_temp = 3.9 * b_temp * (1 - b_temp) 
     z = z + 1 

    #Print resultaten naar tabel 
    print('%10s %20s %20s' % (c, a_temp, b_temp)) 

main() 

的一段代碼我試圖執行:

for i in range (c) 

不工作。我將如何得到這個工作?

+2

當你在範圍(c)中使用'for i時,你會得到什麼錯誤? – user3557327 2014-09-26 21:14:48

+0

它不會給出錯誤,但它只是迭代一次,而不管int C是什麼。 C = 23迭代一次,C = 5迭代一次。我在範圍(10)迭代10次。 – Menubalk 2014-09-26 21:16:56

+1

只打印一次,如果這就是你的意思。 – jonrsharpe 2014-09-26 21:18:12

回答

0

在python縮進是至關重要的!

(假設貼出的原代碼是準確的,那麼這將工作):

....... 

# loops berekenen de chaotische nummers voor de input 
for i in range(c): 
    a_temp = 3.9 * a_temp * (1 - a_temp) 
    b_temp = 3.9 * b_temp * (1 - b_temp) 
    z = z + 1 

    #Print resultaten naar tabel 
    print('%10s %20s %20s' % (c, a_temp, b_temp)) 

在您的代碼打印行不縮進,因此不是環路的一部分,因此只有不斷執行一次。

+0

謝謝你!這工作:) – Menubalk 2014-09-26 21:30:16

+1

@Menubalk爲什麼你改變'範圍(10)'和'範圍(c)'版本之間的縮進?那又如何不是你第一次重複檢查?! – jonrsharpe 2014-09-26 21:36:56

+0

我沒有。但是在範圍(10)中,縮進不知何故並不重要。使用範圍(c),它可以。奇怪的東西。好點,我應該檢查它。我是編碼noob,經驗教訓:) – Menubalk 2014-09-26 21:42:18