Mục tiêu bài học
- Về kiến thức:
- Biết cách thiết lập và định nghĩa biến.
- Phân biệt được sự khác nhau giữa biến và từ khoá trong Python.
- Biết cách sử dụng lệnh gán.
- Thực hiện được các phép toán cơ bản trên các kiểu dữ liệu số nguyên, số thực và xâu kí tự.
- Về kĩ năng:
- Sử dụng thành thạo lệnh gán.
- Thực hiện được các phép toán đơn giản với các kiểu dữ liệu khác nhau.
- Về phẩm chất:
- Hình thành ý thức trách nhiệm, tính cẩn thận và chuyên cần.
- Phát triển phẩm chất làm việc chăm chỉ để hoàn thành tốt nhiệm vụ học tập.
Hoạt động khởi động
Trong Đại số, ta dùng chữ để thay thế cho số (ví dụ (a+b)² = a² + 2ab + b²). Trong lập trình, ta cũng dùng các kí tự hoặc nhóm kí tự được gọi là biến.
Theo em, sử dụng biến có những lợi ích gì?
Sử dụng biến trong lập trình mang lại nhiều lợi ích quan trọng:
+ Linh hoạt: Biến cho phép chúng ta viết các chương trình tổng quát mà không cần biết trước giá trị cụ thể. Ví dụ, viết chương trình tính chu vi hình tròn với bán kính R mà không cần gán cứng R=5 hay R=10.
+ Dễ đọc, dễ hiểu: Đặt tên biến có ý nghĩa (ví dụ: ban_kinh thay vì x) giúp mã nguồn chương trình trở nên dễ đọc và dễ hiểu hơn.
+ Tái sử dụng: Một biến có thể được sử dụng lại nhiều lần trong chương trình.
+ Dễ bảo trì và cập nhật: Khi cần thay đổi một giá trị, ta chỉ cần thay đổi ở một nơi (nơi gán biến) thay vì phải tìm và sửa ở tất cả mọi nơi giá trị đó xuất hiện.
1. Biến và lệnh gán
Trong Python, biến là tên của một vùng nhớ dùng để lưu trữ dữ liệu. Giá trị của biến có thể được thay đổi trong quá trình thực hiện chương trình.
- Biến được tạo ra khi ta thực hiện lệnh gán lần đầu tiên.
- Python là ngôn ngữ có kiểu dữ liệu động, nghĩa là bạn không cần khai báo trước kiểu dữ liệu cho biến. Kiểu dữ liệu của biến sẽ được tự động xác định tại thời điểm gán giá trị.
Cú pháp lệnh gán:<biến> = <giá trị hoặc biểu thức>
Ví dụ:>>> x = 10
# Biến x được tạo và gán giá trị 10, có kiểu số nguyên.
>>> ten_sach = "Tin học 10"
# Biến ten_sach được tạo và gán giá trị "Tin học 10", có kiểu xâu kí tự.
Quy tắc đặt tên biến:
- Chỉ chứa các chữ cái tiếng Anh (a-z, A-Z), chữ số (0-9) và dấu gạch dưới (_).
- Không được bắt đầu bằng chữ số.
- Phân biệt chữ hoa và chữ thường (TEN và ten là hai biến khác nhau).
Gán nhiều biến: Python cho phép gán nhiều giá trị cho nhiều biến trên cùng một dòng.>>> x, y, z = 10, 5, 1
# x nhận giá trị 10, y nhận giá trị 5, z nhận giá trị 1
Câu hỏi củng cố
Các tên biến nào dưới đây là hợp lệ trong Python? A. _name, B. 12abc, C. My country, D. m123&b, E. xyzABC
Các tên biến hợp lệ là: A. _name và E. xyzABC.
A. _name: Hợp lệ vì bắt đầu bằng dấu gạch dưới và chỉ chứa các ký tự cho phép.
B. 12abc: Không hợp lệ vì bắt đầu bằng chữ số.
C. My country: Không hợp lệ vì chứa dấu cách.
D. m123&b: Không hợp lệ vì chứa ký tự đặc biệt &.
E. xyzABC: Hợp lệ vì chỉ chứa các ký tự chữ cái.
Sau các lệnh dưới đây, các biến x, y nhận giá trị bao nhiêu?
>>> x = 10;
>>> y = x**2 - 1;
>>> x = x/2 + y
>>> x = 10;
Kết quả cuối cùng là: x = 104.0, y = 99.
Giải thích từng bước:>>> x = 10
x được gán giá trị 10.
>>> y = x**2 - 1
Biểu thức được tính: y = 10**2 – 1 = 100 – 1 = 99.
y được gán giá trị 99.
>>> x = x/2 + y
Biểu thức được tính: x = 10/2 + 99 = 5.0 + 99 = 104.0.
x được gán lại giá trị mới là 104.0 (phép chia / luôn cho kết quả là số thực).
a, b nhận giá trị gì sau các lệnh sau?
>>> a,b = 2,3;
>>> a,b = a+b, a-b
>>> a,b = 2,3;
Kết quả cuối cùng là: a = 5, b = -1.
Giải thích:>>> a,b = 2,3
a nhận giá trị 2, b nhận giá trị 3.
>>> a,b = a+b, a-b
Đây là lệnh gán đồng thời. Các biểu thức ở vế phải (a+b và a-b) sẽ được tính toán hết trước khi thực hiện phép gán.
Tại thời điểm tính toán, a vẫn là 2 và b vẫn là 3.
Tính vế phải: a+b = 2+3 = 5 và a-b = 2-3 = -1.
Sau khi tính xong, Python thực hiện gán: a nhận giá trị 5, b nhận giá trị -1.
2. Các phép toán trên một số kiểu dữ liệu cơ bản
Python hỗ trợ nhiều phép toán trên các kiểu dữ liệu khác nhau.
Kiểu dữ liệu | Các phép toán cơ bản |
Số (nguyên, thực) | + (cộng), – (trừ), * (nhân), / (chia), // (chia lấy phần nguyên), % (chia lấy số dư), ** (lũy thừa) |
Xâu kí tự | + (nối xâu), * (lặp lại xâu) |
Thứ tự ưu tiên các phép toán (từ cao đến thấp):
- Biểu thức trong ngoặc ( )
- Lũy thừa **
- Nhân *, chia /, chia lấy nguyên //, chia lấy dư %
- Cộng +, trừ –
3. Từ khóa
Từ khoá (keyword) là những từ đặc biệt được Python dành riêng để sử dụng cho các mục đích cụ thể trong cấu trúc ngôn ngữ.
QUAN TRỌNG: Không được phép đặt tên biến trùng với từ khoá. Nếu vi phạm, Python sẽ báo lỗi cú pháp (SyntaxError).

Lưu ý: Hầu hết các từ khoá đều được viết bằng chữ thường, ngoại trừ True, False và None bắt đầu bằng chữ hoa.
Câu hỏi củng cố
Các tên biến sau có hợp lệ không?
a) _if,
b) global,
c) nonlocal,
d) return,
e) true
a) _if: Hợp lệ. Mặc dù chứa từ “if” nhưng nó bắt đầu bằng dấu gạch dưới _, nên nó được coi là một định danh hợp lệ, không phải là từ khoá if.
b) global: Không hợp lệ. Đây là một từ khoá của Python.
c) nonlocal: Không hợp lệ. Đây là một từ khoá của Python.
d) return: Không hợp lệ. Đây là một từ khoá của Python.
e) true: Hợp lệ. Lưu ý rằng từ khoá trong Python là True (viết hoa chữ T), còn true (viết thường) không phải là từ khoá và có thể được dùng làm tên biến (dù không được khuyến khích để tránh nhầm lẫn).
Luyện tập
’Lệnh
Lệnh 123a = x + 1
bị lỗi cú pháp SyntaxError: invalid syntax.
Nguyên nhân: Lỗi xảy ra do đặt sai tên biến. Theo quy tắc đặt tên biến trong Python, tên biến không được phép bắt đầu bằng một chữ số.
Lệnh sau sẽ in ra kết quả gì?
>>> print("đồ rê mi "*3 + "pha son la si đô "*2)
>>> print("đồ rê mi "*3 + "pha son la si đô "*2)
Lệnh trên sẽ in ra xâu kí tự sau:đồ rê mi đồ rê mi đồ rê mi pha son la si đô pha son la si đô
Giải thích:
“đồ rê mi “*3 thực hiện lặp lại xâu “đồ rê mi ” 3 lần.
“pha son la si đô “*2 thực hiện lặp lại xâu “pha son la si đô ” 2 lần.
Phép toán + nối hai kết quả trên lại với nhau.
Vận dụng
Viết các lệnh để thực hiện việc đổi số giây ss cho trước sang số ngày, giờ, phút, giây.
Ví dụ, nếu ss = 684500 thì kết quả in ra là: 684500 giây = 7 ngày 22 giờ 8 phút 20 giây.
Đây là chương trình Python để giải quyết bài toán:
ss = 684500
s_ban_dau = ss
# 1 ngày = 86400 giây
ngay = ss // 86400
ss = ss % 86400 # Lấy phần giây còn lại
# 1 giờ = 3600 giây
gio = ss // 3600
ss = ss % 3600 # Lấy phần giây còn lại
# 1 phút = 60 giây
phut = ss // 60
giay = ss % 60 # Số giây cuối cùng
print(s_ban_dau, "giây =", ngay, "ngày", gio, "giờ", phut, "phút", giay, "giây")
Kết quả chạy chương trình:684500 giây = 7 ngày 22 giờ 8 phút 20 giây
Hãy cho biết trước và sau khi thực hiện các lệnh sau, giá trị các biến x, y là bao nhiêu? Em có nhận xét gì về kết quả nhận được?
>>> x, y = 10, 7;
>>> x, y = y, x
>>> x, y = 10, 7;
Trước khi thực hiện x, y = y, x:
x có giá trị là 10.
y có giá trị là 7.
Sau khi thực hiện x, y = y, x:
x có giá trị là 7.
y có giá trị là 10.
Nhận xét: Lệnh x, y = y, x là một cách đặc biệt và hiệu quả trong Python để hoán đổi giá trị của hai biến x và y cho nhau mà không cần dùng đến một biến trung gian.