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

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

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ệuCá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):

  1. Biểu thức trong ngoặc ( )
  2. Lũy thừa **
  3. Nhân *, chia /, chia lấy nguyên //, chia lấy dư %
  4. 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).

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ừ 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)

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

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 *