Câu 5: Trình bày các lo i ghi chú trong Python... def LuuFile path,data:... from XuLyFile import * arrSo=DocFile "csdl_so.txt" printarrSo def XuatSoAmTrenMoiDong arrSo:... from tkinte
Trang 1Kh i: i H c
N m 2021
H ng d n:
• Bài t p th c hƠnh đ c chia làm nhi u Module
• M i Module đ c thi t k cho th i l ng là 3 ho c 6 ti t th c hành t i l p
v i s h ng d n c a Gi ng viên
• Tùy theo s ti t phân b , m i tu n h c có th th c hi n nhi u Module
• Sinh viên ph i làm t t c các bài t p trong các Module tu n t ng ng
Nh ng sinh viên ch a hòan t t ph n bài t p t i l p có trách nhi m t làm
Trang 2M C L C
MODULE 1 3
GI I THI U V L P TRÌNH PYTHON VÀ CÁC CÔNG C L P TRÌNH 3
MODULE 2 15
CÁC KHÁI NI M C B N 15
MODULE 3 19
CÁC BI U TH C I U KI N VÀ VÒNG L P 19
MODULE 4 27
HÀM TRONG PYTHON 27
MODULE 5 35
X Lụ CHU I 35
MODULE 6 39
X Lụ DANH SÁCH 39
MODULE 7 45
X Lụ T P TIN 45
MODULE 8 56
THI T K GIAO DI N V I TKINTER 56
MODULE 9 67
TH VI N H TR X Lụ MACHINE LEARNING 67
Trang 3MODULE 1
GI I THI U V L P TRÌNH PYTHON VÀ CÁC CÔNG C L P TRÌNH
Câu 1: T i, cƠi đ t và ki m tra phiên b n Python
t i Python ta vào: https://www.python.org/downloads
Ch n version mu n t i (ví d 3.9.1), b m vào Download:
Ch n n i l u tr , nh n Save đ t i
T i xong ta có kho ng 27MB cho phiên b n 3.9.1
Double click đ cƠi đ t, m c đ nh lƠ th m c bên d i, ta chuy n vào C
Trang 4Ti p t c b m Next:
Tick h t r i b m Install:
Ch quá trình cƠi đ t hoàn t t:
Trang 5ư cƠi đ t thành công:
N u có h i b gi i h n s ký t t i đa thì ta b m B gi i h n
ư cƠi đ t thành công:
CƠi đ t hoàn t t, ta b m close
M command line lên, gõ l nh python đ ki m tra k t qu , nh bên d i đơy lƠ đư thành công:
Trang 6Câu 2: S d ng công c chính th ng IDLE đ l p trình Python
Khi cƠi đ t Python, ta có s n công c IDLE đ l p trình:
Vào Start Menu tìm IDLE, trên là phiên b n 3.9
Ta có th gõ l nh tr c ti p vào c a s Shell
NgoƠi ra ta c ng có th t o File đ so n th o b ng cách vào File/ ch n New File:
Trang 7Sau khi nh n New, màn hình so n th o hi n ra nh d i đơy:
hình trên ta th y m c đ nh lƠ “Untitled”, ta th so n th o m t s l nh nh trong hình
r i l u l i v i test “first.py” py lƠ ph n m r ng c a Python:
Ta th y code đư đ c l u:
Trang 8Hình trên các b n th y ch Untitled đ c đ i thành first.py cùng v i n i l u tr c a mã ngu n Python
Sau đó ta vƠo menu Run/ ch n Run Module (ho c nh n phím F5):
Ch ng trình cho ra k t qu :
T ng t đ ch y các file mã ngu n khác ta có th vƠo File/ Open đ ch n file mã ngu n
Trang 9Câu 3: S d ng công c wingide
wingide c ng lƠ m t công c l p trình Python khá m nh m , các b n có th t i t i:
http://wingware.com/downloads/wingide-101
Câu 4: S d ng công c Pycharm
ơy lƠ công c r t n i ti ng, r t quen thu c đ c bi t v i nh ng ai đư l p trình Android Studio
Hi n hãng cho s d ng b n mi n phí PyCharm Community Edition:
https://www.jetbrains.com/pycharm (kéo xu ng g n d i cùng s có màn hình t i)
Trang 10Ta th y có nhi u gi i h n trong b n mi n phí (Community) nh ng không có l p trình Web Còn b n Professional thì có đ y đ và cho s d ng th 30 ngày nhé các b n Ho c
b n có th vào link:
https://www.jetbrains.com/pycharm/download/#section=windows
Chúng ta ch n Download b n Community t i v máy r i ti n hƠnh cƠi đ t, vƠ nên đ a ra mƠn hình Desktop đ ta s d ng (vì đơy lƠ công c s s d ng cho toàn b các bài h c):
Trang 11Ta kh i đ ng ph n m m PyCharm lên s có giao di n đ u tiên nh bên
Các b n th y tính t i th i đi m Tui gi ng bài này thì version m i nh t là 2020.2
Khi kh i đ ng PyCharm, ta s có giao di n nh bên d i, b m Create New Project đ t o
d án m i:
Ch nh c u hình t i Python 39 mƠ ta đư cƠi
Khi b m vƠo “…”
Trang 12Ch n đúng phiên b n Python (python.exe) mà ta mong mu n c u hình r i nh n OK
Ch n đ c Python r i thì b m create
M c đ nh có file main.py, ta có th t o file khác đ coding
Trang 13t o t p tin Python: Ta b m chu t ph i vào Project HelloWorld/ ch n New/ Python File:
Ta t o th t p tin SayHello:
T p tin Sayhello.py đ c hi n th ra nh d i đơy:
Trang 14Vi t l nh xu t ra mƠn hình nh trên
ch y mã t p tin SayHello.py, các b n vào Run/ch n Run
Ho c b m chu t ph i vào SayHello.py
Ch n Run SayHello, K t qu :
Trang 15MODULE 2 CÁC KHÁI NI M C B N
Trang 16print(hour, ":" ,minute, ":" ,second)
Câu 3: Tính đi m trung bình
Yêu c u:
Vi t ch ng trình nh p vƠo đi m ba môn Toán, Lý, Hóa c a m t h c sinh In ra
đi m trung bình c a h c sinh đó v i hai s l th p phân
print( " i m toƠn=" ,toan)
print( " i m lý=" ,ly)
print( " i m hóa=" ,hoa)
dtb=(toan+ly+hoa)/3
print( " i m trung bình=" ,dtb)
Câu 4: Python h tr nh ng ki u d li u c b n nào?
Trang 17Câu 5: Trình bày các lo i ghi chú trong Python
Câu 6: Trình bƠy ý ngh a toán t /, //, %, **, and, or, is
Trang 18Câu 10: Hãy vi t ng n g n l i các l nh d i đơy
Trang 19MODULE 3 CÁC BI U TH C I U KI N VÀ VÒNG L P
Câu 1: Ki m tra n m nhu n
Yêu c u:
Nh p vào m t n m b t k , ki m tra n m đó có ph i n m nhu n hay không Bi t
r ng: N m nhu n lƠ n m chia h t cho 4 nh ng không chia h t cho 100 ho c chia
print("N m ", year, " không nhu n")
Câu 2: m s ngày trong tháng
Yêu c u:
Nh p vào 1 tháng, xu t tháng đó có bao nhiêu ngƠy
1,3,5,7,8,10,12➔31 ngày
4,6,9,11➔có 30 ngày
N u là tháng 2 thì yêu c u nh p thêm n m N m nhu n thì tháng 2 có 29 ngày,
không nhu n có 28 ngày
H ng d n:
Trang 20print( "Ch ng trình đ m s ngơy trong thƠng" )
Trang 22Cho i, j, k là các con s và l nh d i đơy:
Hãy cho bi t k t qu xu t ra màn hình n u tu n t 3 bi n trên có các giá tr sau:
Trang 23Vi t ch ng trình nh p vào m t s , ki m tra xem s này có ph i là s nguyên t
hay không H i ng i dùng có ti p t c s d ng hay thoát ph n m m
Trang 24print(n, "Lơ s nguyên t " )
Trang 25Câu 14: Cho bi t bao nhiêu d u * đ c in ra trên màn hình
Trang 26Câu 17: Vi t l i coding d i đơy b ng cách dùng t khóa break thay th cho bi n done
Trang 27MODULE 4 HÀM TRONG PYTHON
Câu 1: Vi t hƠm đ Tính di n tích tam giác
Yêu c u:
Nh p vào 3 c nh c a tam giác, ki m tra tính h p l c a tam giác, Sau đó tính di n tích theo công th c Herong:
H ng d n:
from math import sqrt
if (a<=0 or b <=0 or c <=0) or (a+b)<=c or (a+c)<=b or b+c<=a:
Máy ra 1 s trong đo n [1 100]
Ng i ch i đoán s , ch đ c phép đoán sai 7 l n M i l n đoán s thông báo s
ng i ch i đoán nh h n hay l n h n s c a mày và hi n th s l n đoán
Game k t thúc khi: oán sai quá 7 l n ho c đoán trúng tr c 7 l n
Sau khi game k t thúc h i ng i ch i có ti p t c hay không?
Trang 28songuoi=int(input("MƠy đoƠn [1 100], m i b n đoƠn:"))
Trang 29print( "BMI c a b n=" ,bmi)
Câu 4: Vi t Hàm tính ROI
Yêu c u:
Trang 30− ROI (Return On Investment), m t thu t ng quan tr ng trong marketing, mƠ đ c
bi t là SEO, t m d ch là t l l i nhu n thu đ c so v i chi phí b n đ u t Có th
hi u ROI m t cách đ n gi n chính là ch s đo l ng t l nh ng gì b n thu v so
v i nh ng gì b n ph i b ra
− Hi u đúng b n ch t c a ROI, b n s đo l ng đ c hi u qu đ ng v n đ u t c a mình cho các chi phí nh qu ng cáo, ch y Adwords, hay chi phí marketing online khác
− Vì ROI d a vào các ch s c th , nên nó c ng lƠ m t th c đo r t c th :
− ROI = (Doanh thu ậ Chi phí)/Chi phí
− Vi t ch ng trình cho phép ng i dùng nh p vào Doanh thu và Chi phí và xu t ra
t l ROI cho ng i dùng, đ ng th i hãy cho bi t nên hay không nên đ u t d án khi bi t ROI (gi s m c t i thi u ROI =0.75 thì m i đ u t )
Trang 34Câu 13: Hàm ki m tra s hoàn thi n, s th nh v ng
Yêu c u:
Vi t hàm tính t ng c s đ áp d ng chung cho 2 bài d i đơy:
a) Ki m tra s nguyên d ng n có ph i là s hoàn thi n (Pefect number) hay không? (S hoàn thi n là s có t ng các c s c a nó (không k nó) thì b ng chính nó Vd: 6 có các c s là 1,2,3 và 6=1+2+3 ➔6 là s hoàn thi n)
b) Ki m tra s nguyên d ng n có ph i là s th nh v ng (Abundant number)hay không? (S thnh v ng là s có t ng các c s c a nó (không k nó) thì l n h n
nó Vd:12 có các c s là 1,2,3,4,6 và 12<1+2+3+4+6 ➔12 là s th nh v ng)
Trang 36M t Chu i đ c g i là t i u khi: Không ch a các kho ng tr ng d th a, các t cách nhau b i m t kho ng tr ng
- Xu t có bao nhiêu s âm
- Xu t có bao nhiêu ch s nguyên t
Trang 37print( "S Ưm =" ,soam)
print( "S Nguyên t =" ,sont)
Câu 4: Các hàm quan tr ng trong x lý chu i c a Python
Yêu c u:
Trình bày m t s hàm quan tr ng trong x lý Chu i c a Python
Câu 5: X lý chu i v i các hƠm c b n
Yêu c u:
Vi t ch ng trình cho phép nh p vào 1 chu i Yêu c u xu t ra:
- Bao nhiêu ch IN HOA
- Bao nhiêu ch in th ng
- Bao nhiêu ch là ch s
- Bao nhiêu ch là ký t đ c bi t
- Bao nhiêu ch là kho ng tr ng
- Bao nhiêu ch là Nguyên Âm
- Bao nhiêu ch là Ph âm
Câu 6: Trích l c s âm trong chu i
Yêu c u:
Trang 38Vi t m t hƠm đ t tên là NegativeNumberInStrings(str) HƠm nƠy có đ i s truy n vào
là m t chu i b t k , Hãy vi t l nh đ xu t ra các s nguyên âm trong chu i
Ví d : N u nh p vào chu i “abc -5 xyz -12 k9l p” thì hƠm ph i xu t ra đ c 2 s nguyên
Input “ TR n duY thAnH ”
Output “Tr n Duy Thanh”
Câu 8: Tách l y tên bài hát
Trang 39- Thêm ph n t vào list
- Nh p k, ki m tra k xu t hi n bao nhiêu l n trong list
- Tính t ng các s nguyên t trong list
Trang 40- Vi t l nh kh i t o ng u nhiên n ph n t cho list
- G i k là m t s nh p t bàn phím, hãy xóa t t c các ph n t có giá tr k t n t i trong list
- Ki m tra list có đ i x ng hay không
Trang 41x=int(input( "M i b n chèn thêm s m i" ))
print( "List khô ng đ i x ng" )
Câu 3: X lý List a chi u
Trang 43Câu 4: Xác đ nh k t qu khi th c thi list
Trang 44Câu 6: Nh p vào 1 list có N s ng u nhiên KHÔNG TRÙNG NHAU
Câu 7: Vi t ch ng trình nh p vào m t dãy các s theo th t t ng, n u nh p sai quy cách thì yêu c u nh p l i In dãy s sau khi đư nh p xong
Câu 8: Vi t ch ng trình nh p vào m t dãy n s th c M[0], M[1], , M[n-1], s p x p dãy s theo th t gi m d n Xu t ra dãy s sau khi s p x p
Trang 45def LuuFile (path,data):
Trang 46for line in file:
line=masp+ ";" +tensp+ ";" +str(dongia)
LuuFile( "database.txt" ,line)
Trang 475,6,8,9,-5 -9,5,4,7,8 6,7,8,3,6,46,7,2,-6,-7 a) Vi t hƠm đ c file, m i dòng kh i t o thành 1 list và xu t ra màn hình
b) Xu t các s âm trên m i dòng ra màn hình
H ng d n:
B c 1: T o d li u m u l u vƠo csdl_so.txt (nh p tùy ý nh ng đúng format)
Ph n m m c ng h tr t t o ra file này luôn:
B c 2: T o file XuLyFile.py
def LuuFile (path,data):
Trang 48from XuLyFile import *
arrSo=DocFile( "csdl_so.txt" )
print(arrSo)
def XuatSoAmTrenMoiDong (arrSo):
Trang 49Cho string Json có c u trúc sau:
'{ "ma":"nv1", "age":50, "ten":"Tr n Duy Thanh"}'
Hãy vi t mã l nh chuy n đ i qua Python Object
print ("Tu i=",dataObject["ten"])
Câu 5: X lý JSON File, Chuy n đ i Python Object qua String Json
Trang 50Hãy vi t mã l nh chuy n đ i qua String json
with open ('datacsv.csv', newline='') as f:
reader = csv.reader(f, delimiter=';', quoting=csv.QUOTE_NONE)
for row in reader:
print (row[0],"\t",row[1])
Trang 51Câu 7: X lý l u Excel File
Trang 52for row in ws.values:
for value in row:
print (value,"\t",end='')
print ("")
Trang 53Câu 9: X lý Text File - Vi t ph n m m Qu n Lý s n ph m
Yêu c u:
Vi t ph n m m Qu n Lý s n ph m
M i danh m c có: Mã , tên; M t danh m c có nhi u s n ph m
M i s n ph m có: Mư, tên, đ n giá; M i m t s n ph m thu c v m t danh m c
Cho phép: l u m i, s a, xóa, tìm ki m, s p x p, l u vƠ đ c Text File
Câu 10: X lý JSON File - Vi t ph n m m Qu n Lý Sinh Viên
Yêu c u:
Vi t ph n m m qu n lý Sinh Viên
M i m t l p có: Mã l p, tên; m t l p có nhi u Sinh viên
M i sinh viên có: mư, tên, n m sinh; M i m t sinh viên thu c v m t l p
Cho phép: l u m i, s a, xóa, tìm ki m, s p x p, l u vƠ đ c JSon File
Câu 11: X lý Excel File - Vi t ph n m m Qu n Lý Nhân Viên
Yêu c u:
Vi t ph n m m qu n lý Nhân viên l u b ng Excel M i nhân viên có Mã, Tên, Tu i
− Ph n m m cho phép l u Nhơn viên vƠo File Excel
− Ph n m m cho phép đ c danh sách Nhân viên trong File Excel
− Ph n m m cho phép s p x p Nhân viên theo Tu i t ng d n
C u trúc c a File Excel nh sau:
Trang 54Câu 12: X lý CSV File - Vi t ph n m m Qu n Lý Nhân Viên
Trang 55Theo c u trúc trên thì m i Nhóm s có: Mã nhóm, tên nhóm
- L c Danh sách Thi t b theo Nhóm thi t b
- Xu t Nhóm thi t b có s l ng thi t b nhi u nh t
Trang 56MODULE 8 THI T K GIAO DI N V I TKINTER
Trang 58H ng d n:
from tkinter import *
from math import sqrt
Trang 60from tkinter import *
root.minsize(height=150,width=200)
Label(root,text="C ng Tr Nhân
Chia",fg="blue",font=("tahoma",16)).grid(row=0,columnspan=3)
Label(root,text="s a:").grid(row=1,column=1)
Entry(root,width=15,textvariable=stringA).grid(row=1,column=2)
Label(root,text="s b:").grid(row=2,column=1)
Entry(root,width=15,textvariable=stringB).grid(row=2,column=2)
Label(root,text="K t qu :").grid(row=3,column=1)
Entry(root,width=15,textvariable=stringKQ).grid(row=3,column=2)
Button(root,text="Thoát",command=root.quit).grid(row=4,column=2)
root.mainloop()
Trang 62T o SachUI.py đ thi t k giao di n và x lý s ki n:
from tkinter import *
from XuLyFile import *
Trang 63Button(frameButton,text="S p
x p",command=sapXepAction).pack(side=LEFT)
Button(frameButton,text="Thoát",command=root.quit).pack(side=LEFT) frameButton.grid(row=5,column=1)
root.mainloop()
Ch y ph n m m lên, ta có giao di n và thao tác x lý nh mong mu n
Trang 64Câu 5: Ph n m m máy tính b túi
Trang 65Câu 8: Thi t k màn hình chuy n n m D ng L ch thành Âm L ch
Yêu c u:
Vi t ph n m m đ chuy n m t n m D ng l ch qua Âm l ch
Câu 9: Thi t k màn hình chuy n đ F thƠnh đ C
Trang 66Vi t ch ng trình tính ch s BMI c a m t ng i khi bi t chi u cao vƠ cơn n ng Bi t r ng:
BMI = Weight / (Height*Height) Cho bi t tình tr ng cơn n ng c a ng i nƠy d a trên tiêu chu n qu c t nh sau:
Trang 67MODULE 9
TH VI N H TR X LÝ MACHINE LEARNING
Python là m t trong nh ng ngôn ng m nh m , h tr các h th ng Machine Learning
Có nhi u th vi n mà Python có th s d ng Ch ng h n nh numpy là m t th vi n ph
bi n giúp x lý các phép toán liên quan đ n các m ng nhi u chi u, h tr các hàm liên quan t i đ i s tuy n tính…, Scikit-learn là m t th vi n ch a đ y đ các thu t toán Machine Learning Tài li u này ch li t kê ra, không ph i tài li u h ng d n chi ti t
Th vi n numpy có th l y đơy: https://numpy.org/
Th vi n Scikit-learn có th l y đơy: https://scikit-learn.org/ (h th ng nƠy có đ y đ
D li u m u, coding m u, đ c bi t tài li u r t chi ti t), là m t th vi n mƠ ng i nghiên
c u Machine Learning nên bi t
Machine Learning th ng gi i quy t các bài toán sau:
Máy d ch (còn g i là Machine Translation), ch ng trình máy d ch s đ c yêu c u
d ch m t đo n v n trong m t ngôn ng này sang m t ngôn ng khác
Trang 68Hoàn thi n d li u (còn g i là Data Completion), th ng m t b d li u có th có nhi u
đ c tr ng nh ng vi c thu th p đ c trung cho t ng đi m d li u đôi lúc không kh thi vì lý
do nƠo đó Ví d nh m t đo n v n b n b thi u, m t b c nh b tr y x c Hoàn thi n d
li u là gi i thu t s d đoán các vùng d li u thi u đó
Anh V H u Ti p biên so n cu n Machine Learning C b n khá hay Các b n có th tham th o tài li u và mã ngu n t i đơy: https://github.com/tiepvupsu/ebookMLCB
D i đơy lƠ m t ví d s d ng Gi i thu t H i Quy Tuy n Tính c a th vi n Scikit-learn
đ d báo cân n ng d a vào chi u cao
Chi u cao (CM) Cân n ng (KG)