2014-09-10 48 views
-5

假設一個國家A的人口約爲80 000居民,其稅率爲 ,年增長率爲3%,人口B爲20 0000居民的人口的生長計劃來計算並寫出所需年數 爲A國人口超過或等於B國人口,保持率爲 增長。爲什麼我的代碼不工作?請看看你是否能幫助我

之後,我需要做另一個程序來更改以前的程序,允許用戶通知人口和增長率首字母縮寫。驗證輸入並允許重複操作。

我做這個形式,但沒有工作...

here

years = int(input("anecesary years: ")) 

populA = 80000 
populB = 200000 

years = 0 

growthA = 0.03 
growthB = 0.015 

while populA > populB: 
    years += 1 

populA = populA + (populA * growthA) 
populB = populB + (populB * growthB) 
print("after %i years the country A exceeded the country B :",years) 
print("P A: ", populA) 
print("P B: " ,populB) 
+1

你爲什麼說這是在標題中一個SyntaxError? – 2014-09-10 09:41:23

+0

對不起......我認爲是語法錯誤 – Susan 2014-09-10 09:59:56

回答

2
populA = 80000 
populB = 200000 

while populA > populB:

還有就是你的問題,你的代碼將不會爲populA運行是小於populB起始不大於>

更改爲:

while populA < populB: 

您還重置years0years = int(input("anecesary years: "))後,當你使用years = 0我懷疑是你想要的。

所以,你的代碼看起來應該像下面remove years = 0並確保populA = populA + (populA * growthA) etc..是while循環中:

years = int(input("anecesary years: ")) 

populA = 80000 
populB = 200000 

growthA = 0.03 
growthB = 0.015 

while populA < populB: 
    years += 1 
    populA += populA * growthA # same as populA = populA + (populA * growthA) 
    populB += populB * growthB 
print("after %i years the country A exceeded the country B :", years) 
print("P A: ", populA) 
print("P B: ", populB) 
+0

Hi Mr:Padraic,謝謝你的回答,我差點擊中了練習,只在那裏(在那段時間)我迷路了......真的非常感謝,並且關於另一個問題,改變之前的計劃,允許用戶告知人口和增長率的首字母縮寫。驗證輸入並允許重複操作,我可以再次使用該程序嗎?我需要創造一個新的......? – Susan 2014-09-10 22:49:25

+0

@Susan,如果我正確理解你,那麼你可以重複使用它沒問題,你應該把它作爲一個功能,你可以在需要時調用它。 – 2014-09-10 22:57:07

+0

嗯,所以我不需要創建一個新的,好的...但創建一個函數...ãh...我需要把最後一行打印(「PB:」,populB)新int(輸入(函數名稱))...正確...? ...(我相信是錯的...對不起) – Susan 2014-09-10 23:09:00

相關問題