如何在 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.

更新於: 2023年8月10日

6K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.