2016-09-21 94 views
0

簡單的if語句有問題。我希望用戶按下'1','2'或'3'鍵來選擇任何選項,然後程序會做一些事情。對於測試,只需按'2'後打印文本例如「Wybrano 2」。簡單if/elif語句+ raw_input爲什麼不能工作

這裏是我的代碼:

if raw_input() == '1': 
     print "Wybrano 1" 

elif raw_input() == '2': 
     print "Wybrano 2" 

elif raw_input() == '3': 
     print "Wybrano 3" 

所以,如果我按1它正確打印「Wybrano 1」,但是當我按2或3的程序什麼都不做。

+4

你想你比較之前....如果你使用的是默認存儲的raw_input'()'的'變量的raw_input()' – MooingRawr

+0

請發佈'raw_input()'的代碼 – danielhadar

+0

因爲它比較了第一個「if」,並且測試在第二個和第三個測試中失敗,所以進入'elif'並等待你輸入輸入..所以把'raw_input()'放在'if..elif'並保存到任何變量中 –

回答

3

當我按2或3程序並不是什麼都沒有的時候是錯的。它正在等待你的下一個輸入。

讓我告訴你這是如何工作的。

  • raw_input是接受用戶輸入的Python功能。(我知道你們都知道這個:)的)
  • 當你執行的代碼,首先它會去「if」的聲明。 'if'聲明後有'raw_input'函數。所以,它等待你的意見。
  • 當您輸入'1',"1" = "1"時,它會爲您提供預期的輸出並出現代碼。
  • 但是,下一次再次執行代碼時,'if'之後再次執行'raw_input'將等待您的輸入。當您輸入'2'並且由於'1' == '2'爲假時,代碼將轉至下一個'elif'聲明。 'elif'之後有'raw_input'正在等待輸入的功能。
  • 因此,你有感覺,程序什麼都不做。
  • 當您輸入'3'時會發生同樣的情況。

的上述例子解釋行爲

if raw_input("Enter number : ") == '1': 

    print "Wybrano 1" 
elif raw_input("Enter number : ") == '2': 

    print "Wybrano 2" 
elif raw_input("Enter number : ") == '3': 

    print "Wybrano 3" 

輸出:

C:\Users\dinesh_pundkar\Desktop>python c.py 
Enter number : 1 
Wybrano 1 

C:\Users\dinesh_pundkar\Desktop>python c.py 
Enter number : 2 
Enter number : 2 
Wybrano 2 

C:\Users\dinesh_pundkar\Desktop>python c.py 
Enter number : 3 
Enter number : 3 
Enter number : 3 
Wybrano 3 

如何使你的代碼的工作?

答案很簡單。正如第一條評論中的@MooingRawr所解釋的,只需將用戶輸入保存在某個變量中,然後檢查。

x = raw_input("Enter number : ") 
if x == '1': 
    print "Wybrano 1" 
elif x == '2': 
    print "Wybrano 2" 
elif x == '3': 
    print "Wybrano 3" 

輸出:

C:\Users\dinesh_pundkar\Desktop>python c.py 
Enter number : 1 
Wybrano 1 

C:\Users\dinesh_pundkar\Desktop>python c.py 
Enter number : 2 
Wybrano 2 

C:\Users\dinesh_pundkar\Desktop>python c.py 
Enter number : 3 
Wybrano 3 

C:\Users\dinesh_pundkar\Desktop> 
+1

現在它是如此明顯;)謝謝大家 – ReVaN

相關問題