Python BIÊN SOẠN THEO SÁCH GIÁO KHOA TIN HỌC 11 – NXB GIÁO DỤC Python TIN HỌC dainganxanh, MA 2020 BẢN THẢO – THÁNG 9, 2020 Mọi ý kiến trao đổi, đóng góp xin gửi về dainganxanhmsn com Đăng ký nhận bản hoàn chỉnh tại www dainganxanh com CLICK ĐỂ ĐĂNG KÝ SÁCH https forms glesPnHBTdemCESpFgt5 Python là gì ? Python là một ngôn ngữ lập trình bậc cao do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991 Python vừa hướng thủ tục (procedural oriented), vừa hướng đối tượng (object oriented) đồng.
Trang 1BIÊN SO N THEO SÁCH GIÁO KHOA TIN H C 11 ậ NXB GIÁO D C
Python
TIN H C
@dainganxanh, MA - 2020
Trang 2B N TH O ậ THÁNG 9, 2020
M i ý ki n trao đ i, đóng góp xin g i v : dainganxanh@msn.com
ng ký nh n b n hoàn ch nh t i: www.dainganxanh.com
CLICK ĐỂ ĐĂNG KÝ SÁCH
Trang 3Python là gì ?
Python lƠ m t ngôn ng l p trình b c cao do Guido van Rossum t o
ra vƠ l n đ u ra m t vƠo n m 1991 Python v a h ng th t c oriented), v a h ng đ i t ng (object-oriented) đ ng th i có th nhúng vƠo ng d ng nh m t giao ti p k ch b n (scripting interface)
(procedural-Th m nh c a Python lƠ r t g n g i v i ngôn ng t nhiên (ti ng
Anh), c u trúc rõ rƠng, d đ c, d h c Python hi n nay lƠ ngôn ng l p
trình ph bi n r ng rưi chơu Ểu, chơu M và đ c coi nh ngôn ng l p
trình tr ng h c
Python đ c dùng đ phát tri n các ng d ng web, game, khoa h c
d li u (tính toán, phơn tích, khai thác d li u), máy h c vƠ trí tu nhơn
t o, ầ
Tài li u dùng kèm Sách giáo khoa Tin h c 11 c a B Giáo
d c và ào t o (NXB Giáo D c - Tái b n l n th 4, n m 2009) Tài li u đ c trình bày theo c u trúc Sách giáo khoa Tin
h c 11 Các ví d và bài t p, bài th c hành trong sách giáo khoa
đ c trình bày l i b ng ngôn ng l p trình Python m t cách chi
ti t, đ y đ
B sung m t s ki n th c, k thu t l p trình c n thi t đ s
d ng ngôn ng l p trình Python trong d y và h c ch ng trình Tin h c 11
Trang 4M C L C
TR C KHI B T U 1
1 H ng d n đ c 1
2 Cài Python 1
3 CƠi ch ng trình so n th o 1
Ch ng 1 M T S KHÁI NI M 3
§1 KHÁI NI M V L P TRÌNH VÀ NGÔN NG L P TRÌNH 3
L u Ủ 3
§2 CÁC THÀNH PH N C A NGÔN NG L P TRÌNH 3
Các thành ph n c b n 3
M t s khái ni m 3
Ch ng 2 CH NG TRỊNH N GI N 6
§3 C U TRỎC CH NG TRỊNH 6
Câu trúc chung 6
Các thành ph n c a ch ng trình 6
Ví d ch ng tình đ n gi n 7
§4 M T S KI U D LI U CHU N 8
Ki u nguyên 8
Ki u th c 8
Ki u kí t 8
Ki u logic 9
§5 KHAI BÁO BI N 10
§6 PHÉP TOÁN, BI U TH C, CÂU L NH GÁN 11
Phép toán 11
Bi u th c s h c 12
Hàm s h c chu n 12
Bi u th c quan h 12
Bi u th c logic 12
Trang 5Câu l nh gán 12
§7 CÁC TH T C CHU N VẨO RA N GI N 14
Nh p d li u vào t bàn phím 14
a d li u ra màn hình 14
§8 SO N TH O, D CH, TH C HI N VÀ HI U CH N H CH NG TRÌNH 16
BÀI T P VÀ TH C HÀNH 1 18
M c đích, yêu c u 18
N i dung 18
CH NG III C U TRÚC R NHÁNH VÀ L P 20
§9 C U TRÚC R NHANH 20
R nhánh 20
Câu l nh if 20
Câu l nh ghép 21
M t s ví d 22
§10 C U TRÚC L P 24
L p 24
L p v i s l n bi t tr c 24
L p v i s l n ch a bi t tr c 25
BÀI T P VÀ TH C HÀNH 2 27
CH NG IV KI U D LI U CÓ C U TRÚC 31
§11 KI U M NG 31
Ki u m ng m t chi u 31
Ki u m ng hai chi u 37
Các thao tác x lý list 39
BÀI T P VÀ TH C HÀNH 3 42
BÀI T P VÀ TH C HÀNH 4 44
§12 KI U XÂU 46
Khai báo 46
Trang 6Các thao tác x lý xâu 46
M t s ví d 52
BÀI T P VÀ TH C HÀNH 5 54
§13 KI U B N GHI 55
Khai báo 55
Gán giá tr 55
Các thao tác c b n v i ki u dict 57
CÂU H I VÀ BÀI T P 59
CH NG V T P VÀ THAO TÁC V I T P 64
§14 KI U D LI U T P 64
Vai trò c a ki u t p 64
Phân lo i t p và thao tác v i t p 64
§15 THAO TÁC V I T P 65
Khai báo 65
Thao tác v i t p 65
§16 VÍ D LÀM VI C V I T P 68
CH NG VI CH NG TRỊNH CON 70
§17 CH NG TRỊNH CON VẨ PHỂN LO I 70
Khái ni m ch ng trình con 70
Phân lo i và c u trúc c a ch ng trình con 71
§18 VÍ D CÁCH VI T VÀ S D NG CH NG TRỊNH CON 75 BÀI T P VÀ TH C HÀNH 6 77
M c đích, yêu c u 77
N i dung 77
BÀI T P VÀ TH C HÀNH 7 78
M c đích, yêu c u 78
N i dung 78
§19 TH VI N CH NG TRỊNH CON CHU N 82
Trang 7Module 82
Package 83
Th vi n đ h a Turtle 83
BÀI T P VÀ TH C HÀNH 7 85
M c đích, yêu c u 85
N i dung 85
Tìm hi u thêm v Python 89
Trang 81
1 H ng d n đ c
Sách nƠy dùng kèm v i sách giáo khoa Tin h c 11 c a B Giáo d c
vƠ Ơo t o, NhƠ xu t b n Giáo d c Vi t N m tái b n l n th 2, n m 2009
(SGK)
Nh ng ph n ch có tiêu đ , không có n i dung ngh a lƠ s d ng
nguyên v n n i dung đ c trình bƠy trong SGK (các n i dung đ c trình
bày tron g SGK lƠ phù h p v i Python)
N i dung sách nƠy bám sát theo đúng c u trúc c a SGK Vì v y sách
ch trình bƠy vƠ gi i quy t các v n đ đ c SGK nêu - đó ch lƠ m t ph n
r t c b n c a l p trình vƠ ngôn ng l p trình có th l p trình vƠ lƠm
ch ngôn ng l p trình Python thì chúng ta c n nghiên c u thêm các tài
- Gõ: python version → Enter
Lúc nƠy s hi n th phiên b n Python đư cƠi đ t trên máy tính
Trang 9Thonny có giao di n đ n gi n, c u hình nh (trên cùng m t máy kh i
đ ng nhanh h n nhi u so v i Pycham hay Spyder) H tr debug tr c quan giúp ta d theo dõi vƠ hình dung quá trình th c thi ch ng trình S d ng
th vi n / module chu n c a Python phát hƠnh (không b sung hay import
PyCharm k h i đ ng khá n ng n vƠ yêu c u lƠm vi c v i project
Nh v y, tùy nhu c u s d ng vƠ k n ng l p trình mƠ chúng ta l a
ch n trình so n th o cho phù h p i v i ng i m i b t đ u h c Python
thì nên dùng Tho nny đ th c hƠnh
Trang 10Python lƠ m t ngôn ng l p trình phiên d ch (Interpreter Language),
t c lƠ không c n build thƠnh file th c thi mƠ ch y tr c ti p (Pascal và
C+ + ph i build tr c khi th c thi)
Các n i dung còn l i đ c trình bƠy c a ph n nƠy trong SGK Tin h c
Trang 11(a-4
Tên đ i t ng không b t đ u b ng ch s , không dùng các kỦ t đ c
bi t nh !, @, #, ầ vƠ đ c phơn bi t ch hoa, ch th ng
Tên trong Python không gi i h n đ dƠi Tuy nhiên nên đ t tên có tính g i nh v đ i t ng Ví d đ t tên bi n đ l u giá tr đ m s l n th c
thi thì nên đ t lƠ ắdem” hay ắcount”,ầ
Tên dành riêng
Tên dành riêng đ c hi u lƠ T khóa (keyword) trong Python
Keyword đ c đ nh ngh a s n đ s d ng Chúng ta không th dùng keyword đ đ t tên bi n, tên hƠm ho c b t k đ i t ng nƠo trong ch ng
trình
T t c các keyword trong Python đ u đ c vi t th ng, tr 03
keyword: True, False, None
Ví d m t s keyword: True, False, await, else, import, pass, break,
except, in, and, or, ầ
Th c t thì không c n nh keyword vì khi gõ trình so n th o s có
g i Ủ các keyword (ta tránh đ t tên đ i t ng trùng v i các keyword đ c
g i Ủ) vƠ n u đ t trùng tên keyword thì khi ch y ch ng trình s báo l i
Trang 12H ng lƠ m t lo i bi n đ c bi t, giá tr c a h ng lƠ không đ i trong
su t ch ng trình sau l n gán giá tr đ u tiên Tên h ng đ c vi t hoƠn toƠn b ng CH HOA vƠ d u g ch d i (n u c n)
c) Chú thích
Chú thích trong Python có th s d ng các cách sau:
# dùng d u thăng đ u dòng khi chú thích trên m t dòng
''' dùng ba d u nháy đ n ho c nháy kép
Khi chú thích trên nhi u dòng
'''
Trang 13Trong Python không c n có <ph n khai báo>
Ta có th thay ph n khai báo b ng m t ghi chú v ch ng trình
Python không c n thi t ph i khai báo bi n, h ng trong ph n khai báo
mƠ khi nƠo dùng đ n đ i t ng nƠo thì khai báo đ i t ng y
Ví d
Khai báo th vi n (module) các hƠm toán h c:
import math # khai báo dùng th vi n các hàm toán h c
Khai báo bi n:
a = 0
Khai báo h ng:
TONG = 100
Trang 14print xin chào các b n
print M i các b n làm quen v i Python
Xin l u Ủ, code trong Python m c đ nh xơu kỦ t chu n unicode nên có th gõ ti ng Vi t có d u tho i mái
Trang 158
Trong Python có 5 ki u d li u chu n g m: Numers, String, List,
Tuple, Dictionary
Trong bài này chúng ta tìm hi u các ki u d li u đ c trình bƠy trong
Bài 4, SGK Tin h c 11 Nh ng ki u d li u khác s đ c trình bƠy trong
Trang 169
Python không có ki u char nh Pascal M t kỦ t (ki u char c a pascal) đ c coi nh m t xơu có đ dƠi b ng 1 trong Python Ki u xơu (str) hay còn g i lƠ ki u chu i không gi i h n đ dƠi
Tuy nhiên, Python cung c p các hƠm chr() vƠ ord() đ l y v trí c a
kỦ t trong b ng mư Unicode vƠ ng c l i Ch ng trình d i đơy cho
th y mư c a ch Ể trong b ng mư unicode lƠ 194
Ki u logic (bool) trong Python có giá tr True ho c False
NgoƠi ra, Python còn có các ki u d li u: complex; list, tuple, range;
dict; set, frozenset; bytes, bytearray, memoryview Trong ph n sau c a
ch ng trình chúng ta s tìm hi u thêm
Trang 17a = True # bi n a đ i sang ki u logic
Ta có th ép ki u cho bi n b ng cách khai báo ki u cho giá tr gán cho bi n
Trang 18and VƠ: True khi c hai đ u True x and y
or Ho c: True n u m t trong hai lƠ True x or y
Trang 1912
Bi u th c s h c
N i dung trình bƠy c a ph n nƠy trong SGK Tin h c 11 lƠ phù h p
v i Python Riêng phép toán div, mod đ c thay th b ng // vƠ %
HƠm s h c chu n
Các hƠm s h c chu n đ c trình bƠy trong SGK đ c đ nh ngh a
trong module math s d ng các hƠm nƠy trong Python chúng ta th c
HƠm ln(x) đ c thay b ng math.log(x)
Hàm sqr(x) không có mƠ thay b ng x**2
HƠm abs(x) có s n, không thu c module math
Trang 2013
Cơu l nh gán trong Python dùng d u = đ gán giá tr bên ph i cho
bi n bên trái Các l nh gán trong Python c th nh sau:
Trang 2114
Nh p d li u vƠo t bàn phím
Trong Python đ nh p li u t bƠn phím ta dùng hƠm input() Giá tr
nh p vƠo c a hƠm input() m c đ nh lƠ ki u xâu, do đó ta c n chuy n ki u
n u nh mu n l u tr giá tr nh p vƠo không ph i ki u chu i
Ví d :
a = input() # nh p giá tr cho a m c đ nh ki u xâu)
b = input Nh p b: ') # nh p c ki u xâu)
c = int(input('Nhap c: ')) # nh p giá tr cho c có ki u s nguyên
Nh p giá tr vƠ nh n Enter l n l t cho t ng bi n
Trang 22print(f"Cách 3: T ng c a {num1} và {num2} là {s}")
print(f"Cách 3-3: T ng c a {num1} và {num2} là {s:.2f}")
Các l nh print() trong ch ng trình trên đ u đ hi n th k t qu ra mƠn hình nh ng khác nhau v cách hi n th (hưy code vƠ ch y th ch ng trình đ quan sát s khác bi t)
Trang 23code các ch ng trình đ n gi n, không c n debug thì ta có th
dùng Notepad++ (l u Ủ ch n ngôn ng Python t menu Language)
đ c h tr debug ch ng trình vƠ các ch c n ng khác ta dùng các IDE đ so n th o Có nhi u IDE h tr l p trình Python nh PyCham, Spyder, Thonny,ầ Trong ch ng trình tin h c ph thông chúng ta nên dùng Thonny lƠm công c so n th o l p trình Python vì m t s y u t sau:
- Thonny có giao di n đ n gi n, c u hình nh (trên cùng m t máy
kh i đ ng nhanh h n nhi u so v i Pycham hay Spyder)
- H tr debug tr c quan giúp ta d theo dõi vƠ hình dung quá trình
th c thi ch ng trình
Trang 2417
- S d ng th vi n / module chu n c a Python phát hƠnh (không b
sung hay import s n module)
th c thi ch ng trình (Run): Nh n F5
Debug nh n Ctrl+F5
Xem thêm thông tin v thonny t i https://thonny.org/
Trang 26Cơu 6 L u Ủ x3trong Python có th vi t lƠ x**3
Cơu 7 HƠm sqrt() thu c module math Khi s d ng trong ch ng trình ph i th c hi n cơu l nh: from math import sqrt
from math import sqrt
h = float input Nh p đ cao h: "))
g = 9.8
v = sqrt(2*g*h)
print V n t c khi ch m đ t = ", v)
Trang 28
Cơu l nh ghép trong Python hay còn g i lƠ ắkh i l nh” đ c th t
đ u dòng cùng m t kho ng cách nh nhau (không c n dùng ngo c hay t
Trang 31Tr c khi th c hi n ví d nƠy c n cung c p cho h c sinh hƠm range()
đ xác đ nh m t bi n có các ph n t liên t c trong kho ng nƠo đó
Range đ y đ có 3 tham s range(start,end,step) Trong đó star = kh i
đ u dưy, end = k t thúc dưy, step = b c nh y (n u b tr ng thì m c đ nh
b c nh y lƠ 1)
Ví d :
range(100) lƠ dưy t 0 đ n 99
range(2,10) lƠ dưy liên t c t 2 đ n 9
Trang 36while (cha - con < 25):
cha = int input Nh p tu i cha: "))
con = int input Nh p tu i con: "))
Trang 38Python không có c u trúc d li u m ng mƠ s d ng ki u ắDanh sách”
(list) thay cho m ng Không gi ng nh m ng, m i list có th l u tr ph n
t v i b t k ki u d li u nƠo vƠ lƠm đ c m i th mƠ m ng có th lƠm Chúng ta có th l u tr s nguyên, s th p phơn, chu i trong cùng m t list
Vì th , lƠm vi c v i list khá linh ho t
L ist đ c bi u di n b ng dưy các giá tr , đ c phơn tách nhau b ng
d u ph y, n m trong d u [] Các danh sách có th ch a nhi u m c v i ki u khác nhau, nh ng thông th ng lƠ các m c có cùng ki u
Ki u list có d ng:
a = [0 9 1 8 91,844, ]
Các ph n t trong list có ch s b t đ u t 0 Ta có th g i 1 hay nhi u
ph n t trong list b ng các đ i s trong ngo c []
Nơng cao: NgoƠi vi c x lỦ m ng b ng list thu n túy ta có th dùng
module numpy NumPy lƠ th vi n nh m ph c v cho vi c tính toán khoa
h c, h tr nhi u ki u d li u đa chi u giúp cho vi c tính toán, l p trình, lƠm vi c v i các h c s d li u thu n ti n h n
Ki u m ng m t chi u
Trong Python, đ x lỦ d li u m ng 1 chi u ta có th dùng ki u d
li u list List trong Python không c n khai báo s ph n t , không c n khai
Trang 40Trong ch ng trình nƠy ta đư s d ng bi t a có ki u list đ l u nhi t
đ c a các ngƠy (thay cho m ng m t chi u truy n th ng) Bi n a không
c n khai báo mƠ đ c kh i t o b ng cách gán vƠo a m t list r ng []
Có th ghép các list v i nhau b ng toán t c ng +
C n l u Ủ h c sinh phơn bi n ch s ph n t vƠ giá tr ph n t c a
Trang 42Trong Python có th dùng hƠm sort() đ s p x p list mƠ không c n
vi t ch ng trình s p x p nh trên Vi t l i ch ng trình trên nh sau:
Trang 4437
Python cung c p các hƠm in, index đ x lý tìm ki m trong list Ta
có th áp d ng cho ví d trên nh sau:
li u m ng 2 chi u b ng list nh đư x lỦ v i m ng 1 chi u
Ví d : manga lƠ m t m ng 2 chi u có 2 dòng, 3 c t nh sau:
Trang 46my_list = [1, 2, 3] # list s nguyên
my_list = [1, "Hello", 3.4] # list h n h p
my_list = ["mouse", [8, 4, 6], ['a']] # list l ng h n h p
Trang 5346
§12 KI U XỂU
Trong Python, xâu (string , t khóa ki u lƠ str) lƠ m t dưy các kỦ t Unicode Unicode bao g m m i kỦ t trong t t c các ngôn ng vƠ mang
l i tính đ ng nh t trong mư hóa
M t xâu đ c đ t trong c p nháy đ n ho c nháy kép ', " Xâu trên nhi u dòng đ c đ t trong c p ba nháy đ n ho c 3 nháy kép ''', """
M t xâu trong Python đ c đánh ch s cho t ng kỦ t b t đ u t 0
và đ o chi u b ng cách thêm d u ơm - theo chi u ng c l i truy c p vƠo ph n t xâu ta s d ng tham s ch s trong ng c vuông []
Trang 54Ký t khác nhau đ u tiên c a 2 xâu là ch m trong “mùa” c a xâu a
và ch l trong “là” c a xâu b ➔ xâu a > b
c) Xóa ký t trong xâu ?
Python không cho phép xóa kỦ t trong xơu cho dù cho phép truy
xu t kỦ t theo ch s
Ta có th thay th kỦ t ho c xơu con b ng hƠm replace()
Trang 55Trong Python không th chèn kỦ t vƠo xơu thông qua ch s Ta có
th chèn b ng cách thay th v i hƠm replace() nh m c trên
K t qu in ra mƠn hình lƠ: mùa thu HƠ N i
f) dài xâu (len)
bi t đ dƠi (s kỦ t ) c a m t xơu ta dùng hƠm len()
Ví d :
a = "Có ph i em mùa thu Hà N i
Trang 5649
n = len(a)
print(n)
K t qu : 25
g) Tìm ki m trong xâu (find)
Python cung c p hƠng find() đ th c hi n tìm ki m vƠ tr v v trí (ch s ) tìm th y Không tìm th y s tr v -1
Trang 57Các kỦ t lƠ d u nháy trong xơu s khi n ch ng trình hi u lƠ m
ho c đóng m t xơu Ví d d u nháy, d u ngo c kép trong cơu: He said: ắI’m studying Python”
Trang 5851
Ta có th đ t cơu nƠy trong c p ba nháy ho c dùng \ đ vô hi u hóa
d u nháy nh sau:
a = "He said \"I'm studying Python.\""
b = '''He said "I'm studying Python." '''