在Python 中將輸入讀取為數字
Python 的輸入函數以字串形式傳回數據,這與其他自動將用戶輸入解釋為字串的程式語言不同。數字。對使用者輸入執行數學運算時,這可能會導致錯誤。以下是示範此問題的範例:
play = True while play: x = input("Enter a number: ") # Input is taken as a string y = input("Enter a number: ") print(x + y) # Concatenates the strings instead of adding them print(x - y) # Raises a TypeError due to string subtraction print(x * y) # Multiplies the string representations as integers print(x / y) # Raises a ZeroDivisionError if y is an empty string print(x % y) # Raises a TypeError due to string modulus if input("Play again? ") == "no": # Again, input is taken as a string play = False
解決方案:
要解決此問題,您可以使用 int()將輸入字串明確轉換為整數function:
x = int(input("Enter a number: ")) y = int(input("Enter a number: "))
這確保輸入資料被視為數值,並執行數學運算
可選:靈活的輸入轉換
Python 讓您指定輸入數字的基數。如果您需要讀取非十進制系統中的數字,這可能很有用。 int() 函數的第二個參數表示基數:
x = int(input("Enter a number (base 8): "), 8) # Reads input as an octal number y = int(input("Enter a number (base 16): "), 16) # Reads input as a hexadecimal number
如果輸入資料對於指定基數無效,則 int() 函數將引發 ValueError。
注意:
在Python 2.x中,有兩個輸入函數:raw_input()和input()。 raw_input() 的行為類似於 Python 3.x 中的 input(),以字串形式傳回輸入。為了保持一致性,建議在 Python 2.x 和 Python 3.x 中都使用 input()。
以上是如何正確讀取和使用Python中的數位輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!