Tải bản đầy đủ (.pdf) (34 trang)

Bài thực hành python

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.08 MB, 34 trang )

Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

1


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

Bài Thực hành 1- Nhập – Xuất trong Python
MỤC TIÊU
 Trình bày được các kiểu dữ liệu cơ bản, cú pháp các câu lệnh nhập/xuất
 Vận dụng được các kiến thức cơ bản về biểu thức, thư viện toán học math trong khi
xây dựng chương trình
 Vận dụng được để viết các chương trình theo yêu cầu.

BÀI TẬP CÓ LỜI GIẢI
I. Cấu trúc rẽ nhánh
Bài 1 Xây dựng chương trình có giao diện như sau:
************************************
*
LẬP TRÌNH CĂN BẢN
*
*
Ngôn ngữ: PYTHON
*
*
Số Tín Chỉ: 3
*
************************************
Cách làm: Sử dụng cú pháp lệnh xuất dữ liệu print ra màn hình theo định dạng
 Chương trình minh họa
print('************************************')


print('*
LẬP TRÌNH CĂN BẢN
*')
print('*
Ngôn ngữ: PYTHON
*')
print('*
Số Tín Chỉ: 3
*')
print('************************************')
 Nhận xét: Các lỗi thường gặp khi soạn thảo code
 Viết sai print
 Thiếu dấu nháy đơn để kết thúc chuỗi hoặc dấu đóng ngoặc
Bài 2 Xây dựng chương trình nhập vào hai số a, b từ bàn phím, sau đó tính tổng và in kết quả ra
màn hình.
 Xác định yêu cầu bài toán
- Dữ liệu nhập vào: hai số a, b
- Dữ liệu xuất ra: Tổng a+b
- Cách làm: Xác định các biến vào/ra/trung gian trong bài toán. Biến vào a, b kiểu
số (số nguyên hoặc thực); Biến ra tong kiểu số và cùng kiểu vơia a/b.
+ Bước 1: Nhập hai số a, b từ bàn phím
+
Bước 2: Sử dụng toán tử + để tính tổng hai số
+
Bước 3: In kết quả ra màn hình
 Chương trình minh họa
a=float(input('Nhập vào số a: '))
2



Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng
b=float(input('Nhập vào số b: '))
print(a+b)
 Nhận xét: Các lỗi thường gặp khi soạn thảo code
 Thiếu chuyển đổi kiểu dữ liệu cho a sang kiểu số nguyên
 Viết sai biểu thức ép kiểu
Bài 3 Xây dựng chương trình nhập vào hai số a, n từ bàn phím, sau đó tính an và in kết quả ra
màn hình.
 Xác định yêu cầu bài toán
- Dữ liệu nhập vào: hai số a, n
- Dữ liệu xuất ra: an
- Cách làm: Xác định các biến vào/ra/trung gian trong bài toán. Biến vào a, n kiểu
số (Giả sử chọn a và n kiểu số nguyên); Biến ra an kiểu float (Có thể khai báo
biến hoặc xuất trực tiếp ra màn hình, trong bài này chọn cách thứ 2)
+ Bước 1: Nhập hai số a, n từ bàn phím.
+ Bước 2: Sử dụng toán tử a**n trong để tính an
+ Bước 3: In kết quả ra màn hình
 Chương trình minh họa
a=float(input('Nhập vào số a: '))
n=float(input('Nhập vào số n: '))
print(a**n)
Kết quả chạy chương trình với giá trị nhập vào là a=2 và n=4

Bài 4 Xây dựng chương trình nhập sử dụng thư viện math lấy giá trị hằng số Pi, nhập giá trị bán
kính và in chu vi diện tích của hình tròn tương ứng ra màn hình.
 Xác định yêu cầu bài toán
- Dữ liệu nhập vào: số r
- Dữ liệu xuất ra: CV=2*Pi*r và DT=Pi*r*r với Pi=math.Pi
- Cách làm:
+ Import thư viện math

+ Xác định các biến vào/ra/trung gian trong bài toán gồm: Pi, CV, DT
+ Bước 1: import thư viện: import math
+ Bước 2: Nhập bán kính r=(float)raw()
+ Bước 3: Sử dụng các hàm hay giá trị hằng cần thiết mà math hỗ trợ như:
math.pi để tính CV, DT và hiển thị kết quả ra màn hình
 Chương trình minh họa
import math
r=float(input('Nhap bán kính r='))
print('Chu vi hình tròn là: ',2*math.pi*r)
3


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng
print('Diện tích hình tròn là: ',math.pi*r*r )
Kết quả chạy chương trình với giá trị nhập vào là r=1

 Nhận xét: Các lỗi thường gặp khi soạn thảo code
 Viết toán tử nhân sai như: 2Pi*r
 Viết sau math.Pi, math.PI do chưa có ý thức đầy đủ về viết hoa thường.

BÀI TẬP TỰ LÀM
Bài 1 Xây dựng chương trình hiển thị ra màn hình menu như sau:
F1: Nhap
F5: Tim kiếm theo ten
F2: Nhap them

F6: Hiển thị học sinh gioi

F3: Doc tep


F7: Thong ke

F4: Hien thi

ESC: Thoat

Bài 2 Xây dựng chương trình hiển thị ra màn hình các dấu sao tạo thành hình như sau:
a
b
*****
*
*
*
* *
*
*
*
*
*****
*******
Bài 3 Xây dựng chương trình giới thiệu về bạn: tên, tuổi, ngày tháng năm sinh, địa chỉ, nghề
nghiệp, sở thích và một số thông tin khác.
Bài 4 Mở rộng bài mẫu 2 cho phép chương trình nhập tài khoản sau “Tai khoan:” và mật khẩu từ
bàn phím sau “Mat khau:“
Bài 5 Xây dựng chương trình sumi giúp người và máy tính nói chuyện với nhau về: tên, tuổi,
giới tính, số điện thoại, email, địa chỉ, nghề nghiệp, sở thích, sở trường và một số thông tin khác.
Bài 6: Viết chương trình nhập vào kích thước chiều dài của một hình chữ nhật, hiển thị ra màn
hình chu vi và diện tích của hình chữ nhật đó.
Bài 7: Viết chương trình nhập vào kích thước chiều dài cạnh của một hình vuông, hiển thị ra
màn hình chu vi và diện tích của hình vuông đó.

Bài 6: Viết chương trình nhập vào kích thước độ dài bán kính của một hình tròn, hiển thị ra màn
hình chu vi và diện tích của hình tròn đó.

4


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

Bài Thực hành 2- Cấu trúc điều khiển
MỤC TIÊU
 Trình bày được cú pháp các câu lệnh nhập/xuất
 Trình bày được cú pháp các câu lệnh rẽ nhánh: if khuyết, if else và if elif
 Mô tả được hoạt động của các cấu trúc rẽ nhánh
 Đưa ra được điểm khác nhau của lệnh rẽ nhánh if, if else và if elif
 Lựa chọn được cấu trúc rẽ nhánh thích hợp và vận dụng linh hoạt trong khi
xây dựng chương trình
 Phân tích được cú pháp của các cấu trúc lặp: while, for
 So sánh được điểm giống và khác nhau giữa các dạng lệnh
 Sử dụng thành thạo các câu lệnh lặp để thể hiện giải thuật
 Vận dụng được để viết các chương trình theo yêu cầu.

BÀI TẬP CÓ LỜI GIẢI
Bài 1 Xây dựng chương trình nhập vào một số từ bàn phím, kiểm tra xem số đó là số đó
có chia hết cho 2 hay không và in kết quả ra màn hình.
 Xác định yêu cầu bài toán:
- Dữ liệu nhập vào: a
- Dữ liệu xuất ra: a chia hết cho 2 hoặc a không chia hết cho 2
- Cách làm: Xác định các biến vào/ra/trung gian trong bài toán gồm biến nhập
vào a kiểu số nguyên
+ Bước 1: Nhập một số nguyên từ bàn phím (giả sử đặt tên là a)

+ Bước 2: Kiểm tra số a có chia hết cho 2 hay không (dùng toán tử %, a
chia hết cho 2 thì a chia 2 dư 0, ngược lại a chia 2 dư 1)
+ Bước 3: Dùng cấu trúc điều khiển if…else để kiểm tra
o Nếu số a%2==0 thì in ra thông báo: đây là số chẵn
o Ngược lại thì in ra thông báo: đây là số lẻ
 Chương trình minh họa
a=int(input('Nhập vào số a: '))
if a%2==0:
print(a, 'là số chẵn')
else:
print(a, 'là số lẻ')
 Nhận xét: Các lỗi thường gặp khi soạn thảo code
5


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng






Thiếu chuyển đổi kiểu dữ liệu cho a sang kiểu số nguyên
Viết sai toán tử kiểm tra bằng == thành =
Thiếu dấu : để bắt đầu khối các lệnh con
Câu lệnh con không viết thụt lùi đầu dòng

Bài 2 Xây dựng chương trình nhập vào một số nguyên dương N sau đó tính tổng N số
nguyên dương đầu tiên.
 Xác định yêu cầu bài toán

- Dữ liệu nhập vào: N nguyên dương
- Dữ liệu xuất ra: S=1+2+3+…..+N
- Cách làm:
o
Bước 1: Nhập số nguyên dương N
o
Bước 2: Áp dụng cấu trúc lặp for để duyệt từ 1N, tại mỗi lần duyệt
cộng giá trị vào viết S
o
Bước 3: In kết quả ra màn hình
 Chương trình minh họa
n=int(input('Nhập vào số nguyên n: '))
s=0
for i in range(1,n+1,1):
s+=i
print(s)
 Nhận xét: Các lỗi thường gặp khi soạn thảo code
 Viết hàm range sai hoặc không cho đúng giá trị yêu cầu, như range(n),
range(1,n,1)
 Viết biểu thức lặp sai
1
2

1
3

Bài 3 Tìm n nhỏ nhất để S>a lớn hơn a, a nhập vào từ bàn phím. Biết S  1    ... 

1
n


 Xác định yêu cầu bài toán
- Dữ liệu nhập vào: Số thực a
- Dữ liệu xuất ra: n thỏa điều kiện.
- Cách làm:
o
Bước 1: Nhập số thực a
o
Bước 2: Khởi gán giá trị cho biến lưu trữ s=0 và n=0.
o
Bước 3: Dùng cấu trúc lặp while để duyệt từ 1N, tại mỗi vòng lặp
tăng n và cộng thêm 1/n vào biến lưu trữ s, kiểm tra nếu s thỏa điều
kiện>a thì thoát khỏi vòng lặp và in kết quả ra màn hình.
6


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

 Chương trình minh họa
a=float(input('Nhập vào số nguyên a: '))
n=0
s=0
while(s<=a):
n+=1
s+=1/n
print('Giá trị n nhỏ nhất để s>',a,' là: n=',n,'Khi đó s=',s)
 Nhận xét: Các lỗi thường gặp khi soạn thảo code
 Thiếu chuyển đổi kiểu dữ liệu cho a sang kiểu số
 Thiếu dấu : để bắt đầu khối các lệnh con
 Hai câu lệnh con n+=1 và s+=1/n không thẳng lề trái

 Chưa phân biệt rõ ràng kiểu dữ liệu số và kiểu dữ liệu chuỗi
Bài 4 Xây dựng chương trình ĐĂNG NHẬP có giao diện như bài 1. Cho phép người
dùng nhập tên tài khoản và mật khẩu tối đa 3 lần. Nếu tài khoản = “CSKTLT” và mật
khẩu=”fit@123” thì hiển thị “DANG NHAP THANH CONG”. Nếu cả 3 lần nhập thông
tin tên tài khoản và mật khẩu chưa đúng thì hiển thị “DANG NHAP THAT BAI”
Gợi ý xác định yêu cầu bài toán
 Dữ liệu nhập vào: tk, mk
 Dữ liệu xuất ra: “DANG NHAP THANH CONG” hoặc “DANG NHAP
THAT BAI”
 Cách làm: Xác định các biến vào/ra/trung gian trong bài toán gồm biến
nhập vào tk, mk kiểu string; biến trung gian dem để đếm số lần người dùng
nhập tk, mk.
Dùng lệnh lặp while với điều kiện lặp là dem<3 tức khi dem>=3 thì thoát,
công việc lặp gồm: Nhập tk, mk; kiểm tra xem đăng nhập xem có thành
công không?; Cuối cùng là kiểm tra xem đã quá số lần nhập sai trong giới
hạn cho phép là 3 hay chưa?
o Bước 1: Sử dụng lệnh lặp với điều kiện lặp là dem<3
o Bước 2: Viết công việc lặp
 Hiển thị “Tai khoan:” và nhập giá trị cho biến tk, sử dụng cú
pháp xuất dữ liệu ra màn hình Write(" Tai khoan: ");
 Hiển thị “Mat khau: " nhập giá trị cho biến mk
 Dùng cấu trúc rẽ nhánh if để kiểm tra nếu (tk== "CSKTLT"
&& mk == "fit@123”) đúng thì xuất dữ liệu ra màn hình
“DANG NHAP THANH CONG”
 Xác định yêu cầu bài toán
7


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng


- Dữ liệu nhập vào: Số thực a
- Dữ liệu xuất ra: n thỏa điều kiện.
- Cách làm:
o
Bước 1: Nhập số thực a
o
Bước 2: Khởi gán giá trị cho biến lưu trữ s=0 và n=0.
o
Bước 3: Dùng cấu trúc lặp while để duyệt từ 1N, tại mỗi vòng lặp
tăng n và cộng thêm 1/n vào biến lưu trữ s, kiểm tra nếu s thỏa điều
kiện>a thì thoát khỏi vòng lặp và in kết quả ra màn hình.
 Chương trình minh họa
dem=0
while(dem<3):
print('Lần đăng nhập thứ: ', dem + 1)
tk = input('Nhap tai khoản: ')
mk = input('Nhap Mật khẩu: ')
if(tk== 'python' and mk == 'fit@123'):
print('DANG NHAP THANH CONG')
break
else: dem+=1
 Nhận xét: Các lỗi thường gặp khi soạn thảo code
 Viết sai tên toán tử quan hệ ==, toán tử and
 Tổ chức các lệnh con trong vòng lặp while
 Quên không tăng giá trị cho biến đếm số lần đăng nhập
 Dùng cấu trúc rẽ nhánh
 Không viết lệnh break
Bài 5 Xây dựng chương trình nhập vào số N, rồi kiểm tra xem N có phải là số nguyên tố
hay không.
 Phân tích bài toán

- Dữ liệu nhập vào: Số nguyên n
- Dữ liệu xuất ra: Có/không
- Cách làm:
- Bước 1: Nhập số nguyên dương N sử dụng cú pháp vào ra
- Bước 2: Số nguyên tố là số chỉ có hai ước số là 1 và chính nó. Như vậy, nếu trong
khoảng từ 2 đến √N không tồn tại một ước số nào của N (số ước=0), thì N là số
nguyên tố.
- Bước 3: Giả sử dùng biến chạy i, duyệt i từ (2) đến √N (có thể chọn cận trên là N/2
hoặc N-1 cũng được) với bước nhảy là 1. Kiểm tra số N có chia hết cho i hay không,

8


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

nếu có thì in kết quả ra màn hình N không là số nguyên tố và thoát; Nếu số ước=0 thì
N là số nguyên tố.
 Chương trình minh họa
import math
N= int(input('Nhap số nguyên dương N= '))
i=2
souoc=0
while (i<=math.sqrt(N)):
if(N%i==0):
break
else:
souoc+=1
i+=1
if(souoc==0):
print(N, ' là số nguyên số')

else:
print(N, ' là hợp số')
Cách giải quyết khác
Bài này có thể dùng kỹ thuật cờ để giải quyết
- Bước 1. Lúc đầu mặc định N là số nguyên tố (phất cờ);
- Bước 2. (lặp) Kiểm tra nếu N có ước khác 1 hoặc chính nó thì N là số
nguyên tố (hạ cờ xuống);
- Bước 3. Cuối cùng kiểm tra trạng thái cờ: Nếu cờ đang phất thì đúng N là
số nguyên tố; Nếu cờ đã bị hạ xuống thì sai N không là số nguyên tố.
 Chương trình minh họa
import math
N= int(input('Nhap số nguyên dương N= '))
i=2
ok=True
while (i<=math.sqrt(N)):
if(N%i==0):
ok=False
break
i+=1
if(ok):
print(N, ' là số nguyên số')
else:
print(N, ' là hợp số')

9


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

Bài tập tự làm

Bài 1 Viết chương trình quản lý tiền điện của một hộ với các thông tin sau: họ tên một
chủ hộ, chỉ số điện kế tháng trước (chiso1) và chỉ số điện kế tháng này (chiso2), tính tiền
điện tháng này cho hộ, biết rằng :
- Mỗi kw trong 60 kw đầu tiên có đơn gía là 5đ,
Từ kw thứ 61 đến kw thứ 160 có đơn giá 8đ,
Từ kw thứ 161 trở lên có đơn gía 10đ.
Gợi ý:
Bước 1: Nhập vào chiso1 và chiso2
Bước 2: Tính số KW của tháng bằng cách: soKW=chiso2-chiso1
Bước 3: Dùng cấu trúc if để kiểm tra
+ Nếu soKW<=60sotien=soKW*5
+ Nếu 61<=soKW<=160tính số KW vượt quá 60. Vậy số tiền sẽ được tính như sau:
sotien=60*5+soKWvuot*8
+ Nếu 161<=soKW tính số KW vượt quá 161. Vậy số tiền sẽ được tính như sau:
Sotien=60*5+100*8+soKWvuot*10
- Bước 4: In kết quả ra màn hình
Bài 2 Xây dựng chương trình giải phương trình bậc 2: ax2+bx+c=0 (với a,b,c nhập từ bàn
phím)
Gợi ý:
- Bước 1: Nhập các hệ số của phương trình bậc hai
- Bước 2: Sử dụng cấu trúc if…else để giải bài toán
+ Đầu tiên kiểm tra hệ số a, nếu a=0kết luận đây không là phương trình bậc hai,
ngược lại tính delta như sau: delta=b*b-4*a*c
+ Kiểm tra giá trị của delta:
Nếu delta<0kết luận phương trình vô nghiệm
Nếu delta=0phương trình có nghiệm kép x=-b/(2*a)
Nếu delta>0phương trình có hai nghiệm phân biệt:
X1=-(b+sqlt(delta))/(2*a)
X2=-(b-sqlt(delta))/(2*a)
- Bước 3: In kết quả ra màn hình

Bài 3 Xây dựng chương trình nhập một tháng, cho biết tháng đó thuộc mùa nào (Xuân,
Hạ, Thu, Ðông), biết rằng tháng 2, 3, 4 là mùa Xuân, tháng 5, 6, 7: mùa Hè, tháng 8, 9,
10: mùa Thu, và tháng 11, 12, 1: mùa Ðông.
Gợi ý:
- Bước 1: nhập vào một số từ bàn phím ()
10


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

- Bước 2: Sử dụng cấu trúc if elif để kiểm tra
+ Trường hợp: 2,3,4thông báo đây là mùa xuân
+ Trường hợp: 5,6,7thông báo đây là mùa hè
+ Trường hợp: 28,9,10thông báo đây là mùa thu
+ Trường hợp: 11,12,1thông báo đây là mùa đông
- Bước 3: In kết quả ra màn hình
Bài 4 Viết chương trình nhập vào số nguyên N (0từ 0N
Gợi ý:
Bước 1: Nhập số nguyên dương N
Bước 2: Áp dụng cấu trúc lặp for để duyệt từ 1N, tại mỗi lần duyệt kiểm tra xem phần
tử đang xét có chẵn hay không? Nếu chẵn thì cộng thêm giá trị đó vào s
Bước 3: In kết quả ra màn hình
Bài 5 Viết chương trình nhập vào số tự nhiên N, sau đó in ra màn hình tất cả các số
nguyên tố trong đoạn 1N.
Gợi ý:
Bước 1: Nhập số nguyên dương N
Bước 2: Áp dụng cấu trúc lặp for để duyệt từ 1N, tại mỗi lần duyệt kiểm tra xem phần
tử đang xét có là số nguyên tố hay không? Nếu đúng là số nguyên tố thì hiển thị giá trị đó
ra màn hình

Bài 6 Xây dựng chương trình PYTHON thực hiện nhập vào ba số nguyên dương từ bàn
phím. Kiểm tra xem ba số vừa nhập vào có phải là độ dài ba cạnh của một tam giác nào
đó hay không? Nếu đúng thì thực hiện hiển thị ra diện tích tam giác có cạnh là ba số đã
nhập.
Bài 7 Xây dựng chương trình giới thiệu về bạn: tên, tuổi, giới tính, nghề nghiệp, sở thích.
Sau đó hiên thị ra màn hình tên, giới tính và nhận xét.
Trong đó: Nếu tuổi <30 thì in ra màn hình “Bạn quá trẻ”, còn lại không hiển thị gì;
Nếu nghề nghiệp = “Sinh viên” thì in ra màn hình “Bạn hãy cố gắng trở thành sinh
viên xuất sắc nhé!”, còn lại thì in ra màn hình “nghề nghiệp của bạn cũng hay đấy!”;
Nếu sở thích =”lập trình” thì in ra màn hình “Tuyệt vời! Chúc bạn sẽ trở thành lập
trình viên giỏi”, nếu sở thích =”chơi game” thì in ra màn hình “Đây là sở thích không
tốt”, còn lại thì không hiển thị gì ra màn hình.
Bài 8Xây dựng chương trình PYTHON: nhập một số n từ bàn phím, kiểm tra n và hiển
thị ra kết quả sau:
11


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

Nếu n âm thì hiển thị ra thì bắt người dùng nhập lại
Nếu n nguyên dương và là số chẵn thì tính và hiển thị ra tổng các số lẻ từ 1  n
Nếu n nguyên dương và là số lẻ thì tính và hiển thị ra tổng các số chẵn từ 1  n
Bài 9 Xây dựng chương trình nhập vào từ bàn phím hai số nguyên dương x, n (10n<20). Tính và hiển thị ra màn hình tổng: S2 = x+x/2+x/3+...+x/n
Bài 10 Xây dựng chương trình PYTHON hiển thị ra màn hình giá trị các biểu thức sau:

Trong đó n là số nguyên dương được nhập vào từ bàn phím
Bài 11 Xây dựng chương trình PYTHON thực hiện nhập vào từ bàn phím một số N(
N>20). Thực hiện hiển thị ra các số không chia hết cho 3 nằm trong đoạn [1-N].
Bài 12 Xây dựng chương trình PYTHON thực hiện nhập vào một số có y trong đoạn

[0,9999] tương ứng với một năm. Hiển thị ra màn hình can-chi tương ứng của năm y vừa
nhập?

12


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

Bài Thực hành 3- Cấu trúc dữ liệu
MỤC TIÊU
 Lựa chọn được cấu trúc dữ liệu thích hợp với từng bài toán
 Kết hợp linh hoạt các cấu trúc điều khiển rẽ nhánh và lặp trong khi xây dựng
chương trình
 Vận dụng được để viết các chương trình theo yêu cầu.

BÀI TẬP CÓ LỜI GIẢI
Bài 1 Viết chương trình nhập và lưu vào list. Sau đó tính tổng các phần tử trong list đó.
 Cách làm
- Bước 1: Khởi tạo list rỗng. Khai báo một biến lưu trữ S chứa tổng các phần tử
- Bước 2: Lặp n lần bằng cách dùng range để tạo ra n số và vòng lặp for dể duyệt
qua n số này
Lần lượt nhập giá trị cho từng phần tử và thêm vào trong list
- Bước 3: Dùng vòng lặp for dể duyệt qua các phần tử trong mảng
Cộng thêm giá trị của phần tử vào biến lưu trữ S.
- Bước 4: In kết quả ra màn hình
 Chương trình minh họa
s=0
l=[]
n=int(input('Nhập số phần tử n='))
for x in range(1,n+1,1):

x = int(input('Nhập phần tử: '))
l.append(x)
for x in l:
s+=x
print('Tổng các phần tử trong list: ',s)
Bài 2 Viết chương trình nhập và lưu vào list. Sau đó sắp xếp các phần tử trong list theo
chiều tăng dần
 Cách làm
- Bước 1: Khởi tạo list rỗng.
- Bước 2: Lặp n lần bằng cách dùng range để tạo ra n số và vòng lặp for dể duyệt
qua n số này
13


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

o Lần lượt nhập giá trị cho từng phần tử và thêm vào trong list
- Bước 3: Sắp xếp các phần tử trong list theo chiều tăng dần, sử dụng hàm sort
- Bước 4: In kết quả ra màn hình
 Chương trình minh họa
l=[]
n=int(input('Nhập số phần tử n='))
for x in range(1,n+1,1):
x = int(input('Nhập phần tử: '))
l.append(x)
l.sort()
print(l)
Bài 3 Giả sử có một danh sách các kiểu thời tiết. Hiển thị các loại thời tiết Rain
 Xác định yêu cầu bài toán
 Dữ liệu nhập vào: weather_types kiểu list

Ví dụ weather_types = ["Rain", "light-Rain", "Sunny", "Fog", "Fog-Rain",
"Thunderstorm", "Type of Weather"]
 Dữ liệu xuất ra: Các loại thời tiết mưa
Trong ví dụ trên là ['Rain', 'light-Rain', 'Fog-Rain']
 Cách làm:
o Bước 1: tạo giá trị cho biến weather_types lưu các kiểu thời tiết
o Bước 2: Khởi gán giá trị rỗng cho biến lưu trữ các loại thời tiết Rain
o Bước 3: Dùng cấu trúc lặp for để duyệt từ weather_types, tại mỗi
vòng lặp kiểm tra nếu wt thỏa điều kiện chứa chuối 'Rain' thì thoát
lưu thêm loại thời tiết wt vào weather_typeRAIN_found
o Bước 4: Hiển thị weather_typeRAIN_found kết quả ra màn hình.
 Chương trình minh họa
weather_types = ["Rain", "light-Rain", "Sunny", "Fog", "Fog-Rain",
"Thunderstorm"]
weather_typeRAIN_found = []
for wt in weather_types:
if wt.find('Rain')>=0:#find tra về vị trí đầu tiên tìm thấy, nếu ko thì trả lại giá trị -1
weather_typeRAIN_found.append(wt)
print(weather_typeRAIN_found)
 Nhận xét: Các lỗi thường gặp khi soạn thảo code
 Thiếu dấu :
 Thụt lùi đầu dòng
 Viết biểu thức điều kiện chưa chuẩn

14


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

Bài tập tự làm

Bài 1 Cho biết kết quả hiển thị ra màn hình sau đoạn chương trình và giải thích?
planet_names = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn",
"Neptune", "Uranus"]
short_names = []
long_names = []
for pn in planet_names:
if len(pn)>5:
long_names.append(pn)
else:
short_names.append(pn)
print(short_names)
print(long_names)
Bài 2 Cho khai báo xâu như sau:
string s="Dai hoc Su phạm Ky thuat Hung Yen";
Hãy viết câu lệnh nhập xâu st từ bàn phím. Sau đó kiểm tra xem st có trong xâu s hay
không?
Bài 3 Viết chương trình PYTHON thực hiện: Nhập một chuỗi ký tự scmt từ bàn phím,
scmt tương ứng là số CMTND, kiểm tra tính hợp lệ của xâu scmt? Biết xâu scmt hợp lệ là
xâu chỉ toàn các ký tự là chữ số và có độ dài từ 9 tới 11 chữ số.
Bài 4 Viết chương trình PYTHON thực hiện: Nhập một chuỗi ký tự se từ bàn phím, se
tương ứng là số địa chỉ email của một cá nhân nào đó, kiểm tra tính hợp lệ của xâu se?
Biết xâu se hợp lệ là xâu chứa đúng 1 ký tự @ và có định dạng , trong đó x, y, z
phải là các xâu khác rỗng.
Bài 5 Hãy viết chương trình máy tính để
Lưu tên các mặt hàng mà công ty X bán
Thêm mặt hàng A nếu chưa có
Thay đổi thông tin mặt hàng A thành B nếu tồn tại
Tìm kiếm xem có tồn lại mặt hàng X (nhập từ bàn phím) hay không?
Bài 6 Hãy viết chương trình máy tính để
Lưu thông tin sinh viên của khoa CNTT

Thêm sinh viên A vào lớp 101181
Thay đổi thôn tin sinh viên A có mã sinh viên là 10118002 nếu tồn tại
Tìm kiếm xem có tồn lại lớp 101185 hay không? Nếu có thì lớp gồm bao nhiêu sinh viên

15


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

Bài Thực hành 4 – Hàm
Mục tiêu: Sau khi học song bài này người học có khả năng
-

Giải thích được cú pháp để tạo một hàm

-

Sử dụng được hàm trong chương trình

-

Modul hoá bài toán, cài đặt bài toán có sử dụng hàm

-

Phân biệt được biến toàn cục, biến cục bộ.

-

Yêu thích lập trình


Bài tập mẫu

Bài tập 1: Viết chương trình thực hiện nhập vào hai số từ bàn phím hiển thị ra màn
hình giá trị lớn nhất của hai số đó.
Phân tích:
-

Để nhập một số từ bàn phím ta sử dụng lệnh input(„Lời nhắc‟). Ví dụ:
A = input(„Nhập vào số thứ nhất: „);

-

Để tìm giá trị lớn nhất của 2 số ta sử dụng hàm max của python

Chương trình:
'''
chương trình tìm giá trị lớn nhất của 2 số
'''
a = input('nhập vào số thứ nhất: ')
b = input('nhập vào số thứ hai: ')
print('Giá trị lớn nhất của 2 số (',a,',',b,') =',max(a,b))

Kết quả chạy chương trình
nhập vào số thứ nhất: 2
nhập vào số thứ hai: 3
Giá trị lớn nhất của 2 số ( 2 , 3 ) = 3
Bài tập 2: Viết chương trình thực hiện tìm và chiếu lên màn hình các cặp số hữu
nghị trong phạm vi từ 1 đến 1000. Biết rằng hai số tự nhiên A, B được coi là hữu nghị
nếu như số này bằng tổng các ước số dương của số kia và ngược lại. (Lưu ý: số n không

được coi là ước số của chính nó).
16


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

Ví dụ: số 6 có các ước số dương là 1, 2, 3; và 1+2+3 =6, do vậy ta có cặp số hữu
nghị là 6, 6
Thuật toán tìm các cặp số hữu nghị
Với mọi số a trong phạm vi từ 1 đến 1000 ta thực hiện:
B1: Tính tổng ước số của a
B2: b = Tổng ước số của a;
B3: Tính tổng ước số của b
B4: Kiểm tra nếu a có giá trị bằng tổng ước số của b thì ta hiển thị a, b ra màn hình.\
Phân tích:
Ta nhận thấy tại B1 và B3 của thuật toán tìm các cặp số hữu nghị đều thực hiện
chung một nhiệm vụ: Tính tổng ước số của 1 số. Do đó ta viết mã lệnh thực hiện tính
tổng ước số của 1 số vào một hàm; Hàm này ta đặt tên là tongUoc, hàm có 1 đối số là số
mà ta cần tính tổng ước của số đó.
def tongUoc(a):
tong_uoc_a = 0;
for uoc in range(1, a):
if (a % uoc == 0): # Nếu a chia hết cho uoc
tong_uoc_a = tong_uoc_a + uoc # thì cộng uoc vào tổng ước của a
return tong_uoc_a
Chương trình:
"""
Chương trình thực hiện tìm và chiếu lên màn hình các cặp số hữu nghị trong phạm vi từ
1 đến 1000. Có sử dụng hàm
"""

def tongUoc(a):
tong_uoc_a = 0;
for uoc in range(1, a):
if (a % uoc == 0): # Nếu a chia hết cho uoc
tong_uoc_a = tong_uoc_a + uoc # thì cộng uoc vào tổng ước của a
return tong_uoc_a
for a in range(1, 1001):
b= tongUoc(a); # gán b = tỏng ước của a
if (tongUoc(b)== a): # Tính tổng ước của b và Nếu a = tỏng ước của b thì
print(a,'\t', b) #Hiển thị a, b ra màn hình
17


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

Kết quả thực hiện chương trình
6

6

28

28

220

284

284


220

496

496

Bài 3: Hãy viết chương trình thực hiện nhập 1 dãy số từ bàn phím, hiển thị ra màn
hình giá trị lớn nhất, nhỏ nhất, tổng, giá trị trung bình cộng của các phần tử trong dãy số.
Hướng dẫn
Nhập 1 dãy số ta thực hiện:
+ Bước 1: Tạo List rỗng L =[]
+ Bước 2: nhập số lượng số cần nhập N >0
+ Bước 3: Nhập lần lượt từng số, thêm số đó vào List L
for i in range(N):
x = input(„số: ‟)
L.append(x)
- Lấy giá trị lớn nhất của dãy số ta sử dụng hàm max(L)
- min(L): trả về giá trị nhỏ nhất của danh sách các số L
- sum(L): trả về tổng giá trị các phần tử của dãy số L
- len(L): trả về số phần tử của danh sách L
- trung bình cộng các phần tử = tổng giá trị/số lượng phần tử
Bài 4: Hãy viết chương trình thực hiện hiển thị ra màn hình các số nguyên tố <1000.
Hướng dẫn:
-

Hàm kiểm tra một số có phải là số nguyên tố hay không?
def SNT(a):
18



Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

if (a <2): return -1;
for i in range(2, a/2+1):
if a%i ==0: return -1;
return 1;
-

Hiển thị các số nguyên tố <1000
for i in range(1000):
if SNT(i)==1: print(i)

19


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

Bài thực hành 5: Thao tác với dữ liệu
Mục tiêu: Sau khi học xong bài học này người học có khả năng:
- Phân biệt được các chế độ khi thao tác với file.
- Đọc được dữ liệu từ file văn bản
- Ghi được dữ liệu vào file
-Đọc được dữ liệu từ file csv, excel, ..
- Ghi được dữ liệu vào file csv, excel, …
- Yêu thích lập trình
11.1 Case study
Bài toán: Viết chương trình nhập vào một danh sách sinh viên của một lớp, hiển thị
ra màn hình danh sách sinh viên vừa nhập.
Biết rằng mỗi sinh viên gồm các thông tin: Mã sinh viên, Họ tên, Lớp, Quê quán.
Thuật toán

B1: Tạo danh sách trống để lưu thông tin của các sinh viên
B2: Nhập mã sinh viên
B3: Nếu mã sinh viên trống thì kết thúc việc nhập và chuyển đến B8
B4: Nhập họ tên của sinh viên
B5: Nhập lớp của sinh viên
B6: Nhập quê quán của sinh viên
B7: Thêm sinh viên vào danh sách, quay lại B2
B8: Hiển thị danh sách sinh viên vừa nhập ra màn hình
B9: Kết thúc

Bài tập 1: Viết chương trình thực hiện cho phép người dùng nhập vào một dãy số
nguyên dương từ bàn phím cho đến khi nào người dùng nhập một chuỗi không phải là số
nguyên dương thì dừng lại. Sau đó hiển thị ra màn hình dãy các số hợp lệ và giá trị lớn
nhất của dãy số đó.
Phân tích:
-

Để nhập một dãy số từ bàn phím ta thực hiện:
20


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

B1: Tạo một danh sách trống để lưu các số do người dùng nhập từ bàn phím. L=
[]
B2: Nhập 1 số từ bàn phím A = input();
B3: Kiểm tra nếu A là số (sử dụng hàm A. isdigit()) thì thêm A vào L và quay lại
thực hiện B2; ngược lại thực hiện B4.
B4: Hiển thị ra màn hình danh sách L, và sử dụng hàm max(L) để lấy về giá trị
lớn nhất của dãy số

Bài tập 2: Viết chương trình thực hiện ghi vào tệp SoNguyenTo.txt tất cả các số
nguyên tố trong phạm vi từ 1 đến 1000
Hướng dẫn thực hiện:
-

Định nghĩa hàm kiểm tra 1 số có phải là số nguyên tố hay không (Bài thực hành
4: Hàm(1) )

-

Để ghi phần tử x vào tệp ta thực hiện:
F =open(“SoNguyenTo.txt”, “w”)
F.write(str(x))

Chương trình:
def SNT(a):
if a<2: return False;
for uoc in range(2, a//2):
if (a % uoc == 0): # Nếu a chia hết cho uoc
return False # thì a khong la so nguyen to
return True
F = open("SoNguyenTo.txt", "w")
for a in range(1, 1001):
if SNT(a):
F.write(str(a))
F.write(" ") # phan tach cac SNT trong file
F.close()

Kết quả thực hiện chương trình thu duoc file SoNguyenTo.txt
2 3

109
229
353
479
617
757
907

4 5
113
233
359
487
619
761
911

7 11 13
127 131
239 241
367 373
491 499
631 641
769 773
919 929

17 19 23 29
137 139 149
251 257 263
379 383 389

503 509 521
643 647 653
787 797 809
937 941 947

31 37 41 43
151 157 163
269 271 277
397 401 409
523 541 547
659 661 673
811 821 823
953 967 971

47 53 59 61
167 173 179
281 283 293
419 421 431
557 563 569
677 683 691
827 829 839
977 983 991

67 71 73 79
181 191 193
307 311 313
433 439 443
571 577 587
701 709 719
853 857 859

997

83 89 97 101 103 107
197 199 211 223 227
317 331 337 347 349
449 457 461 463 467
593 599 601 607 613
727 733 739 743 751
863 877 881 883 887

Bài 3: Hãy viết chương trình thực hiện nhập 1 dãy số từ bàn phím, hiển thị ra màn
hình giá trị lớn nhất, nhỏ nhất, tổng, giá trị trung bình cộng của các phần tử trong dãy số.
21


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

Hướng dẫn
Nhập 1 dãy số ta thực hiện:
+ Bước 1: Tạo List rỗng L =[]
+ Bước 2: nhập số lượng số cần nhập N >0
+ Bước 3: Nhập lần lượt từng số, thêm số đó vào List L
for i in range(N):
x = input(„số: ‟)
L.append(x)
- Lấy giá trị lớn nhất của dãy số ta sử dụng hàm max(L)
- min(L): trả về giá trị nhỏ nhất của danh sách các số L
- sum(L): trả về tổng giá trị các phần tử của dãy số L
- len(L): trả về số phần tử của danh sách L
- trung bình cộng các phần tử = tổng giá trị/số lượng phần tử

Bài 4: Hãy viết chương trình thực hiện hiển thị ra màn hình các số nguyên tố <1000.
Hướng dẫn:
-

Hàm kiểm tra một số có phải là số nguyên tố hay không?
def SNT(a):
if (a <2): return -1;
for i in range(2, a/2+1):
if a%i ==0: return -1;
return 1;

-

Hiển thị các số nguyên tố <1000
for i in range(1000):

if SNT(i)==1: print(i)

22


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

Bài thực hành 6: Hàm
A.

Bài tập mẫu
Bài tập 6.1: Xây dựng chương trình thực hiện nhập vào hai số từ bàn phím hiển thị ra
màn hình giá trị lớn nhất của hai số đó.
Phân tích:

- Để nhập một số từ bàn phím ta sử dụng lệnh input(„Lời nhắc‟). Ví dụ:
A = input(„Nhập vào số thứ nhất: „);
- Để tìm giá trị lớn nhất của 2 số ta sử dụng hàm max của Python
Chương trình:
#Chương trình tìm giá trị lớn nhất của 2 số
a = input('nhập vào số thứ nhất: ')
b = input('nhập vào số thứ hai: ')
print('Giá trị lớn nhất của 2 số (', a, ', ', b, ') =', max(a, b))

Chương trình 10.1: Tìm giá trị lớn nhất của 2 số
Kết quả chạy chương trình
nhập vào số thứ nhất: 2
nhập vào số thứ hai: 3
Giá trị lớn nhất của 2 số ( 2 , 3 ) = 3

Bài tập 6.2: Xây dựng chương trình thực hiện tìm và chiếu lên màn hình các cặp số hữu
nghị trong phạm vi từ 1 đến 1000. Biết rằng hai số tự nhiên A, B được coi là hữu nghị
nếu như số này bằng tổng các ước số dương của số kia và ngược lại. (Lưu ý: số n không
được coi là ước số của chính nó).
Ví dụ :số 6 có các ước số dương là 1, 2, 3; và 1+2+3 =6, do vậy ta có cặp số hữu nghị là
6, 6
Thuật toán tìm các cặp số hữu nghị
Với mọi số a trong phạm vi từ 1 đến 1000 ta thực hiện:
B1: Tính tổng ước số của a
B2: b = Tổng ước số của a;
B3: Tính tổng ước số của b
B4: Kiểm tra nếu a có giá trị bằng tổng ước số của b thì ta hiển thị a, b ra màn hình.
Phân tích:
Ta nhận thấy tại B1 và B3 của thuật toán tìm các cặp số hữu nghị đều thực hiện
chung một nhiệm vụ: Tính tổng ước số của 1 số. Do đó ta viết mã lệnh thực hiện tính

tổng ước số của 1 số vào một hàm; Hàm này ta đặt tên là tongUoc, hàm có 1 đối số là số
mà ta cần tính tổng ước của số đó.

23


Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng
def tongUoc(a):
tong_uoc_a = 0;
for uoc in range(1, a):
if (a % uoc == 0): # Nếu a chia hết cho uoc
tong_uoc_a = tong_uoc_a + uoc # thì cộng uoc vào tổng ước của a
return tong_uoc_a

Chương trình:
"""
Chương trình thực hiện tìm và chiếu lên màn hình các cặp số hữu nghị trong phạm vi từ 1 đến
1000. Có sử dụng hàm
"""
def tongUoc(a):
tong_uoc_a = 0;
for uoc in range(1, a):
if (a % uoc == 0): # Nếu a chia hết cho uoc
tong_uoc_a = tong_uoc_a + uoc # thì cộng uoc vào tổng ước của a
return tong_uoc_a
for a in range(1, 1001):
b= tongUoc(a); # gán b = tỏng ước của a
if (tongUoc(b)== a): # Tính tổng ước của b và Nếu a = tỏng ước của b thì
print(a, '\t', b) #Hiển thị a, b ra màn hình


Chương trình 10.2 Hiển thị các cặp số hữu nghị trong phạm vi từ 1 đến 1000
Kết quả thực hiện chương trình
6
28
220
284
496

6
28
284
220
496

B.

Bài tập tự làm

Bài tập 6.3: Hãy xây dựng chương trình thực hiện nhập 1 dãy số từ bàn phím, hiển thị ra
màn hình giá trị lớn nhất, nhỏ nhất, tổng, giá trị trung bình cộng của các phần tử trong
dãy số.
Hướng dẫn
Nhập 1 dãy số ta thực hiện:
+ Bước 1: Tạo List rỗng L =[]
+ Bước 2: nhập số lượng số cần nhập N >0
+ Bước 3: Nhập lần lượt từng số, thêm số đó vào List L
for i in range(N):
24



Bài tập thực hành: Lập trình căn bản với Python – Biên soạn: Nguyễn Thị Hải Năng

x = input(„số: ‟)
L.append(x)
- Lấy giá trị lớn nhất của dãy số ta sử dụng hàm max(L)
- min(L): trả về giá trị nhỏ nhất của danh sách các số L
- sum(L): trả về tổng giá trị các phần tử của dãy số L
- len(L): trả về số phần tử của danh sách L
- trung bình cộng các phần tử = tổng giá trị/số lượng phần tử
Bài tập 6.4: Hãy xây dựng chương trình thực hiện hiển thị ra màn hình các số nguyên tố
<1000.
Hướng dẫn:
- Hàm kiểm tra một số có phải là số nguyên tố hay không?
def SNT(a):
if (a <2): return -1;
for i in range(2, a/2+1):
if a%i ==0: return -1;
return 1;
- Hiển thị các số nguyên tố <1000
for i in range(1000):
if SNT(i)==1: print(i)
Bài tập 6.5: Hãy xây dựng chương trình thực hiện:
- Xây dựng hàm tìm ước chung lớn nhất của hai số nguyên
- Nhập từ bàn phím hai số nguyên từ bàn phím; hiển thị ra màn hình ước số chung
lớn nhất của hai số đó.
Bài tập 6.6: Hãy xây dựng chương trình thực hiện:
- Nhập một danh sách số từ bàn phím
- Hiển thị ra màn hình danh sách đã được sắp xếp tăng dần, giảm dần về giá trị
Hướng dẫn.
L.sort(reverse=True) # sắp xếp danh sách L giảm dần về giá trị

L.sort(reverse=False)# sắp xếp danh sách L tăng dần về giá trị
Bài tập 6.7: Xây dựng chương trình thực hiện cho phép người dùng nhập vào một dãy số
nguyên dương từ bàn phím cho đến khi nào người dùng nhập một chuỗi không phải là số
nguyên dương thì dừng lại. Sau đó hiển thị ra màn hình dãy các số hợp lệ và giá trị lớn
nhất của dãy số đó.
Phân tích: Để nhập một dãy số từ bàn phím ta thực hiện:
Bước 1: Tạo một danh sách trống để lưu các số do người dùng nhập từ bàn phím. L=
[]
25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×