Tin học 10 · SGK
Bài 17. Biến và lệnh gán
BIẾN VÀ LỆNH GÁN
SAU BÀI NÀY EM SẼ:
Trong Đại số, người ta dùng chữ để thay thế cho số cụ thể, ví dụ hằng đẳng thức (a + b)2 = a2 + 2ab + b2 đúng cho mọi giá trị a, b. Trong các ngôn ngữ lập trình, ta cũng dùng các kí tự hoặc nhóm các kí tự được gọi là biến (variable) để thay cho việc phải chỉ ra các giá trị dữ liệu cụ thể.
Theo em, sử dụng biến có những lợi ích gì?
1. BIẾN VÀ LỆNH GÁN
Hoạt động 1: Tìm hiểu khái niệm biến và lệnh gán
Quan sát các lệnh sau; n ở đây được hiểu là gì?
[[CODE]]
>>> n = 5
Sau khi gán n = 5, n sẽ được hiểu là đối tượng.
>>> n + 3
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ể được đổi khi thực hiện chương trình. Biến trong Python được tạo ra khi thực hiện lệnh gán. Cú pháp của lệnh gán như sau:
[[CODE]]
<biến> = <giá trị>
Khi thực hiện lệnh gán, <giá trị> bên phải sẽ được gán cho <biến>. Nếu biến chưa được khai báo thì nó sẽ được khởi tạo khi thực hiện câu lệnh gán. Biến trong Python xác định kiểu dữ liệu tại thời điểm gán giá trị nên không cần khai báo trước kiểu dữ liệu cho biến như một số ngôn ngữ khác. Ví dụ:
[[CODE]]
x = 5 # X được gán 5 và có kiểu số nguyên tại đây.
y = "Tin học 10" # y được gán "Tin học 10" và có kiểu xâu kí tự tại đây.
Sau câu lệnh gán, kiểu dữ liệu của biến được xác định. Cần ghi nhớ điều này để tránh thực hiện các phép toán giữa các biến có kiểu dữ liệu khác nhau. Chẳng hạn, nếu sau các lệnh trên, ta thực hiện lệnh z = x + y thì Python sẽ thông báo lỗi do không thể thực hiện phép cộng giữa dữ liệu kiểu số (biến x) với dữ liệu kiểu xâu kí tự (biến y).
Có thể thực hiện tất cả các phép toán thông thường trên các biến có cùng kiểu dữ liệu. Ví dụ:
[[CODE]]
Có thể gán giá trị. x = y + 1 z = (x + y)**x Phép tính luỹ thừa: (x + y)x
Ví dụ trên cho thấy có thể gán giá trị biểu thức cho biến. Câu lệnh gán có cú pháp tổng quát như sau:
[[CODE]]
<biến> = <biểu thức>
Khi thực hiện lệnh này, Python sẽ tính giá trị của <biểu thức> và gán kết quả cho <biến>. Do đó, mọi biến có trong <biểu thức> đều cần được xác định giá trị trước đó.
Ngoài việc gán giá trị trực tiếp cho biến, ta có thể gán giá trị cho biến qua tính toán giá trị của biểu thức với các biến đã được xác định trước. Ví dụ:
[[CODE]]
>>> x = 5
>>> y = 2.5
Tên biến được đặt sao cho dễ nhớ và có ý nghĩa. ten = "Hoài Nam" print("Xin chào", ten) Xin chào Hoài Nam. Có thể gán nhiều giá trị đồng thời cho nhiều biến. >>> x, y, z = 5, 10, 16 Cú pháp của lệnh gán đồng thời như sau: <var1>, <var2>, ..., <varn> = <gt1>, <gt2>, ..., <gtn>
Chú ý trong lệnh trên, số các biến bên trái bằng số các giá trị bên dấu phải.
[[H1]] Hoạt động 2: Tìm hiểu các phép toán trên dữ liệu kiểu số và kiểu xâu kí tự
Ví dụ 1. Các phép toán trên dữ liệu kiểu số.
[[CODE]]
a, b = 10, 3
Sau lệnh này thì a = 10, b = 3.
>>> (a+b)**2 (a-b)*10
(a//b)*b + a%b
Phép toán 10 + b/2
Tất cả các phép toán đều được thực hiện từ trái sang phải, riêng phép luỹ thừa (**) thì thực hiện từ phải sang trái. Ví dụ, biểu thức 4**2**3 được thực hiện như sau: 4**(2**3) = 4**8 = 65536.
[[CODE]]
>>> 4**2**3
65536
(4**2)**3
4096
Các phép toán cơ bản với dữ liệu kiểu số (số thực và số nguyên) trong Python là phép cộng, trừ, nhân, chia "/", lấy thương nguyên "//", lấy số dư "%" và phép luỹ thừa "**".
Thứ tự thực hiện các phép tính như sau: phép luỹ thừa có ưu tiên cao nhất, sau đó là các phép toán /, //, %, cuối cùng là các phép toán +, -. Ví dụ, lệnh sau:
[[CODE]]
>>> 3/2+4*2**4-5//2**2
tương đương với lệnh:
[[CODE]]
3/2+4*(2**4)-5//(2**2)
Chú ý. Nếu có ngoặc thì biểu thức trong ngoặc được ưu tiên thực hiện trước.
Ví dụ 2. Các phép toán với dữ liệu kiểu xâu kí tự.
[[CODE]]
s1 = "Hà Nội" s2 = "Việt Nam"
>>> s1 + s2
Phép nối: Hà NộiViệt Nam
"123"*5
Phép lặp: 123123123123123
5*0 = 0
Nếu biểu thức có cả số thực và số nguyên thì kết quả sẽ có kiểu số thực.
[[CODE]]
Các phép toán trên dữ liệu kiểu số: +, -, *, /, //, %
Các phép toán trên dữ liệu kiểu xâu: + (nối xâu) và * (lặp)
[[CODE]]
(12 - 10//2)**2 (13 - 45**2) (30//12 - 5/2)
[[CODE]]
"*20 "010" "10"+"0"*5
[[H1]] 3. TỪ KHOÁ
[[H1]] Hoạt động 3: Phân biệt biến và từ khoá
[[CODE]]
Quan sát các lệnh sau, tìm hiểu vì sao Python báo lỗi.
>>> if = 12
SyntaxError: invalid syntax
>>> with = "Độ rộng"
SyntaxError: invalid syntax
Trong Python, các từ tiếng Anh đặc biệt được sử dụng vào mục đích riêng của ngôn ngữ lập trình, được gọi là từ khoá. Khi viết chương trình không được đặt tên biến hay các định danh trùng với từ khoá. Các lệnh trên, do đặt tên biến với các từ khoá if và with nên bị báo lỗi.
Một số từ khoá trong Python phiên bản 3.x.
[[TABLE:15]]
Từ khoá là các từ đặc biệt tham gia vào cấu trúc của ngôn ngữ lập trình. Không được phép đặt tên biến hay các định danh trùng với từ khoá.
Các tên biến sau có hợp lệ không?
[[H1]] THỰC HÀNH
Tạo và làm việc với biến, tính toán với các kiểu dữ liệu cơ bản trong Python.
Nhiệm vụ 1. Thực hiện các phép tính sau trong môi trường lập trình Python, so sánh kết quả với việc tính biểu thức toán học.
Hướng dẫn. Các phép tính trên có thể thực hiện trong môi trường lập trình Python như sau:
[[CODE]]
>>> (1+2+3+4+5+6+7+8+9+10)**3
[[CODE]]
x, y = 2, 3 (x+y)*(x**2+y**2-1) 1/2+1/3+1/4+1/5 a,b,c = 2,3,4 (a+b+c)*(a+b-c)
Nhiệm vụ 2. Gán giá trị cho biến R là bán kính hình tròn rồi viết chương trình tính và in ra kết quả theo mẫu:
[[CODE]]
Chu vi hình tròn là: ...
Diện tích hình tròn là: ...
Hướng dẫn. Soạn thảo chương trình sau trong môi trường lập trình Python:
[[CODE]]
R = 4.5
pi = 3.14
print("Chu vi hình tròn là:", 2*R*pi)
print("Diện tích hình tròn là:", pi*R*R)
Thực hiện chương trình và kiểm tra kết quả, so sánh với chế độ gõ lệnh trực tiếp.
[[H1]] LUYỆN TẬP
[[CODE]]
1. Lệnh sau có lỗi gì?
>>> x = 1
123a = x + 1
SyntaxError: invalid syntax
2. Lệnh sau sẽ in ra kết quả gì?
print("đồ rê mi "*3, "pha son la si đô "*2)
[[H1]] VẬN DỤNG
Ví dụ, nếu ss = 684500 thì kết quả in ra như sau:
[[CODE]]
684500 giây = 7 ngày 22 giờ 8 phút 20 giây.
Gợi ý: Sử dụng đổi sau:
[[CODE]]
1 ngày = 86400 giây; 1 giờ = 3600 giây; 1 phút = 60 giây.
[[CODE]]
>>> x, y = 10,