2016-09-21 68 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

相关问题