python
2015-10-16 75 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適當的情況下。

相關問題