Số Python, Chuyển đổi Kiểu và Toán học

Trong bài viết này, bạn sẽ tìm hiểu về các số khác nhau được sử dụng trong Python, cách chuyển đổi từ kiểu dữ liệu này sang kiểu dữ liệu khác và các phép toán được hỗ trợ trong Python.

Kiểu dữ liệu số trong Python

Python hỗ trợ số nguyên, số dấu phẩy động và số phức. Chúng được định nghĩa là intfloatvà complexcác lớp trong Python.

Số nguyên và dấu phẩy động được phân tách bằng cách có hoặc không có dấu thập phân. Ví dụ: 5 là số nguyên trong khi 5.0 là số dấu phẩy động.

Số phức được viết dưới dạng x + yj,xlà phần thực vàylà phần tưởng tượng.

Chúng ta có thể sử dụng type()hàm để biết một biến hoặc một giá trị thuộc về lớp nào và isinstance()hàm để kiểm tra xem nó có thuộc một lớp cụ thể hay không.

Hãy xem một ví dụ:

Khi chạy chương trình trên, nhận được kết quả sau:

Mặc dù số nguyên có thể có độ dài bất kỳ, nhưng số dấu phẩy động chỉ chính xác đến 15 chữ số thập phân (vị trí thứ 16 là không chính xác).

Những con số chúng ta xử lý hàng ngày thuộc hệ thống số thập phân (cơ số 10). Nhưng các lập trình viên máy tính (nói chung là các lập trình viên nhúng) cần phải làm việc với các hệ thống số nhị phân (cơ số 2), hệ thập lục phân (cơ số 16) và hệ bát phân (cơ số 8).

Trong Python, chúng ta có thể biểu diễn những số này bằng cách đặt một tiền tố trước số đó một cách thích hợp. Bảng sau liệt kê các tiền tố này.

Đây là một số ví dụ

Khi bạn chạy chương trình, kết quả đầu ra sẽ là:

Chuyển đổi loại

Chúng ta có thể chuyển đổi một loại số thành một loại số khác. Đây còn được gọi là sự ép buộc.

Các phép toán như cộng, trừ ép buộc số nguyên để float hoàn toàn (tự động), nếu một trong các toán hạng là float.

Chúng ta có thể thấy ở trên rằng 1 (số nguyên) được ép buộc thành 1.0 (float) để cộng và kết quả cũng là một số dấu phẩy động.

Chúng ta cũng có thể sử dụng các hàm tích hợp sẵn như và int()để chuyển đổi giữa các kiểu một cách rõ ràng. Các hàm này thậm chí có thể chuyển đổi từ chuỗi .float()complex()

Khi chuyển đổi từ số thực sang số nguyên, số sẽ bị cắt bớt (phần thập phân bị loại bỏ).

Hệ thập phân Python

Lớp float được tích hợp sẵn trong Python thực hiện một số phép tính có thể khiến chúng ta ngạc nhiên. Tất cả chúng ta đều biết rằng tổng của 1.1 và 2.2 là 3.3, nhưng Python dường như không đồng ý.

Điều gì đang xảy ra?

Nó chỉ ra rằng số dấu phẩy động được thực hiện trong phần cứng máy tính dưới dạng phân số nhị phân vì máy tính chỉ hiểu được nhị phân (0 và 1). Vì lý do này, hầu hết các phân số thập phân mà chúng ta biết, không thể được lưu trữ chính xác trong máy tính của chúng ta.

Hãy lấy một ví dụ. Chúng ta không thể biểu diễn phân số 1/3 dưới dạng số thập phân. Điều này sẽ cung cấp cho 0,33333333 … dài vô hạn và chúng tôi chỉ có thể ước tính nó.

Nó chỉ ra rằng phân số thập phân 0,1 sẽ dẫn đến một phân số nhị phân dài vô hạn là 0,000110011001100110011 … và máy tính của chúng tôi chỉ lưu trữ một số hữu hạn của nó.

Điều này sẽ chỉ gần đúng 0,1 nhưng không bao giờ bằng nhau. Do đó, đó là hạn chế của phần cứng máy tính của chúng tôi và không phải là lỗi trong Python.

Để khắc phục vấn đề này, chúng ta có thể sử dụng mô-đun thập phân đi kèm với Python. Trong khi các số dấu phẩy động có độ chính xác lên đến 15 chữ số thập phân, thì mô-đun thập phân có độ chính xác do người dùng thiết lập.

Hãy xem sự khác biệt:

Đầu ra

Mô-đun này được sử dụng khi chúng ta muốn thực hiện các phép tính thập phân như chúng ta đã học ở trường.

Nó cũng bảo tồn ý nghĩa. Chúng ta biết 25,50 kg chính xác hơn 25,5 kg vì nó có hai chữ số thập phân đáng kể so với một.

Đầu ra

Lưu ý các số 0 ở cuối trong ví dụ trên.

Chúng ta có thể hỏi, tại sao không thực hiện Decimalmọi lúc, thay vì float? Lý do chính là hiệu quả. Các phép toán dấu chấm động được thực hiện nhanh hơn nhiều so với Decimalcác phép toán.

Khi nào sử dụng Decimal thay vì float?

Thường sử dụng Decimal trong các trường hợp sau.

  • Khi đang thực hiện các ứng dụng tài chính cần biểu diễn số thập phân chính xác.
  • Khi muốn kiểm soát mức độ chính xác cần thiết.
  • Khi muốn triển khai khái niệm về số thập phân có nghĩa.

Phân số Python

Python cung cấp các hoạt động liên quan đến số phân số thông qua fractionsmô-đun của nó.

Một phân số có tử số và mẫu số, cả hai đều là số nguyên. Mô-đun này có hỗ trợ cho số học hữu tỉ.

Chúng ta có thể tạo các đối tượng Fraction theo nhiều cách khác nhau. Chúng ta hãy nhìn vào chúng.

Đầu ra

Trong khi tạo Fractiontừ float, chúng tôi có thể nhận được một số kết quả bất thường. Điều này là do biểu diễn số dấu phẩy động nhị phân không hoàn hảo như đã thảo luận trong phần trước.

May mắn thay, Fractioncho phép chúng tôi khởi tạo với chuỗi. Đây là tùy chọn ưu tiên khi sử dụng số thập phân.

Đầu ra

Kiểu dữ liệu này hỗ trợ tất cả các hoạt động cơ bản. Dưới đây là một vài ví dụ.

Đầu ra

Toán học Python

Python cung cấp các mô-đun giống như mathvà randomđể thực hiện các phép toán khác nhau như lượng giác, logarit, xác suất và thống kê, v.v.

Đầu ra

Dưới đây là danh sách đầy đủ các chức năng và thuộc tính có sẵn trong mô-đun toán học Python

Khi chạy chương trình trên, nhận được kết quả như sau. (Các giá trị có thể khác nhau do hành vi ngẫu nhiên)

Đây là danh sách đầy đủ các chức năng và thuộc tính có sẵn trong mô-đun random Python .

Trả lời

Email của bạn sẽ không được hiển thị công khai.