如何在 Python 中將字串轉換為 Int(安全轉換和基數)
了解如何在 Python 中使用 int() 函數將字串轉換為整數。安全地處理錯誤並將數字從二進位、八進位或十六進位轉換。
概述
將數字的字串表示形式轉換為實際的整數是應用程式開發中的常見任務。這個過程通常稱為強制轉換,在處理原始使用者輸入、讀取設定檔、從命令列介面解析參數或從 Web 抓取資料時至關重要。由於 Python 是一種強類型語言,因此如果不先進行強制轉換,就無法對數字的字串表示形式執行數學運算。
Python 內建的「int()」建構子是這種轉換的主要工具。在最簡單的形式中,將數字字串(如“42”)傳遞給“int()”會傳回其等效的整數。但是,傳遞非數字字串(如“hello”)或表示浮點數的字串(如“3.14”)將引發“ValueError”。要編寫健全的應用程序,標準做法是將轉換操作包裝在“try- except”區塊中,以優雅地處理意外輸入。
除了標準的以 10 為基數的轉換之外,「int()」函數還接受可選的「base」參數。這使您可以輕鬆解析表示不同數字系統中數字的字串,例如二進位(基數 2)、八進位(基數 8)或十六進位(基數 16)。例如,`int("1010", 2)`正確地將二進位字串解析為十進位整數`10`,使其成為低階或專業數學程式設計的通用工具。
程式碼和執行輸出
這個腳本示範如何將字串轉換為整數、處理異常以及轉換不同的基本表示。
# 1. Standard base-10 conversion
num_str = "123"
num = int(num_str)
print(f"Standard conversion: {num} (Type: {type(num).__name__})")
# 2. Handling invalid input gracefully
invalid_str = "abc"
try:
result = int(invalid_str)
except ValueError:
print(f"Could not convert '{invalid_str}' to an integer.")
# 3. Converting from different bases (binary and hex)
binary_str = "1011"
hex_str = "ff"
print("Binary '1011' to decimal:", int(binary_str, 2))
print("Hex 'ff' to decimal:", int(hex_str, 16))Standard conversion: 123 (Type: int)
Could not convert 'abc' to an integer.
Binary '1011' to decimal: 11
Hex 'ff' to decimal: 255逐步實施
- 將數字字串傳遞給內建 int() 函數。
- 將轉換操作包裝在 try... except ValueError 區塊中以處理無效格式。
- 提供第二個參數(例如,base=16)來轉換以其他基數編寫的字串值。
常見問題解答
如何將像“12.34”這樣的浮點字串轉換為整數?
您必須先將其轉換為 float,然後轉換為 int:int(float("12.34"))。呼叫 int("12.34") 直接引發 ValueError。
如何檢查字串是否可以安全地轉換為 int?
您可以使用 .isdigit() 字串方法,但請注意,對於負號或空格,它會傳回 False。 try- except 區塊是最可靠的方法。
相關主題
推薦的 Python 資源
透過相關的互動式教學、備忘單和程式碼比較來擴展您的知識。