2016-07-31 34 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.")