Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Chuyển đổi kiểu dữ liệu trong Python
Trong quá trình làm việc với Python, đôi khi bạn cần chuyển một kiểu dữ liệu này sang kiểu dữ liệu khác. Quá trình này gọi là chuyển đổi kiểu dữ liệu.Có hai loại chuyển đổi kiểu trong Python: chuyển đổi kiểu ngầm định và chuyển đổi kiểu rõ ràng. Hãy cùng tìm hiểu chi tiết với các ví dụ minh họa.
Chuyển đổi kiểu ngầm định trong Python
Trong chuyển đổi kiểu ngầm định, Python sẽ tự động chuyển đổi kiểu dữ liệu từ một kiểu này sang kiểu khác trong quá trình chạy chương trình. Để tránh mất dữ liệu, Python sẽ chuyển đổi kiểu dữ liệu thấp hơn sang kiểu dữ liệu cao hơn.
Ví dụ:
number1 = 10 # kiểu số nguyên (int) number2 = 20.5 # kiểu số thực (float) sum_addition = number1 + number2 print(sum_addition) # Kết quả: 30.5 print(type(sum_addition)) # Kết quả: <class 'float'>
Trong ví dụ trên, khi cộng một số nguyên (kiểu dữ liệu thấp) và một số thực (kiểu dữ liệu cao hơn), Python tự động chuyển đổi kết quả về kiểu số thực mà không mất thông tin.
Bài viết này được đăng tại [free tuts .net]
Tuy nhiên, chuyển đổi kiểu ngầm định không phải lúc nào cũng hoạt động. Khi cộng một số nguyên và một chuỗi ký tự (string), Python sẽ báo lỗi:
value1 = 10 # kiểu số nguyên (int) value2 = "10" # kiểu chuỗi (string) sum_addition = value1 + value2 # lỗi: TypeError
Python không tự động chuyển đổi chuỗi thành số nguyên. Để thực hiện phép tính này, bạn cần chuyển đổi kiểu dữ liệu một cách rõ ràng.
Chuyển đổi kiểu rõ ràng trong Python
Trong chuyển đổi kiểu rõ ràng, bạn phải sử dụng các hàm có sẵn như int()
, float()
, str()
, bool()
để chuyển đổi các giá trị.
Quá trình này còn được gọi là ép kiểu. Trong một số trường hợp, có thể xảy ra mất dữ liệu khi chuyển đổi từ kiểu dữ liệu cao hơn sang thấp hơn.
Ví dụ:
value1 = 10 # kiểu số nguyên (int) value2 = "10" # kiểu chuỗi (string) # Chuyển đổi kiểu của value2 từ chuỗi sang số nguyên value2 = int(value2) sum_addition = value1 + value2 print(sum_addition) # Kết quả: 20 print(type(sum_addition)) # Kết quả: <class 'int'>
Ví dụ trên chuyển đổi chuỗi "10"
thành số nguyên, do đó phép cộng hoạt động bình thường và cho ra kết quả là kiểu số nguyên.
Khi chuyển đổi từ kiểu số thực (float) sang số nguyên, sẽ xảy ra mất dữ liệu:
value = 10.5 # kiểu số thực (float) value = int(value) # kiểu số nguyên (int) print(value) # Kết quả: 10