Uploaded by ngoduchoang2001

Ngay G1 Spyder ver 1

advertisement
NGÀY G1
CÁC PHÉP TOÁN CƠ BẢN
Bạn hãy chạy trong màn hình tương tác IPython (Ipython console) và thấy một cửa sổ màn hình
với dấu nhắc:
In [ ]:
Hãy nhập 4 + 2 như sau:
In [ ]: 4 + 2
Out[ ]: 6
Bạn nhận được kết quả là 6.
Python làm việc trên cả các số thập phân. Bạn nhập tiếp :
In [ ]: 5.3 + 6.12
Out[ ]: 11.42
Python cũng làm được phép tính trừ (hiển nhiên!):
In [ ]: 7.8 – 5
Out[ ]: 2.8
Vậy bây giờ bạn có thể dùng Python để làm máy tính bỏ túi rồi (lấy dao trâu mổ kiến!).
Trong ngành máy tính và cũng trong toán học mà bạn đã học hồi cấp II , 4 + 2 hay 5.3 + 6.12
được gọi là biểu thức (expression). Biểu thức bao gồm các giá trị (values) như 4, 2, 5.3,… và các
toán tử (operators) như ký hiệu như +, -, … Hồi học phổ thông ta gọi +, -, … là phép toán. Bây
giờ, ta gọi chúng là toán tử cho nó … sang trọng.
Bảng 1-1 Liệt kê các toán tử cơ bản của Python
Toán tử
**
Ý nghĩa
Lũy thừa
Ví dụ
3 ** 2
Kết quả
9
1
%
Số dư
23 % 8
7
//
Phép chia nguyên hay 20 // 8
2
còn gọi là lấy thương
phần nguyên
/
Phép chia
37 / 8
4.625
*
Phép nhân
3*5
15
-
Phép trừ
8-3
5
+
Phép cộng
2+2
4
Bạn hãy thử tiếp các lệnh nhân (*) và chia (/) và lũy thừa (**) nhé:
In [ ]: 6 * 2
Out [ ]: 12
In [ ]: 5.3 * 4
Out[ ]: 21.2
In [ ]: 18 / 3
Out[ ]: 6.0
In [ ]: 56.5 / 5
Out[ ]: 11.3
In [ ]: 2 ** 4
Out[ ]: 16
Nếu bạn muốn làm phép toán khai căn thì cũng dùng toán tử lũy thừa này. Chẳng hạn, để khai
căn bậc hai thì bạn lũy thừa với số mũ ½ tức là 0.5.
In [ ]: 49 ** 0.5
Out[ ]: 7.0
2
Bạn có thể hơi rối với hai toán tử còn lại trong bảng 1 -1 là toán tử số dư (%) và toán tử chia
nguyên (//). Sau đây là những giải thích về chúng.
Toán tử chia nguyên hay chia lấy thương phần nguyên
Trước hết, chúng ta nhắc lại phần nguyên của một số, ký hiệu là ⌊𝑎⌋. Phần nguyên của số a là số
nguyên lớn nhất chưa vượt quá a. Các bạn lưu ý các điều kiện:

⌊𝑎⌋ là một số nguyên

Lớn nhất nhưng không quá (tức nhỏ hơn hay bằng) a.
Chẳng hạn, ⌊5.1⌋ = 5; ⌊6.03⌋ = 6
Qua hai ví dụ trên, bạn có thể nghĩ một cách đơn giản rằng phần nguyên của 𝑎 chẳng qua là số
nguyên sinh ra từ a bằng cách bỏ phần thập phân. Bởi vậy, bạn có thể suy đoán ⌊−2.5⌋ là −2.
Nhưng thực tế không phải vậy, để tính phần nguyên cho đúng, ta cần bám sát định nghĩa của nó.
Có vô số số nguyên không quá −2.5, đó là … , −6, −5, −4, −3. Vậy số nguyên nào lớn nhất trong
các số này? Rõ ràng đó là −3. Vậy ⌊−2.5⌋ = −3. Tương tự, ⌊−4.6⌋ = −5; ⌊−12.07⌋ = −13.
Hiên nhiên, nếu 𝑎 là một số nguyên thì ⌊𝑎⌋ = 𝑎. Chẳng hạn, ⌊9⌋ = 9; ⌊−11⌋ = −11.
Toán tử chia nguyên (//) là toán tử có kết quả là phần nguyên của phép chia bình thường. Chẳng
hạn, 5/4 = 1.25 , do đó, 5 // 4 = 1 vì ⌊1.25⌋ = 1. Bạn có thể thử trên màn hình tương tác:
In [ ]: 7 / 3
Out[ ]: 2.3333333333333335
In [ ]: 7 // 3
Out[ ]: 2
In [ ]: -7 / 3
Out[ ]: -2.3333333333333335
In [ ]: -7 // 3
Out[ ]: -3
In [ ]: 16 // 2
Out[ ]: 8
Trong trường hợp cuối thì 16 / 2 và 16 // 2 có giá trị bằng nhau.
3
Toán tử số dư
Nói đến số dư, chúng ta đã học về nó từ lúc còn nhỏ. Chẳng hạn, 17 chia cho 3 dư 2, 54 chia cho
9 dư 0,… Bạn thử lại ngay trên màn hình tương tác:
In [ ]: 17 % 3
Out[ ]: 2
In [ ]: 54 % 9
Out[ ]: 0
Vậy khái niệm số dư của Python trùng với khái niệm số dư chúng ta đã biết.
Tuy nhiên, điều này chỉ đúng trong trường hợp cả số bị chia và số chia đều là số dương. Python
còn cho phép áp dụng toán tử số dư cho cả trường hợp số bị chia và/hoặc số chia là số âm. Hãy
thử trên màn hình tương tác:
(1) In [ ]: -8 % 3
Out[ ]: 1
(2) In [ ]: 16 % -5
Out[ ]: -4
(3) In [ ]: -24 % -7
Out[ ]: -3
Những kết quả này khá lạ đối với chúng ta. Thật ra, Python định nghĩa số dư 𝑟 trong phép chia
hai số 𝑎 và 𝑏 (𝑏 ≠ 0)như sau:
𝑎 = 𝑏 × ⌊𝑎/𝑏⌋ + 𝑟
suy ra,
𝑟 = 𝑎 − 𝑏 × ⌊𝑎/𝑏⌋
Như vậy, theo công thức trên, số dư được tính dựa vào toán tử chia nguyên. Để tính -8 % 3 ở (1)
(𝑎 = −8 và 𝑏 = 3) bạn hãy nhập:
In [ ]: -8 // 3
Out[ ]: -3
In [ ]: -8 – 3*(-3)
Out[ ]: 1
4
Tương tự, để kiểm tra kết quả 16 % -5 ở (2) (𝑎 = 16 và 𝑏 = −5) theo định nghĩa số dư, bạn hãy
nhập:
In [ ]: 16 // -5
Out[ ]: -3
In [ ]: 16 – (-5)*(-4)
Out[ ]: -4
Bạn có thể tiếp tục kiểm tra kết quả ở (3).
Có vẻ phức tạp phải không bạn? Còn lạ hơn nữa nếu bạn tiếp tục nhập như sau:
In [ ]: -14 % 3
Out[ ]: 1
In [ ]: 14 % -3
Out[ ]: -1
Đúng là vượt khỏi suy luận thông thường của chúng ta phải không các bạn, vì đối với chúng ta
-14 chia 3 chẳng khác gì với 14 chia cho -3 nhưng số dư của hai bài toán chia này lại khác nhau.
Tuy nhiên, trong thực tế, thường thì chúng ta không phải làm việc toán tử số dư với số bị chia
hoặc số chia âm. Vì thế, tôi khuyên các bạn chỉ cần nhớ hai tính chất sau của toán tử số dư:

Toán tử số dư của Python sẽ cho kết quả hoàn toàn trùng với khái niệm số dư ta đã học
hồi phổ thông trong trường hợp số bị chia và số chia đều là số dương.

Số dư của Python khi tính ra hoặc bằng 0 (chia hết) hoặc luôn cùng dấu với số chia. (-14
% 3 = 1, số dư 1 cùng dấu với số chia 3; 14%-3 = -1, số dư -1 cùng dấu với số chia -3)
ĐỪNG THÊM SỐ 0 VÔ NGHĨA VÀO SỐ NGUYÊN
Trong đời sống hàng ngày, bạn ghi số 5 là 5 hay 05 đều được. Nhưng khi lập trình với Python,
không được ghi 05. Bạn hãy thử trong màn hình tương tác:
In [ ]: 05 + 6
SyntaxError: invalid token
Thế nhưng, với số thập phân thì lại được! Chẳng hạn:
In [ ]: 05.2 + 6
Out[ ]: 11.2
5
Câu hỏi :
Câu hỏi G1-1. Toán tử nào dưới đây là toán tử lũy thừa?
(A) 15 ^ 3
(B) 15 ^^ 3
(C) 15 ** 3
(D) 15 e 3
Câu hỏi G1-2. Ký hiệu nào dưới đây dùng để chỉ toán tử số dư?
(A) /
(B) //
(C) mod
(D) %
Câu hỏi G1-3. Ký hiệu nào dưới đây dùng để chỉ toán tử chia nguyên?
(A) //
(B) *
(C) **
(D) /
Câu hỏi G1-4. Giá trị nào dưới đây là kết quả của biểu thức 22%3 ?
(A) 7
(B) 1
(C) 0
(D) 5
Trả lời: G1-1. (C)
G1-2. (D)
G1-3. (A)
G1-4. (B)
6
Download