Mục tiêu bài học
- Biết cách thiết lập biến, phân biệt được biến và từ khóa trong Python.
- Biết sử dụng lệnh gán và thực hiện một số phép toán cơ bản trên kiểu dữ liệu số nguyên, số thực và xâu kí tự.
- Hình thành ý thức trách nhiệm, tính cẩn thận khi lập trình.
Mức độ kiến thức và kĩ năng cần đạt
- Nhận biết:
- Khái niệm biến là tên của vùng nhớ dùng để lưu trữ giá trị.
- Cú pháp lệnh gán đơn, gán đa biến.
- Quy tắc đặt tên biến và danh sách từ khóa trong Python.
- Thông hiểu:
- Cơ chế hoạt động của lệnh gán: tính giá trị biểu thức bên phải trước, sau đó gán cho biến bên trái.
- Thứ tự ưu tiên các phép toán trong biểu thức.
- Cơ chế xác định kiểu dữ liệu của biến dựa trên giá trị được gán (không cần khai báo kiểu trước).
- Vận dụng:
- Viết được các lệnh gán để tính toán giá trị biểu thức số học.
- Thực hiện các thao tác ghép xâu, lặp xâu.
- Giải quyết bài toán đơn giản (như đổi đơn vị đo lường, hoán đổi giá trị).
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
a) Khái niệm
- Biến (Variable): Là tên của một vùng nhớ dùng để lưu trữ giá trị (dữ liệu). Giá trị của biến có thể thay đổi trong quá trình thực hiện chương trình.
- Trong Python, biến được tạo ra ngay khi thực hiện lệnh gán.
b) Cú pháp lệnh gán
<biến> = <giá trị>
# hoặc
<biến> = <biểu thức>- Dấu
=là toán tử gán (không phải dấu bằng trong toán học). - Khi thực hiện lệnh gán, Python tính giá trị của
<biểu thức>bên phải trước, sau đó gán kết quả cho<biến>bên trái.
Các dạng lệnh gán khác
- Gán cùng một giá trị cho nhiều biến:
x = y = 1 - Gán nhiều giá trị cho nhiều biến cùng lúc:
x, y, z = 10, 5, 1
Chú ý: Số lượng biến bên trái phải bằng số lượng giá trị bên phải
c) Quy tắc đặt tên biến
- Chỉ gồm:
chữ cái tiếng Anh(hoa/thường), chữ số từ0-9, và kí tự gạch dưới_. - Không bắt đầu bằng chữ số.
- Phân biệt chữ hoa và chữ thường (ví dụ:
Tenkhácten). - Không được trùng với từ khóa của Python.
d) Đặc điểm của biến trong Python
- Không cần khai báo kiểu dữ liệu trước.
- Kiểu dữ liệu của biến được xác định bởi giá trị mà nó đang lưu trữ tại thời điểm đó.
- Một biến có thể được gán lại với các giá trị thuộc kiểu dữ liệu khác nhau.


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
a) Các phép toán số học cơ bản
| Phép toán | Kí hiệu Python | Ví dụ | Giải thích |
|---|---|---|---|
| Cộng | + | a + b | |
| Trừ | – | a - b | |
| Nhân | * | a * b | |
| Chia | / | 5 / 2 | Kết quả luôn là số thực (2.5) |
| Chia lấy nguyên | // | 5 // 2 | Kết quả là 2 |
| Chia lấy dư | % | 5 % 2 | Kết quả là 1 |
| Lũy thừa | ** | 2 ** 3 | 23=8 |
b) Các phép toán trên xâu kí tự
- Phép ghép xâu (+):
"Hà" + " Nội"→→"Hà Nội" - Phép lặp xâu (*):
"123" * 3→→"123123123"
c) Thứ tự ưu tiên của các phép toán
- Dấu ngoặc
() - Lũy thừa
** - Nhân
*, Chia/,//,% - Cộng
+, Trừ-
3. Từ khóa
Định nghĩa: Từ khóa là các từ đặc biệt được sử dụng vào mục đích riêng của ngôn ngữ lập trình.
Quy tắc: Khi viết chương trình, không được đặt tên biến trùng với từ khóa.

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 = ss
# Một ngày có 86400 giây (24 * 60 * 60)
day = s // 86400
s = s % 86400 # Số giây còn lại sau khi tính ngày
# Một giờ có 3600 giây
hour = s // 3600
s = s % 3600 # Số giây còn lại sau khi tính giờ
# Một phút có 60 giây
min = s // 60
s = s % 60 # Số giây lẻ còn lại
print(ss, "giây =", day, "ngày", hour, "giờ", min, "phút", s, "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.



