2017-09-09 20 views
0

我創建了一個迴文遊戲,用戶被要求輸入一個單詞,並得到一個迴應,說明它是否是迴文或迴文。我想檢查一下,確保用戶輸入了一個字符串而不是一個數字,並試圖捕捉它。我如何使用TypeError來捕捉錯誤(Python)

我的目標是當用戶輸入一個數字,而不是一個字符串

while True: 
    try: 
     ask = list(input("Enter a word: ")) 
     #print(ask[::-1]) 

     if ask == ask[::-1]: 
      print('Great! Your word was a Palindrome') 

     else: 
      print('''Sorry! Next time FOH SHO!''') 

    except TypeError: 
     print('Must be letters!') 
+0

'輸入(捕獲錯誤)'會返回一個字符串(在python3中),所以也許你需要檢查這個字符串是否只包含字母? – PRMoureu

+2

只需使用內置的字符串函數['str.isalpha()'](https://docs.python.org/3/library/stdtypes.html#str.isalpha)。 – birryree

+0

'input' * always *返回一個字符串。你想檢查該字符串是否只包含字母。在這種情況下,「ValueError」是合適的例外。 – chepner

回答

0

您可以檢查條件isalpha()字符串輸入

while True: 
    ask = input("Enter a word: ") 

    if not ask.isalpha(): 
    print("Must be letters") 
    continue 

    if ask == ask[::-1]: 
    print('Great! Your word was a Palindrome') 

    else: 
    print('''Sorry! Next time FOH SHO!''') 
+0

嘿,工作!非常感謝!!在這種情況下,isalpha()做什麼? –

+0

查看鏈接以查看評論中字符串共享的所有方法,它將僅檢查字母。其他方法如'isalnum()'等可以執行其他操作。 – bhansa

+0

甜美!謝謝! –