python
2015-10-16 70 views -2 likes 
-2

我想写一个简单的程序,只读两个符号(=,+)。我已经完成了使用如果块如上所述的检查:尝试,除python

x = raw_input("Please answer + or =") 
if x == '+': 
    print "plus" 
elif x == '=': 
    print "equal" 
else: 
    print "not valid" 

我想删除其他,并尝试使用除了检查。 例如我想要类似:

try: 
    x = raw_input("Please answer + or =") 
    if x == '+': 
     print "plus" 
    elif x == '=': 
     print "equal" 
except ....: 
    print "not valid" 

有人能帮助我吗? 谢谢

+1

我觉得你不清楚“try ... except”的含义。我建议阅读关于构建和使用,并在这里问。 – kmad1729

+1

你打算尝试什么操作可能会抛出异常?给出的答案显示了一种可能性。但是,您提供的代码没有特别容易出错的操作。 – Prune

回答

1
values = {"+": "plus", "=": "equal"} 

x = raw_input("Please answer + or =") 

try: 
    print values[x] 
except KeyError: 
    print "not valid" 

但是,我不知道,你应该使用try/except这里,因为if可能更容易阅读。

-1

如果这是一个功能,可以随时引发错误:

def somefunction(input): 
    try: 
     if input == '+': 
      return 'plus' 
     elif input == '=': 
      return 'equal' 
     raise ValueError 
    except ValueError, e: 
     return e.message 
+0

这似乎是一种非常奇怪的做事方式。另外,请注意,对于超过2.5的任何Python版本,您应该使用'ValueError as e:'。 – jonrsharpe

0

这只能读取+或=并将继续重复+或进入直到=时。

while x != "+" and x != "=": 
    if x == "+": 
     print "plus" 
    elif x == '=': 
     print "equal" 
    else: 
     print '' 
0
def wordify(): 
    x = raw_input('Please answer + or =: ') 

    if x == '+': 
     print 'plus' 
    elif x == '=': 
     print 'equal' 
    else: 
     print 'Not valid. Please try again.\n' 
     wordify() 

现在你只要运行该功能。

In [11]: wordify() 
Please answer + or =: 8 
Not valid. Please try again. 

Please answer + or =: - 
Not valid. Please try again. 

Please answer + or =: + 
plus 

In [12]: wordify() 
Please answer + or =: * 
Not valid. Please try again. 

Please answer + or =: = 
equal 

像其他人一样是在暗示,这是不适合使用try/except适当的情况下。

相关问题