Tin học 10 – Bài 17. Biến và lệnh gán

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ụ: Ten khác ten).
  • 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.
Tin học 10 – Bài 17
Tin học 10 – Bài 17

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. _nameE. 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

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

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ánKí hiệu PythonVí dụGiải thích
Cộng+a + b
Trừa - b
Nhân*a * b
Chia/5 / 2Kết quả luôn là số thực (2.5)
Chia lấy nguyên//5 // 2Kết quả là 2
Chia lấy dư%5 % 2Kết quả là 1
Lũy thừa**2 ** 323=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

  1. Dấu ngoặc ()
  2. Lũy thừa ** 
  3. Nhân *, Chia ///%
  4. 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.

Tin học 10 Bài 17 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ừ TrueFalse 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)

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

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.


Câu hỏi trắc nghiệm tin học 10 bài 17 - Biến và lệnh gán

Thời gian làm bài: 30 phút
Đáp án hiển thị sau khi nộp bài
Câu hỏi sẽ được hiển thị ngẫu nhiên
Vui lòng nhập họ và tên để bắt đầu làm bài

NB

Theo quy tắc đặt tên biến trong Python, tên nào sau đây là hợp lệ?

NB

Tên biến nào sau đây là không hợp lệ trong Python?

TH

Trong Python, hai tên biến myvariablemyVariable có được xem là giống nhau không?

TH

Quan sát các lệnh sau:
x = 10
x = x + 5

Giá trị cuối cùng của biến x là bao nhiêu?

TH

Sau khi thực hiện lệnh a, b, c = 5, 10, 15, giá trị của biến b là bao nhiêu?

VD

Mục đích của đoạn lệnh x, y = y, x là gì?

NB

Phép toán nào dùng để lấy phần nguyên trong phép chia hai số nguyên?

NB

Trong Python, kí hiệu của phép toán lũy thừa là gì?

TH

Kết quả của biểu thức 17 % 5 là bao nhiêu?

TH

Kết quả của biểu thức 3 + 5 * 2 là gì?

VD

Cho hai lệnh x = "Python"; y = 3. Kết quả của lệnh print(x * y) là gì?

VD

Biểu thức 2**3**2 sẽ được tính toán theo thứ tự nào và cho ra kết quả bao nhiêu?

NB

Đâu là một từ khóa (keyword) trong Python?

NB

Tên nào sau đây không thể được sử dụng để đặt cho biến?

TH

Lệnh for = 10 gây ra lỗi SyntaxError. Vì sao?

VD

Tên biến nào sau đây hợp lệ nhưng có thể gây nhầm lẫn với một từ khóa?

Một học sinh viết chương trình lưu trữ thông tin cá nhân như sau:
ho_ten = "Nguyễn Văn An"
tuoi = 16
diem_trung_binh = 8.5
tuoi = "Mười sáu"

Dựa vào đoạn mã trên, hãy xác định các phát biểu sau là Đúng hay Sai.

NB Biến ho_ten lưu trữ dữ liệu kiểu xâu kí tự.

TH Sau khi tất cả các lệnh được thực thi, biến tuoi có giá trị là 16.

VD Lệnh print(diem_trung_binh + 1) sẽ cho kết quả là 9.5.

VD Lệnh print(ho_ten + tuoi) sẽ gây ra lỗi chương trình.

Cho đoạn mã Python tính toán một số giá trị hình học:
canh_a = 5
canh_b = 12
canh_huyen = (canh_a**2 + canh_b**2)**0.5
ket_qua = canh_a * 3 + canh_b // 2

Dựa vào đoạn mã trên, hãy xác định các phát biểu sau là Đúng hay Sai.

NB Phép toán ** trong đoạn mã được sử dụng để tính lũy thừa.

TH Giá trị được gán cho biến canh_huyen là 13.0.

TH Biểu thức canh_b // 2 sẽ cho kết quả là 6.0.

VD Giá trị cuối cùng của biến ket_qua là 21.

Một người mới học lập trình viết thử một vài dòng lệnh và gặp một số vấn đề:
# Đoạn 1
_so_luong = 50
# Đoạn 2
tong-diem = 100
# Đoạn 3
pass = "Đạt"

Dựa vào các đoạn mã trên, hãy xác định các phát biểu sau là Đúng hay Sai.

NB Tên biến _so_luong ở Đoạn 1 là một tên hợp lệ.

TH Lệnh ở Đoạn 2 gây ra lỗi vì tên biến không được chứa kí tự gạch ngang -.

TH Lệnh ở Đoạn 3 gây ra lỗi vì pass là một từ khóa của Python.

VD Tên biến Pass (viết hoa chữ P) cũng là một từ khóa và không thể dùng làm tên biến.

Bảng xếp hạng

Chưa có kết quả nào.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *