2016-07-31 53 views
-4

我在Microsoft Visual Studio類型化條件代碼在Python編程

answer = input("What Is Your Age ? ") 
if answer >= "18" : 
     print("You Have The Right To Cast Vote In India.") 
else : 
     print("You Have No Right To Cast Vote In India.") 

當用戶鍵入的數量比等於18則顯示,更大的「你有權要投票的印度。」當用戶輸入的數字大於9且小於18時,它顯示「你無權在印度投票」。取而代之,它正在正常工作,但當用戶輸入小於10的數字時,它顯示「您有權在印度投票」。
但我希望它應該顯示「你無權在印度投票」。當用戶類型小於10且小於18.
請給我解決方案。

+1

比較於整數,而不是字符串。 – Julien

+0

我不明白爲什麼這是downvoted。這是一個常見的初學者錯誤,在一個寫得很好的清晰問題中提出。 –

+0

@ OrangeFlash81,我同意。我贊成,因爲問題很清楚,寫得很好,對其他可能犯同樣錯誤的初學者也很有用。 –

回答

0

您正在比較字符串,而不是整數。 當比較字符串比較是詞典:

print('101' > '18') 
>> False 

你應該answer轉換爲int,然後比較爲整數:

answer = int(input("What Is Your Age ? ")) 
if answer >= 18 : 
     print("You Have The Right To Cast Vote In India.") 
else : 
     print("You Have No Right To Cast Vote In India.") 

這將引發ValueError如果輸入是不是有效的數字,其你將不得不考慮。

0

您試圖將字符串answer與字符串"18"作比較,就好像它們都是數字。這是行不通的 - Python試圖根據字母順序而不是數字來比較它們。

達到你想要什麼,用int函數轉換answer爲一個整數,並採取18了引號的,使其成爲一個整數太:

answer = input("What Is Your Age ? ") 
if int(answer) >= 18 : 
     print("You Have The Right To Cast Vote In India.") 
else : 
     print("You Have No Right To Cast Vote In India.")