Trong bài này mình sẽ hướng dẫn các bạn cách chuyển đổi và ép kiểu dữ liệu trong Python, đây là thao tác thường được sử dụng trong thực tế khi làm việc với Python. Trước khi vào bài mới thì bạn hãy quay lại bài cũ để xem các kiểu dữ liệu trong Python đã nhé, sau đó chúng ta sẽ tiếp tục với phần dưới đây.

Để kiểm tra kiểu dữ liệu của một biến thì ta dùng hàm type nhé các bạn, cú pháp như sau:

1
type(variable)

1. Chuyển đổi dữ liệu ngầm

Trong chuyển đổi loại ngầm định, Python tự động chuyển đổi một loại dữ liệu sang loại dữ liệu khác. Quá trình này không cần bất kỳ sự tham gia của lập trình viên.

Chúng ta hãy xem một ví dụ trong đó Python thúc đẩy chuyển đổi kiểu dữ liệu thấp hơn (số nguyên) sang kiểu dữ liệu cao hơn (float) để tránh mất dữ liệu.

1
2
3
4
5
6
7
8
9
10
num_int = 123
num_flo = 1.23
num_new = num_int + num_flo
print("datatype of num_int:",type(num_int))
print("datatype of num_flo:",type(num_flo))
print("Value of num_new:",num_new)
print("datatype of num_new:",type(num_new))

Kết quả của chương trình này như sau:

1
2
3
4
5
datatype of num_int: <class 'int'>
datatype of num_flo: <class 'float'>
Value of num_new: 124.23
datatype of num_new: <class 'float'>

Trong chương trình trên,

  • Mình đã định nghĩa hai biến num_int và num_flo, sau đó tạo một biến num_new để lưu trữ tổng của hai biến đó.
  • Tiếp theo sẽ dùng hàm type để kiểm tra kiểu dữ liệu của cả ba biến, thật bất ngờ vì num_new đã mang kiểu float vì đây là kiểu số lớn hơn kiểu int. Như vậy biến num_new đã được chuyển đổi ngầm.

Bây giờ, hãy thử thêm một chuỗi và một số nguyên và xem Python xử lý thế nào.

Ví dụ: Bổ sung kiểu dữ liệu chuỗi (cao hơn) và kiểu dữ liệu số nguyên (thấp hơn)

1
2
3
4
5
6
7
num_int = 123
num_str = "456"
print("Data type of num_int:",type(num_int))
print("Data type of num_str:",type(num_str))
print(num_int+num_str)

Khi chạy chương trình trên, kết quả sẽ là:

1
2
3
4
5
6
Data type of num_int: <class 'int'>
Data type of num_str: <class 'str'>
Traceback (most recent call last):
  File "python", line 7, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Như vậy mặc định Python không thể tự động chuyển đổi ngầm giữa string và number.

2. Chuyển đổi tường minh

Trong chuyển đổi tường minh, người dùng chuyển đổi loại dữ liệu của một đối tượng thành loại dữ liệu cần thiết. Chúng ta sử dụng các hàm được xác định trước như int()float()str(), v.v để thực hiện chuyển đổi loại rõ ràng.

Chuyển đổi loại này cũng được gọi là typecasting vì người dùng ép (thay đổi) kiểu dữ liệu của các đối tượng. Cú pháp như sau:

1
(required_datatype)(expression)

Ví dụ dưới đây sẽ thể hiện việc ép kiểu từ string sang int tường minh, chương trình sẽ không báo lỗi.

1
2
3
4
5
6
7
8
9
10
11
12
13
num_int = 123
num_str = "456"
print("Data type of num_int:",type(num_int))
print("Data type of num_str before Type Casting:",type(num_str))
num_str = int(num_str)
print("Data type of num_str after Type Casting:",type(num_str))
num_sum = num_int + num_str
print("Sum of num_int and num_str:",num_sum)
print("Data type of the sum:",type(num_sum))

Chạy lên kế quả sẽ như sau:

1
2
3
4
5
6
7
Data type of num_int: <class 'int'>
Data type of num_str before Type Casting: <class 'str'>
Data type of num_str after Type Casting: <class 'int'>
Sum of num_int and num_str: 579
Data type of the sum: <class 'int'>

Trong ví dụ trên thì bạn thấy mình đã sử dụng hàm int() để thực hiện chuyển đổi, ép kiểu một cách rõ ràng.

1
num_str = int(num_str)

3. Lời kết

Như vậy là bạn đã tìm hiểu xong việc chuyển đổi, ép kiểu dữ liệu trong Python, đây là kiến thức căn bản nên bạn cần phải nắm vững để sau này có thể học nâng cao lên nhé. Sau đây là một vài lời tổng kết:

  • Chuyển đổi kiểu dữ liệu là chuyển đổi đối tượng từ một kiểu dữ liệu này sang kiểu dữ liệu khác.
  • Chuyển đổi kiểu ngầm định được trình thông dịch Python thực hiện tự động.
  • Python tự động chọn kiểu dữ liệu cao hơn để tránh mất dữ liệu trong chuyển đổi loại ngầm định.
  • Chuyển đổi loại rõ ràng cũng được gọi là ép kiểu, các loại dữ liệu của đối tượng được chuyển đổi bằng cách sử dụng các hàm của người dùng.
  • Trong ép kiểu việc mất dữ liệu có thể xảy ra khi chúng ta thực thi đối tượng theo kiểu dữ liệu cụ thể.

Theo:https://freetuts.net

 

 

Được quan tâm nhiều nhất

  • iPhone 11 Pro Max Teardown - Tiny Motherboard & BIG Battery!

  • Apple Watch Series 4 Teardown

  • Apple Watch Series 5 Teardown - Always on Display Explained

Bạn thấy bài viết này thế nào?
Thể hiện yêu thương tác giả ở đây nhé!

Thích bài viết

thích

Chia sẻ ngay!

phuongle

Thành viên từ: 10/12/2019

Điểm uy tín: 8,327

SMod: 1,288 hướng dẫn đã chia sẻ

Team

Lập Trình Thành viên của Lập Trình

1 Thành viên

1,288 bài viết

Thêm bình luận

Bình luận bằng tài khoản Facebook

Săn Sale Ngay Trên Shopee - Giảm giá đến 500K Đóng
Amharic Amharic Arabic Arabic Bengali Bengali Chinese (Simplified) Chinese (Simplified) Chinese (Traditional) Chinese (Traditional) English English Filipino Filipino French French German German Hausa Hausa Hindi Hindi Indonesian Indonesian Italian Italian Japanese Japanese Korean Korean Persian Persian Portuguese Portuguese Russian Russian Serbian Serbian Spanish Spanish Thai Thai Turkish Turkish Urdu Urdu Vietnamese Vietnamese