Bài trước: Python thực hành (4) - Gỡ lỗi chương trình
-----
5. Kiểu dữ liệu số nguyên
Bạn chắc chắn đã sử dụng máy tính cầm tay (calculator) khi thực hiện các phép tính trong môn toán, như cộng, trừ, nhân, chia. Máy tính (computer) là một thiết bị thông minh hơn, nên nó cũng sẽ thực hiện được các tính toán như vậy.
Chúng ta cùng sử dụng ngôn ngữ Python để ra lệnh cho máy tính làm một số phép toán số học.
5.1 Phép toán số học
Để đơn giản, chúng ta sẽ sử dụng chế độ ra lệnh trực tiếp cho Python.
Trong cửa sổ dòng lệnh, gõ lệnh py để vào chế độ nhập lệnh.
Nhập cách lệnh sau, quan sát kết quả, bạn có thể tính lại bằng tay, để kiểm tra xem máy tính có làm đúng không?
Phép cộng
3 + 5
Ví dụ:
Microsoft Windows [Version
10.0.19045.5608]
(c) Microsoft Corporation. All rights reserved.
Python 3.13.2
(tags/v3.13.2:4f8bb39, Feb 4 2025, 15:23:48) [MSC v.1942 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more
information.
>>> 3 + 5
8
Phép trừ
10 - 4
# kết quả: 6
Phép nhân
3 * 5
# kết quả: 15
Phép chia
18 / 3
# kết quả: 6.0
Vậy là bạn đã biết cách dùng ngôn ngữ Python để ra lệnh cho máy tính thực hiện các phép tính: cộng, trừ, nhân chia. Thật đơn giản phải không.
Nếu tinh ý, bạn sẽ thấy kết quả trong phép tính chia là 6.0, đây là “có vẻ” là một số thập phân; trong khi kết quả của các phép cộng, trừ, nhân là các số nguyên.
Lý do có hiện tượng trên là do trong Python có 2 loại số, là số nguyên (integer) và số thực (decimal, float, double).
5.2 Số nguyên
Số nguyên (integer) là một tập hợp các số không có phần thập phân hoặc phần lẻ, bao gồm:
- Số dương (positive integers): ví dụ 1, 2, 3,
- Số âm (negative integers): ví dụ -1, -2, -3,
- Số 0 (zero): 0.
Trong toán học, số nguyên được ký hiệu là ℤ (từ "Zahl" trong tiếng Đức, nghĩa là "số").
Đây là một tập con của số thực (real numbers), nhưng khác với số thực ở chỗ số nguyên không bao gồm số thập phân (như 2.5) hay số vô tỉ (như √2).
Đặc điểm của số nguyên:
- Không có phần thập phân hoặc phân số.
- Có thể là số âm, số dương, hoặc bằng 0.
- Được dùng để đếm các vật thể rời rạc (discrete) hoặc biểu thị sự thay đổi (tăng/giảm).
Số nguyên xuất hiện trong cuộc sống hàng ngày:
- Đếm số lượng: “Tôi có 5 quả táo" (5 là số nguyên dương).
- Nhiệt độ: "Nhiệt độ là -3°C" (-3 là số nguyên âm).
- Vị trí: "Tôi đang đứng ở Km số 0 của đường quốc lộ 1" (0 là số nguyên).
Kiểu dữ liệu số nguyên trong Python là gì?
Trong Python, số nguyên (integer) là một kiểu dữ liệu cơ bản dùng để biểu diễn các số không có phần thập phân, bao gồm:
- Số nguyên dương (positive integers): 1, 2, 3,
- Số nguyên âm (negative integers): -1, -2, -3,
- Số 0: 0.
Kiểu dữ liệu số nguyên trong Python được ký hiệu là int. Nó thuộc nhóm kiểu dữ liệu số (numeric types), cùng với float (số thực) và complex (số phức).
Đặc điểm nổi bật của kiểu int trong Python
[1] Không giới hạn kích thước
- Khác với nhiều ngôn ngữ lập trình khác (như C, Java) giới hạn kích thước số nguyên (32-bit, 64-bit), trong Python, kiểu int có thể biểu diễn số nguyên với kích thước bất kỳ, miễn là máy tính có đủ bộ nhớ.
- Điều này nhờ vào cách Python quản lý bộ nhớ động (dynamic memory allocation).
[2] Không phân biệt các kiểu: int, long hay short
- Python không phân biệt int, long, hay short như C/C++. Tất cả số nguyên đều là int, và Python tự động điều chỉnh kích thước theo giá trị.
[3] Hỗ trợ các phép toán cơ bản
- Cộng (+), trừ (-), nhân (*), chia lấy nguyên (//), chia lấy dư (%), lũy thừa (**).
Khai báo
- Bạn chỉ cần nhập một số không có phần thập phân; hoặc gán một giá trị số, không có phần thập phân cho biến, Python sẽ tự nhận diện nó là int.
- Không cần khai báo kiểu dữ liệu trước như trong C/Java.
Sử dụng
Ở phần đầu bài học, bạn đã sử dụng các phép toán: cộng, trừ, nhân và chia trên các số nguyên.
Phần này, chúng ta cùng tìm hiểu thêm một số phép tính khác.
- Chia lấy phần nguyên (floor division): là phép chia chỉ lấy phần nguyên của kết quả, mà không lấy phần thập phân. Ví dụ: 5 : 3 = 1.666, chúng ta chỉ lấy phần nguyên là 1; không lấy phần thập phân là .666
5 // 3
# kết quả: 1
- Chia lấy phần dư (modulus): là một phép toán số học để tìm ra số dư sau khi chia một số cho một số khác. Kết quả của phép chia lấy phần dư là số còn lại sau khi thực hiện phép chia nguyên. Ví dụ: 5 : 3 = 1 (dư 2)
5 % 3
# kết quả: 2
- Lũy thừa (exponentiation) là một cách viết gọn khi bạn muốn nhân một số với chính nó nhiều lần. Nó cho biết một số được nhân bao nhiêu lần với chính nó. Ví dụ: 2 ** 3, đọc là 2 lũy thừa 3, là lấy số 2 nhân 3 lần với chính nó. Trong đó 2 gọi là cơ số (số được nhân), 3 gọi là số mũ (số lần nhân). Kết quả: 2 ** 3 = 8.
2 ** 3
# kết quả: 8
5.3 Bài tập
Bài tập 5.1 Anh Tèo được công ty Green thuê để trồng cây thông. Khu đất trồng thông có hình vuông. Anh Tèo đo một cạnh của khu đất có chiều dài 35 m. Giả sử tiền công trả cho việc trồng thông trên mỗi mét vuông đất là 50000VND. Vậy, anh Tèo được công ty Green trả bao nhiêu tiền. Lập trình bằng Python để giải bài tập.
Bài tập 5.2 Một vệ tinh quay quanh Trái Đất và gửi dữ liệu về Trái Đất 3 lần mỗi giờ. Nếu mỗi lần gửi dữ liệu, tín hiệu phải đi qua khoảng cách 12000 km, hãy tính tổng khoảng cách tín hiệu đi được trong 2 giờ. Lập trình bằng Python để giải bài tập.
Câu hỏi 5.3 Đâu là kí hiệu của phép toán lũy thừa trong Python?
A. ^
B. **
C. *
D. //
Câu hỏi 5.4 Đâu là kí của phép chia lấy dư trong Python?
A. %
B. **
C. //
D. /
Câu hỏi 5.5 Đâu là kí của phép chia lấy phần nguyên trong Python?
A. ^
B. %
C. //
D. /
Câu hỏi 5.6 Số nguyên trong Python gồm các số sau. Phát biểu nào không đúng?
A. Số thập phân
(decimal): ví dụ 2.7
B. Số dương (positive integers): ví dụ 1, 2, 3,
C. Số âm (negative integers): ví dụ -1, -2, -3,
D. Số 0 (zero): 0.
-----
Bài sau: