2015-10-04 105 views
0

我想寫,詢問他們要多少年插入,然後讓他們插入溫度當年的每月所以它看起來像這樣用戶python程序:使用而循環


總共有多少年?例如3

哪一年是第一年? e.g 2015

月1:25

月2:21

等等...


了許多年的用戶希望看到的。這是我到目前爲止有:

years = int(input("How many years?: ")) 

i= 0 

while i <= years: 
    for i in range(0,13): 
      input("Type in first year") 
      input("Month 1: ") 
      input("Month 2: ") 
      input("Month 3: ") 
      input("Month 4: ") 
      input("Month 5: ") 
      input("Month 6: ") 
      input("Month 7: ") 
      input("Month 8: ") 
      input("Month 9: ") 
      input("Month 10: ") 
      input("Month 11: ") 
      input("Month 12: ") 

和這類作品,但還有什麼能讓月份數爲+1自動要求輸入12次,更合適的方法?其次,當我完成整整一年的時候,我仍然問我「在哪一年是第一年」,在我輸入了12個月的氣溫之後,但我希望它要求第二,第三等。例如:「其中?在第二年「)

我試圖做這樣的代替:


years = int(input("How many years?: ")) 

i= 0 

monthnumber = 1 

while i <= years: 

    for i in range(0,13): 
      input("Which is the first year?: ") 
      input("Month",monthnumber,": ") 
      monthnumber += 1 

在這裏,我得到錯誤信息輸入預計最多1的說法,得到了3

謝謝提前:)

+0

一個問題是你正在使用'我'兩個循環。並假設你有不同的變量,如果它是你的整個代碼''循環',這是一個'無限'循環 – sam

+0

任何建議我可以做什麼?我可以例如寫:如果monthnumber == 12 break? –

回答

0

以逗號分隔會導致python將其解釋爲多個參數。

你想要的是將字符串連接到單個字符串,這可以通過使用+運算符來實現。

input("Month " + str(monthnumber) + ": ")

0

代碼中的幾個問題。其中一個就像我在評論中所說的那樣,index變量對於這兩個循環都是相同的。 Alsom在你的內循環中,你是iterating要求每個循環內每個月的溫度。此外,你沒有任何地方的溫度。這裏是一個解決方案,我建議,

years = int(raw_input("Enter number of years: ")) 
#dictionary to hold year and temperature for each month for that year 
temp = {} 

for i in range(0, years): 
    curr_year = raw_input("Enter current year: ") 
    temp[curr_year] = [] 
    for i in range(0, 12): 
     temp[curr_year].append((int(raw_input("Enter temperature: ")))) 

Here是代碼的工作版本以上

1

試試這個:

years_num = int(input("How many years?: ")) 

for year_num in range(1, years_num + 1): 
    input("year " + str(year_num) + "?: ") 
    for month_num in range(1, 13): 
     input("month " + str(month_num) +":") 

然後你可以輸入信息存儲在一個列表或字典。