如何在Python 3中檢查原始輸入是否為整數?
在Python 3中,`input()`函式始終返回字串,即使使用者輸入的是數字。要檢查使用者輸入是否為整數,可以使用`try-except`塊,並嘗試使用`int()`函式將輸入字串轉換為整數。以下是一些程式碼示例,演示了在Python 3中檢查原始輸入是否為整數的不同方法。
使用try-except塊
示例
在這個例子中,我們使用`try-except`塊嘗試使用`int()`函式將使用者的輸入轉換為整數。如果使用者輸入的是整數,則轉換成功,程式將列印“使用者輸入是整數”。如果使用者輸入的是非整數值,則`int()`函式將引發`ValueError`異常,我們用`except`塊捕獲該異常並列印“使用者輸入不是整數”。
try: user_input = int(input("Enter an integer: ")) print("User input is an integer") except ValueError: print("User input is not an integer")
輸出
Enter an integer: 45 User input is an integer
使用isdigit()方法
示例
在這個例子中,我們使用`isdigit()`方法檢查使用者輸入中的每個字元是否都是數字。如果每個字元都是數字,則輸入為整數,程式將列印“使用者輸入是整數”。如果輸入中至少有一個非數字字元,則輸入不是整數,程式將列印“使用者輸入不是整數”。
user_input = input("Enter an integer: ") if user_input.isdigit(): print("User input is an integer") else: print("User input is not an integer")
輸出
Enter an integer: lorem User input is not an integer
使用正則表示式
示例
在這個例子中,我們使用`re.match()`函式將使用者的輸入與僅匹配由一個或多個數字組成的字串的正則表示式進行匹配。如果使用者的輸入與正則表示式匹配,則輸入為整數,程式將列印“使用者輸入是整數”。如果輸入與正則表示式不匹配,則輸入不是整數,程式將列印“使用者輸入不是整數”。
import re user_input = input("Enter an integer: ") if re.match(r"^[0-9]+$", user_input): print("User input is an integer") else: print("User input is not an integer")
輸出
Enter an integer: 99 User input is an integer
示例
在這個例子中,我們首先使用`input()`函式提示使用者輸入。然後,我們使用`try-except`塊嘗試使用`int()`函式將輸入轉換為整數。如果轉換成功,我們將列印一條訊息,表明輸入是整數。如果轉換引發`ValueError`,我們將捕獲錯誤並列印一條訊息,表明輸入不是整數。
# Prompt user for input user_input = input("Enter an integer: ") # Use try-except block to check if input is an integer try: integer = int(user_input) print("The input is an integer.") except ValueError: print("The input is not an integer.")
輸出
Enter an integer: Ipsum The input is not an integer.
示例
在這個例子中,我們首先使用`input()`函式提示使用者輸入。然後,我們使用`isdigit()`方法檢查輸入是否為整數。如果該方法返回`True`,我們將列印一條訊息,表明輸入是整數。如果該方法返回`False`,我們將列印一條訊息,表明輸入不是整數。
# Prompt user for input user_input = input("Enter an integer: ") # Check if input is an integer using isdigit() method if user_input.isdigit(): print("The input is an integer.") else: print("The input is not an integer.")
輸出
Enter an integer: 2023 The input is an integer.
示例
在這個例子中,我們首先使用`input()`函式提示使用者輸入。然後,我們使用正則表示式檢查輸入是否為整數。正則表示式`^[0-9]+$`匹配任何僅包含數字的字串。如果輸入與正則表示式匹配,我們將列印一條訊息,表明輸入是整數。如果輸入與正則表示式不匹配,我們將列印一條訊息,表明輸入不是整數。
# Prompt user for input user_input = input("Enter an integer: ") # Use regular expression to check if input is an integer import re if re.match("^[0-9]+$", user_input): print("The input is an integer.") else: print("The input is not an integer.")
輸出
Enter an integer: 1221 The input is an integer.