2016-11-15 52 views
0
while True: 
# main program 

    number = (" ") 
total = 0 

num1 = int(input("enter a number")) 
total = total + num1 
num2 = int(input("enter a number")) 
total = total + num2 
num3 = int(input("enter a number")) 
total = total + num3 

if total > 100: 
    print("That's a big number!") 
else: 
    print("That's a small number.") 
print(total) 

while True: 
     answer = raw_input("Run again? (y/n): ") 
     if answer in y, n: 
      break 
     print("Invalid input.") 
    if answer == 'y': 
     continue 
    else: 
     print 'Goodbye' 
     break 

基本上我想程序在用戶輸入'y'作爲'run again?'的響應時重新啓動?任何幫助將被廣泛讚賞。謝謝。如果用戶輸入'重新運行?'重新啓動Python程序?是'y'

+0

試着寫你的主要的功能(https://docs.python.org/2/library/__main__.html)然後調用的main()'如果答案=='y'' – burhan

回答

1

正如@burhan建議的那樣,只需將主程序包裝在函數中即可。順便說一句,你的代碼有一些錯誤,這些錯誤可以使用一些幫助:

  • if answer in y, n: - 你大概的意思if answer not in ('y', 'n')
  • number = (" ")是一個不相干的線
  • while True是沒有意義的主程序
  • print("Invalid input.")被低於break,因此它永遠不會被執行

所以你會有這樣的事情:

def main(): 
    total = 0 

    num1 = int(input("enter a number")) 
    total = total + num1 
    num2 = int(input("enter a number")) 
    total = total + num2 
    num3 = int(input("enter a number")) 
    total = total + num3 

    if total > 100: 
     print("That's a big number!") 
    else: 
     print("That's a small number.") 
    print(total) 

while True: 
    answer = raw_input("Run again? (y/n): ") 
    if answer not in ('y', 'n'): 
     print("Invalid input.") 
     break 
    if answer == 'y': 
     main() 
    else: 
     print("Goodbye") 
     break 
+0

你打敗了我,但很少imporvements,雖然, 在答案不在('y','n')'我認爲他應該繼續給用戶一個機會再次輸入並且在while循環之前調用'main()'一次 –

-1
def main(): 
    total = 0 
    num1 = int(input("enter a number")) 
    total = total + num1 
    num2 = int(input("enter a number")) 
    total = total + num2 
    num3 = int(input("enter a number")) 
    total = total + num3 

    if total > 100: 
     print("That's a big number!") 
    else: 
     print("That's a small number.") 
    print(total) 

    answer = raw_input("Run again? (y/n): ") 

    if answer not in ('y', 'n'): 
     print("Invalid input.") 
    if answer == 'y': 
     main() 
    else: 
     print 'Goodbye' 


if __name__ == '__main__': 
    main() 

當用戶輸入非數字輸入等

+0

這幫助,謝謝! – WhiteTail

-2

你的代碼看起來真的搞砸你或許應該增加一些檢查,以處理案件。下次試着寫一些更好的(乾淨的)代碼。

while True: 
    total = 0 

    num1 = int(input("enter a number")) 
    num2 = int(input("enter a number")) 
    num3 = int(input("enter a number")) 
    total = num1 + num2 + num3 

    if total > 100: 
     print("That's a big number!") 
    else: 
     print("That's a small number.") 
    print(total) 

    con = int(input("Run again? 1/0: ")) 
    if con==0: 
     break 
+0

你沒有解釋什麼是問題或解決方法。 – csmckelvey

+0

是的,我的壞:)但我試圖給出最簡單的可能的解決方案的問題。 –

+0

但它確實解決了我的問題。我被要求使用while循環,並希望程序在用戶需要時重新運行。所以感謝Muhammad Asif的幫助。我會按「應答」按鈕,但不能,因爲這是一個新帳戶。 – WhiteTail

相關問題