[Python 5] Các kiểu dữ liệu số trong Python

Trong Python có hỗ trợ rất nhiều kiểu dữ liệu số. Tuy nhiên, chỉ có một số kiểu dữ liệu hay được sử dụng bao gồm: số nguyên (int / integers), số thực (float / floating-point), số thập phân (decimal) phân số (fraction) và số phức (complex).

I. Số Nguyên (Int / Integers)

Trong Toán học, số nguyên bao gồm các số nguyên dương (1, 2, 3,…), số 0 và số nguyên âm (-1, -2, -3,…). Trong Python, giá trị số nguyên cũng giống như vậy. Để kiểm tra xem biến hoặc giá trị thuộc lớp số (class) nào, ta sẽ dùng hàm type() và để kiểm tra xem chúng có thuộc về một lớp số (class) cụ thể nào không, ta sẽ dùng hàm isinstance(). Để rõ hơn, chúng tôi mời bạn xem ví dụ dưới đây:

Ví dụ 1:
Các câu lệnh:
a = 1
print(type(a))
print(isinstance(a, int))
print(isinstance(a, float))

Kết quả trả ra:
<class ‘int’>
True
False

II. Số Thực (Float)

Trong Toán học, số thực bao gồm các số nguyên (vd: -9), số thập phân (vd: 4/3) và các số vô tỷ (vd: √2 ~ 1.41421356…). Trong Python, kiểu số này được thể hiện bằng kiểu dữ liệu Float. Để rõ hơn, chúng tôi mời các bạn xem ví dụ dưới đây.

Ví dụ 2:
Các câu lệnh:
a = 1.2345
b = 2.0
c = 4/3
print(type(a))
print(type(b))
print(type(c))

Kết quả trả ra:
<class ‘float’>
<class ‘float’>
<class ‘float’>

III. Phân Biệt Số Nguyên Và Số Thực Trong Python

Trong Toán học, hai giá trị 1 và 1.0 là bằng nhau. Trong Python, giá trị 1 được xếp vào lớp số nguyên (class integer) và 1.0 được xếp vào lớp số thực (class float)

Ví dụ 3:
Các câu lệnh:
a = 1
b = 1.0
print(type(a))
print(type(b))

Kết quả trả ra:
<class ‘int’>
<class ‘float’>

Giá trị 1 và 1.0 bằng nhau về mặt toán học. Tuy nhiên trong Python thì giá trị 1 thuộc kiểu dữ liệu số nguyên. Còn giá trị 1.0 thuộc kiểu dữ liệu số thực.

IV. Số Thập Phân (Decimal)

Như đã nói ở phần II, số Thực bao gồm cả số nguyên và số thập phân. Tuy nhiên số Thực trong Python chỉ biểu thị đến 16 số sau dấu phẩy (trong Python là dấu chấm). Do đó, để tăng độ chính xác, trong Python tích hợp thêm số thập phân (Decimal). Mời các bạn xem ví dụ dưới đây ở hiểu rõ hơn.

Ví dụ 4:
Các câu lệnh:

form decimal import Decimal
print(4/3)
print(Decimal(4/3))

Kết quả trả ra:
1.3333333333333333
1.3333333333333332593184650249895639717578887939453125

Sử dụng hàm “form decimal import Decimal” để nhập hàm Decimal vào Python. Khi in ra kết quả của 4/3 ( kiểu float) thì chỉ hiển thị đến 16 số ở phần thập phân. Khi in kết quả của Decimal(4/3) thì kết quả hiển thị chính xác hơn nhiều

V. Phân Số (Fraction)

Trong Toán học, phân số  bao gồm tử số và mẫu số. Trong Python, được nhập vào thông qua module Fraction với cú pháp như sau:

from fractions import Fraction
Fraction (<Tử số>,<Mẫu số>)

Để rõ hơn, chúng tôi mời bạn xem ví dụ dưới đây:

Ví dụ 1:
Các câu lệnh:
from fractions import Fraction
print(Fraction(1,3))
print(Fraction(2,4))

Kết quả trả ra:
1/3
1/2

CÁCH KHÁC (ngắn gọn hơn cho ví dụ trên)

from fractions import Fraction as F
print(F(1,3))
print(F(2,4))

Kết quả trả ra:
1/3
1/2

Câu lệnh “from fractions import Fraction as F” dùng để import module Fraction và sử dụng nó bằng ký tự F ( cho ngắn gọn). Với hàm print(F(2,4)) thì khi phân số có thể rút gọn, Python sẽ tự rút gọn từ 2/4 thành 1/2

VI. Số Phức (Complex)

Nếu bạn chưa biết gì về số phức, bạn có thể bỏ qua phần này. So với các kiểu số khác thì số phức ít được sử dụng nhât.
 Trong Toán học, số phức có cấu trúc:

a + bj

Trong đó:
+ a, b là các số nguyên, a được gọi là phần thực, b được gọi là phần ảo. + j được xem là đơn vị ảo, qui ước j= -1
 Trong Python, để tạo một số phức, ta sử dụng cú pháp:

complex(<Phần thực>,<Phần ảo>)

Để gán giá trị số phức cho 1 biến:

<tên_biến> = <Phần_thực> + <Phần_Ảo>j

 Để xuất ra từng phần của 1 số phức:

<tên_biến>.real #để xuất ra phần thực
<tên_biến>.imag #để xuất ra phần ảo

Để rõ hơn, chúng tôi mời các bạn xem ví dụ dưới đây.

Ví dụ 2:
Các câu lệnh:
x = complex(1,2)
print(x)
y = 3 + 4j
print(y.real)
print(y.imag)

Kết quả trả ra:
(1+2j)

3.0
4.0

Biến x là số phức được khai báo sử dụng hàm complex. Biến y được khai báo trực tiếp theo cấu trúc số phức.

Hàm .real và .imag được dùng để lần lượt tách phần thực và phần ảo trong số phức.

VII. Biểu Thức Toán Học Trong Python

Giống như trong Toán học, Python cung cấp các cách tính toán với các biểu thức toán học cơ bản. Trong bài này, chúng tôi sẽ giới thiệu một số biểu thức toán học thông dụng, được liệt kê theo hình ảnh ở dưới:

Ví dụ 1:
Các câu lệnh:
A = 10
B = 3
print(A/B) , print(A//B) , print(A%B) , print(A**B)

Kết quả trả ra:
3.3333333333333335
3
1
1000

  • Hàm A/B trả về kết quả là số thực 3.333333…
  • Hàm A//B trả về kết quả lầ số nguyên
  • Hàm A%B trả về kết quả số dư của thương trong phép tính chia A/B là 1
  • Hàm A**B trả về kết quả là A lũy thừa B bằng 1000

VIII. Thư Viện Math Trong Python

Python cung cấp thư viện Math bao gồm rất nhiều hàm liên quan đến toán học.
 Khi muốn sử dụng một thư viện nào đó, các bạn sử dụng câu lệnh:

import <tên thư viện>

hoặc

import <tên thư viện> as <một ký tự mà ta lựa chọn (để code được ngắn gọn)>

 Khi muốn truy xuất 1 hàm nào đó trong thư viện , ta sử dụng câu lệnh:

<tên thư viên>.<tên hàm>

hoặc

<ký tự đại diện cho thư viện>.<tên hàm>

Một số hàm thường dùng trong thư viện math và ví dụ mình họa.

Ví dụ 2:
Các câu lệnh:
import math as mt   a = 10/3
b = 5
c = 4

print(mt.trunc(a)) 
print(mt.floor(a))
 print(mt.ceil(a)) 
print(mt.fabs(a)) 
print(mt.sqrt(a)) 
print(mt.gcd(b,c)) 

Kết quả trả ra:
3
3
4
3.3333333333333335
1.8257418583505538
1

Bằng cách import thư viện math và gán nó cho ký tự mt, để mỗi khi sử dụng hàm toán học ta chỉ cần dùng ký tự mt để gọi hàm ra.

IX. Kết Luận

Trong bài học này, các bạn đã tìm hiểu về Toán học trong Python. Các kiểu dữ liệu số cơ bản là: số nguyên (int), số thực (float) và số thập phân (decimal), phân số (Fraction) và số Phức (complex). Để kiểm tra xem một phần tử thuộc kiểu số nào, bạn có thể dùng hàm type() và hàm isinstance(). Trong quá trình học tập lập trình Python, nếu còn chỗ nào chưa rõ, bạn có thể để lại bình luận để được hỗ trợ giải đáp.

Subscribe
Notify of
guest
0 Bình luận
Cũ nhất
Mới nhất Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x