Python 101

Python 101 – #4: Type Conversion

bởi the_ruler

Trong note lần này, mình sẽ tìm hiểu về chuyển đổi các dạng dữ liệu trong Python.

Bài giải #3

Đây là đáp án của bài tập ở note trước:

Và khi bạn chạy rồi nhập kết quả, màn hình sẽ hiển thị ra như thế này:

Thử nghiệm

Để có thể giải thích dễ hiểu nhất trong note này, mình sẽ thử viết 1 chương trình tính tuổi dựa trên số năm sinh người dùng nhập vào:

Rồi giờ khi mình chạy thử chương trình, mình sẽ nhận được 1 cái thông báo sau:

Chỗ này có nghĩa là gì? Bạn có thể hiểu như sau: Tại file type_conversion.py dòng số 3 có một cái Error về Type, Python không hỗ trợ phép tính trừ giữa số và chuỗi.

Điều này có nghĩa là Python đang hiểu cái biến birth_year bạn nhập vào là một dữ liệu kiểu chuỗi chứ không phải là kiểu integer!

Vậy tức là dù tưởng tượng của bạn nó sẽ là 2021 – 2000, nhưng khi Python dịch thì nó trở thành 2021 – ‘2000’.

Kiểm tra và sửa lỗi

Trong thực tế, khi gặp những trường hợp như thế này, việc đầu tiên bạn cần làm đó là kiểm tra. Chúng ta sẽ kiểm tra gì? Như trong case này, mình sẽ cần phải kiểm tra lại xem kiểu dữ liệu của cái biến birth_year đó là kiểu gì bằng cách sử dụng một hàm có sẵn trong python là hàm type().

Mình đã comment lại đoạn user_age và in ra kiểu của biến birth_year để kiểm tra và đây là kết quả mình nhận được:

Như bạn thấy kết quả, thì sau khi mình nhập vào con số, máy trả ra cho mình một đoạn text là <class ‘str’>. Đây là viết tắt cho string, tức là biến birth_year này có kiểu dữ liệu là string.

Sau khi debug ra lỗi, mình sẽ cần phải sửa lỗi này. Trong Python, chúng ta có những function đã được dựng sẵn nhằm thay đổi kiểu dữ liệu bao gồm: kiểu Float (số thập phân), kiểu Integer (kiểu số) và kiểu Complex (kiểu phức tạp). Ví dụ:

Mình sẽ nhận được kết quả:

Đây là ví dụ mình lấy từ W3School, như bạn thấy thì các hàm này sẽ convert kiểu của nó và trả ra một giá trị khác. Giờ thì quay lại với ví dụ của chúng ta, ta cần sử dụng hàm int() để convert birth_year sang kiểu số.

Và đây sẽ là kết quả mà mình nhận được sau khi sửa:

(Visited 26 times, 1 visits today)

Baì viết liên quan

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x