BÀI 17: BIẾN VÀ LỆNH GÁN

Bài 16: Ngôn ngữ lập trình bậc cao và Python
Slide 1/12
📦💾🔢

BÀI 17: BIẾN VÀ LỆNH GÁN

"Lưu trữ và xử lý dữ liệu trong Python"

Tin học 10 | Lập trình cơ bản
Slide 2/9

🎯 A. YÊU CẦU CẦN ĐẠT

  • Thiết lập biến

    Biết cách thiết lập biến trong Python.

  • Phân biệt biến và từ khóa

    Phân biệt được biến và từ khóa trong ngôn ngữ lập trình Python.

  • Sử dụng lệnh gán

    Biết sử dụng lệnh gán và thực hiện một số phép toán trên kiểu số nguyên, số thực và xâu kí tự.

Slide 3/9

📦 1. BIẾN VÀ LỆNH GÁN

Biến là gì?
Biến là tên (định danh) của một vùng nhớ dùng để lưu trữ giá trị (dữ liệu) và giá trị đó có thể thay đổi khi thực hiện chương trình.
📝
Cú pháp lệnh gán
<biến> = <giá trị>
Giá trị bên phải được gán cho biến bên trái.
🔄
Tự động tạo biến
Nếu biến chưa tồn tại, Python sẽ tự động tạo biến đó khi thực hiện lệnh gán.
🎯
Không cần khai báo kiểu
Python tự động xác định kiểu dữ liệu tại thời điểm gán giá trị.

📝 Ví dụ cơ bản:

x = 10 # Biến x có giá trị 10 (kiểu số nguyên)
y = 3.14 # Biến y có giá trị 3.14 (kiểu số thực)
z = "Hello" # Biến z có giá trị "Hello" (kiểu xâu kí tự)
Slide 4/9

🔢 Các phép toán với biến

Gán giá trị biểu thức: Có thể gán kết quả của biểu thức cho biến và thực hiện các phép toán trên biến.

✨ Ví dụ thực tế:

a = 5
b = 2
c = a + b # c = 7
# Gán nhiều giá trị đồng thời
x, y, z = 1, 2, 3

📋 Quy tắc đặt tên biến:

  • Ký tự cho phép

    Chỉ gồm chữ cái tiếng Anh, số (0-9) và dấu gạch dưới "_".

  • Không bắt đầu bằng số

    Tên biến không được bắt đầu bằng chữ số.

  • Phân biệt chữ hoa/thường

    Python phân biệt chữ hoa và chữ thường (name ≠ Name).

  • Không trùng từ khóa

    Không được đặt tên biến trùng với từ khóa của Python.

Slide 5/10

💪 BÀI TẬP CỦNG CỐ: QUY TẮC ĐẶT TÊN BIẾN

🎯 Hãy xác định tên biến nào hợp lệ, tên nào không hợp lệ và giải thích tại sao:

📝 Bài 1: Cấp độ cơ bản

name
2age
my_score
class
Name
user-name
✅ Hợp lệ: name, my_score, Name
❌ Không hợp lệ:
2age - Bắt đầu bằng số
class - Là từ khóa của Python
user-name - Chứa dấu gạch ngang (không được phép)

🧠 Bài 2: Cấp độ trung bình

_private
student123
if_condition
True
__init__
print
✅ Hợp lệ: _private, student123, if_condition, __init__
❌ Không hợp lệ:
True - Là từ khóa của Python
⚠️ Lưu ý: print không phải từ khóa nhưng là hàm built-in, nên tránh dùng làm tên biến

🚀 Bài 3: Cấp độ nâng cao - Viết code thực tế

Hãy sửa lại đoạn code sau để tuân thủ quy tắc đặt tên biến:

1name = "Nguyễn Văn A" # Lỗi: bắt đầu bằng số
class = "10A1" # Lỗi: từ khóa
student-age = 16 # Lỗi: dấu gạch ngang
for = 85.5 # Lỗi: từ khóa
✅ Code đã sửa:
student_name = "Nguyễn Văn A" # Sửa: thêm tiền tố
student_class = "10A1" # Sửa: thay class bằng student_class
student_age = 16 # Sửa: thay - bằng _
math_score = 85.5 # Sửa: thay for bằng math_score
🎯 Mẹo nhớ quy tắc đặt tên biến:
Chỉ chữ cái, số, gạch dưới "_"
Không bắt đầu bằng số
Phân biệt chữ hoa/thường
Tránh từ khóa Python
"Nhớ CKPT - Chữ Không Phân Tránh" 🎯
Slide 6/12

🧮 2. CÁC PHÉP TOÁN TRÊN KIỂU SỐ

🔢 Bảng các phép toán:

Phép toán Ký hiệu Ví dụ
Cộng + 5 + 3 = 8
Trừ - 5 - 3 = 2
Nhân * 5 * 3 = 15
Chia / 5 / 2 = 2.5
Chia lấy phần nguyên // 5 // 2 = 2
Chia lấy dư % 5 % 2 = 1
Lũy thừa ** 2 ** 3 = 8

⚡ Thứ tự ưu tiên:

🧠 Mẹo nhớ thứ tự ưu tiên (từ cao đến thấp):

1. ( ) - "Ngoặc đơn luôn được ưu tiên trước"
2. ** - "Lũy thừa mạnh nhất, tính từ phải sang trái"
3. *, /, //, % - "Nhân chia cùng cấp, tính từ trái sang phải"
4. +, - - "Cộng trừ yếu nhất, tính từ trái sang phải"

🎯 Câu thần chú nhớ thứ tự:

"Ngoặc Lũy thừa Nhân chia Cộng trừ"
(Ngoặc → Lũy thừa → Nhân/Chia → Cộng/Trừ)
📝 Ví dụ chi tiết: result = 3/2 + 4 * 2**4 - 5//2**2

🔍 Phân tích từng bước:
• Bước 1: Tính lũy thừa trước: 2**4 = 16, 2**2 = 4
• Bước 2: result = 3/2 + 4 * 16 - 5//4
• Bước 3: Tính nhân/chia từ trái sang phải: 3/2 = 1.5, 4*16 = 64, 5//4 = 1
• Bước 4: result = 1.5 + 64 - 1
• Bước 5: Tính cộng/trừ từ trái sang phải: 1.5 + 64 = 65.5, 65.5 - 1 = 64.5
🎯 Kết quả cuối cùng: 64.5
Slide 7/12

💪 BÀI TẬP CỦNG CỐ: PHÉP TOÁN TRÊN KIỂU SỐ

🎯 Hãy tính kết quả các biểu thức sau:

📝 Bài 1: Cấp độ cơ bản - Phép toán đơn giản

7 + 3 * 2
Kết quả = ?
15 / 3 + 2
Kết quả = ?
2 ** 3 + 1
Kết quả = ?
10 % 3
Kết quả = ?
✅ Đáp án:
7 + 3 * 2 = 7 + 6 = 13 (nhân trước, cộng sau)
15 / 3 + 2 = 5.0 + 2 = 7.0 (chia trước, cộng sau)
2 ** 3 + 1 = 8 + 1 = 9 (lũy thừa trước, cộng sau)
10 % 3 = 1 (10 chia 3 dư 1)

🧠 Bài 2: Cấp độ trung bình - Thứ tự ưu tiên phức tạp

2 + 3 * 4 ** 2
Kết quả = ?
(10 + 5) // 3 * 2
Kết quả = ?
20 / 4 + 3 * 2
Kết quả = ?
🔍 Phân tích từng bước:

1. 2 + 3 * 4 ** 2
• Bước 1: 4 ** 2 = 16 (lũy thừa trước)
• Bước 2: 3 * 16 = 48 (nhân trước)
• Bước 3: 2 + 48 = 50

2. (10 + 5) // 3 * 2
• Bước 1: (10 + 5) = 15 (ngoặc trước)
• Bước 2: 15 // 3 = 5 (chia lấy nguyên)
• Bước 3: 5 * 2 = 10

3. 20 / 4 + 3 * 2
• Bước 1: 20 / 4 = 5.0, 3 * 2 = 6 (nhân/chia cùng cấp)
• Bước 2: 5.0 + 6 = 11.0

🚀 Bài 3: Cấp độ nâng cao - Biểu thức phức tạp

result = 3 + 4 * 2 ** 3 - 10 // 3 + 5 % 2
Hãy tính từng bước và tìm giá trị của biến result
🎯 Lời giải chi tiết:

Biểu thức gốc: 3 + 4 * 2 ** 3 - 10 // 3 + 5 % 2

Bước 1 - Lũy thừa:
2 ** 3 = 8
→ 3 + 4 * 8 - 10 // 3 + 5 % 2

Bước 2 - Nhân, chia, chia lấy nguyên, chia lấy dư (từ trái sang phải):
4 * 8 = 32
10 // 3 = 3
5 % 2 = 1
→ 3 + 32 - 3 + 1

Bước 3 - Cộng, trừ (từ trái sang phải):
3 + 32 = 35
35 - 3 = 32
32 + 1 = 33

🎯 Kết quả cuối cùng: result = 33
🎯 Mẹo giải nhanh biểu thức phức tạp:
Bước 1: Tìm và tính tất cả lũy thừa (**)
Bước 2: Tính nhân (*), chia (/), chia nguyên (//), chia dư (%) từ trái sang phải
Bước 3: Tính cộng (+), trừ (-) từ trái sang phải
Bước 4: Luôn chú ý ngoặc đơn () có ưu tiên cao nhất!
"Nhớ: Ngoặc → Lũy thừa → Nhân/Chia → Cộng/Trừ" 🧠
Slide 8/12

🔤 PHÉP TOÁN TRÊN XÂU KÍ TỰ

Xâu kí tự (String): Là dãy các ký tự được đặt trong dấu nháy đơn ('') hoặc nháy kép ("").

🔗 Phép nối chuỗi (+):

s1 = "Hà Nội"
s2 = "Việt Nam"
print(s1 + " " + s2) # Kết quả: "Hà Nội Việt Nam"

🔄 Phép lặp chuỗi (*):

print("123" * 5) # Kết quả: "123123123123123"
print("Hello " * 3) # Kết quả: "Hello Hello Hello "
print("ABC" * 0) # Kết quả: "" (chuỗi rỗng)

💡 Ghi nhớ quan trọng:

  • Phép nối (+)

    Dùng để ghép các chuỗi lại với nhau thành một chuỗi dài hơn.

  • Phép lặp (*)

    Dùng để lặp lại chuỗi một số lần nhất định.

  • Nhân với số ≤ 0

    Khi nhân chuỗi với số ≤ 0, kết quả là chuỗi rỗng "".

  • Kết hợp số thực và nguyên

    Nếu trong biểu thức có cả số thực và số nguyên thì kết quả là số thực.

Slide 9/12

💪 BÀI TẬP CỦNG CỐ: PHÉP TOÁN TRÊN XÂU KÍ TỰ

🎯 Hãy dự đoán kết quả của các phép toán xâu kí tự sau:

📝 Bài 1: Cấp độ cơ bản - Phép nối và lặp đơn giản

"Hello" + " World"
Kết quả = ?
"ABC" * 3
Kết quả = ?
"123" * 0
Kết quả = ?
"Hi " + "Python"
Kết quả = ?
✅ Đáp án:
"Hello" + " World" = "Hello World" (nối 2 chuỗi)
"ABC" * 3 = "ABCABCABC" (lặp chuỗi 3 lần)
"123" * 0 = "" (chuỗi rỗng - lặp 0 lần)
"Hi " + "Python" = "Hi Python" (nối với khoảng trắng)

🧠 Bài 2: Cấp độ trung bình - Kết hợp phép nối và lặp

"Ha" * 3 + "!"
Kết quả = ?
"*" * 5 + " END"
Kết quả = ?
("Go" + "!") * 2
Kết quả = ?
🔍 Phân tích từng bước:

1. "Ha" * 3 + "!"
• Bước 1: "Ha" * 3 = "HaHaHa" (lặp trước)
• Bước 2: "HaHaHa" + "!" = "HaHaHa!" (nối sau)

2. "*" * 5 + " END"
• Bước 1: "*" * 5 = "*****" (lặp trước)
• Bước 2: "*****" + " END" = "***** END"

3. ("Go" + "!") * 2
• Bước 1: ("Go" + "!") = "Go!" (ngoặc trước)
• Bước 2: "Go!" * 2 = "Go!Go!" (lặp sau)

🚀 Bài 3: Cấp độ nâng cao - Tạo pattern và format

header = "=" * 10 + " PYTHON " + "=" * 10
border = "|" + " " * 26 + "|"
footer = "=" * 28
Hãy dự đoán kết quả của từng biến và hình dạng tổng thể khi in ra
🎯 Kết quả từng biến:

header:
"=" * 10 = "=========="
"=" * 10 = "=========="
→ header = "========== PYTHON ==========" (28 ký tự)

border:
" " * 26 = " " (26 khoảng trắng)
→ border = "| |" (28 ký tự)

footer:
→ footer = "============================" (28 ký tự)
🖼️ Hình ảnh khi in ra:
========== PYTHON ==========
|                          |
============================
Tạo thành một khung đẹp mắt cho tiêu đề! 🎨
🎯 Quy tắc ưu tiên trong phép toán xâu:
Ngoặc đơn (): Luôn được tính trước
Phép lặp (*): Có ưu tiên cao hơn phép nối (+)
Phép nối (+): Tính từ trái sang phải
Lưu ý: Chỉ có thể nối chuỗi với chuỗi, lặp chuỗi với số nguyên
"Nhớ: Ngoặc → Lặp (*) → Nối (+)" 🔤
Slide 10/12

🔑 3. TỪ KHÓA (KEYWORDS)

Từ khóa là gì?
Từ khóa (keyword) là các từ đặc biệt dùng để xây dựng cấu trúc của ngôn ngữ lập trình. Không thể đặt tên biến trùng với từ khóa.

📋 Một số từ khóa trong Python 3.x:

False
break
else
if
not
as
from
None
class
except
import
or
assert
global
True
continue
finally
in
pass
del
lambda
and
def
for
is
raise
elif
nonlocal
while
with
yield
try
return
⚠️ Lưu ý quan trọng:
• Không được đặt tên biến trùng với từ khóa
• Ví dụ sai: if = 5 (if là từ khóa)
• Ví dụ đúng: number = 5
Slide 11/12

💻 THỰC HÀNH

🎯 Bài tập 1: Tính tổng các số từ 1 đến 10, sau đó nhân với 3

💡 Giải thích:
range(1, 11) tạo dãy số từ 1 đến 10
sum() tính tổng các số trong dãy: 1+2+3+...+10 = 55
• Nhân với 3: 55 × 3 = 165
• Sử dụng biến sum_10 để lưu kết quả
sum_10 = sum(range(1, 11)) * 3
print(sum_10) # Kết quả: 165

🧮 Bài tập 2: Tính tổng các phân số

💡 Giải thích:
• Tính tổng: 1/2 + 1/3 + 1/4 + 1/5
• 1/2 = 0.5, 1/3 ≈ 0.3333, 1/4 = 0.25, 1/5 = 0.2
• Tổng ≈ 1.2833
• Python tự động xử lý phép chia và cho kết quả số thực
result = 1/2 + 1/3 + 1/4 + 1/5
print(result) # Kết quả xấp xỉ: 1.2833333333333334

✍️ Bài tập thêm:

📦
Bài 3: Thực hành biến
Tạo biến lưu tên, tuổi của bạn.
In ra thông tin bằng lệnh print().
💡 Giải thích:
• Tạo biến name để lưu tên (kiểu string)
• Tạo biến age để lưu tuổi (kiểu số nguyên)
• Sử dụng print() để hiển thị thông tin
• Có thể nối chuỗi với toán tử +
# Tạo biến lưu thông tin cá nhân
name = "Nguyễn Văn A"
age = 16
# In thông tin - Cách 1: In từng dòng
print("Tên:", name)
print("Tuổi:", age)
# In thông tin - Cách 2: Nối chuỗi
print("Xin chào! Tôi là " + name + ", " + str(age) + " tuổi.")
🔤
Bài 4: Phép toán chuỗi
Thử phép nối chuỗi (+) và lặp chuỗi (*).
Ví dụ: "Python " * 3
💡 Giải thích:
• Phép nối (+): Ghép các chuỗi lại với nhau
• Phép lặp (*): Lặp chuỗi một số lần nhất định
• Tạo pattern đẹp mắt với ký tự đặc biệt
• Kết hợp cả hai phép toán để tạo hiệu ứng
# Phép lặp chuỗi cơ bản
print("Python " * 3) # Python Python Python
print("=" * 20) # ====================
# Phép nối chuỗi
greeting = "Xin " + "chào " + "Python!"
print(greeting) # Xin chào Python!
# Kết hợp nối và lặp - Tạo khung đẹp
border = "*" * 30
title = "*" + " " * 8 + "PYTHON" + " " * 8 + "*"
print(border)
print(title)
print(border)
Slide 12/12
📦💾🔢

THÔNG ĐIỆP KẾT BÀI

"Biến là nền tảng của lập trình - nơi lưu trữ và xử lý dữ liệu."

📦💡

"Với biến và lệnh gán, bạn đã có thể tạo ra những chương trình đầu tiên!"

🚀✨

🎯 Những gì đã học hôm nay:

📦
Biến và lệnh gán
🧮
Phép toán số
🔤
Phép toán chuỗi
🔑
Từ khóa Python
Hãy thực hành tạo biến và thử các phép toán! 🎓✨
Lên đầu trang