在Python編程中,我們經常需要處理不同類型的數據,比如用戶輸入的數字、從文件中讀取的文本等。這些數據可能以不同的類型呈現,而有時候我們需要將它們轉換成另一種類型來進行計算或處理。這時候,變量類型轉換就派上用場了。Python提供了簡單的內置函數,可以輕鬆實現int(整數)、str(字符串)和float(浮點數)之間的轉換。
一、常見基本類型回顧¶
我們先回顧三種最基礎的數據類型:
- int(整數):沒有小數點的數字,例如 123、-456。
- str(字符串):由字符組成的序列,用單引號或雙引號包圍,例如 "hello"、'123'。
- float(浮點數):帶小數點的數字,例如 3.14、-0.5。
二、int 類型的轉換方法¶
1. int 轉 str¶
使用 str() 函數,可以將整數轉換爲字符串形式。轉換後,數字會變成字符序列。
示例:
a = 100 # 定義一個整數變量
b = str(a) # 將整數轉爲字符串
print(b) # 輸出:'100'
print(type(b)) # 輸出:<class 'str'> # 驗證類型已變爲字符串
2. int 轉 float¶
使用 float() 函數,可以將整數轉換爲浮點數(整數會自動添加小數點和 .0)。
示例:
a = 5 # 整數變量
b = float(a) # 轉爲浮點數
print(b) # 輸出:5.0
print(type(b)) # 輸出:<class 'float'>
三、str 類型的轉換方法¶
1. str 轉 int¶
使用 int() 函數,可以將字符串轉換爲整數,但字符串必須是純數字(不含小數點或字母),否則會報錯。
正確示例:
str_num = "123" # 純數字字符串
int_num = int(str_num) # 轉換爲整數
print(int_num) # 輸出:123
print(type(int_num)) # 輸出:<class 'int'>
錯誤示例(轉換失敗):
str_num = "12.3" # 含小數點,無法轉int
int_num = int(str_num) # 報錯:ValueError: invalid literal for int() with base 10: '12.3'
str_num = "abc" # 含字母,無法轉int
int_num = int(str_num) # 報錯:ValueError: invalid literal for int() with base 10: 'abc'
2. str 轉 float¶
使用 float() 函數,可以將字符串轉換爲浮點數。字符串可以是純整數(如 "123")或帶小數點的數字(如 "12.3")。
示例:
str_num1 = "456"
float_num1 = float(str_num1)
print(float_num1) # 輸出:456.0
str_num2 = "78.9"
float_num2 = float(str_num2)
print(float_num2) # 輸出:78.9
四、float 類型的轉換方法¶
1. float 轉 int¶
使用 int() 函數,可以將浮點數轉換爲整數,但會直接截斷小數部分(不是四捨五入)。
示例:
a = 3.9 # 浮點數
b = int(a) # 截斷小數部分
print(b) # 輸出:3
a = 5.0 # 整數形式的浮點數
b = int(a)
print(b) # 輸出:5
2. float 轉 str¶
使用 str() 函數,可以將浮點數轉換爲字符串,保留原有的數字形式(包括小數點)。
示例:
a = 6.28 # 浮點數
b = str(a) # 轉換爲字符串
print(b) # 輸出:'6.28'
print(type(b)) # 輸出:<class 'str'>
五、常見問題與注意事項¶
-
轉換失敗的原因:如果字符串中包含非數字字符(如字母、特殊符號),轉換會拋出
ValueError。例如int("12a3")或float("abc")都會報錯。 -
轉換前檢查:不確定字符串是否能安全轉換時,可以先用
try-except捕獲錯誤,避免程序崩潰。
示例(錯誤處理):
str_num = "12.3"
try:
int_num = int(str_num)
print("轉換成功:", int_num)
except ValueError:
print("轉換失敗!字符串無法轉爲整數")
# 輸出:轉換失敗!字符串無法轉爲整數
六、總結¶
Python類型轉換通過 int()、str() 和 float() 三個內置函數實現,核心是明確轉換規則:
- int ↔ str:字符串必須是純數字(int 轉 str 簡單無風險)。
- str → float:字符串可含小數點,更靈活。
- float → int:會截斷小數部分,需注意結果是否符合預期。
多練習不同場景的轉換(如用戶輸入處理、數值計算),就能熟練掌握這些基礎技巧,避免因類型不匹配導致的錯誤。