Thầy chào các em luôn khao khát được vào trường Chuyên Tin để thực hiện nhiều ước mơ và đam mê lập trình Python của mình! Vì lý do đó hôm nay thầy sẽ quyết định giải đề thi trường Chuyên Tin Tiền Giang năm 2024 – 2025 để ôn luyện thi chuyên Tin lớp 10 để chuẩn bị thi tốt hơn kỳ thi chuyên Tin đầy thử thách sắp tới. Thầy có chia sẻ kinh nghiệm trong quá trình giải đề thi vào các trường Chuyên Tin các em chú ý tập trung thật kỹ nhé!
Các đề thi ôn tập cho kỹ lưỡng trước khi bước vào luyện thi chuyên Tin lớp 10:
Còn đây là các đề ôn thi để chuẩn bị thi Cấp Huyện thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!
SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI TUYỂN SINH LỚP 10 TRUNG HỌC PHỔ THÔNG
TỈNH TIỀN GIANG NĂM HỌC 2024 – 2025
ĐỀ THI CHÍNH THỨC Môn thi: TIN HỌC (CHUYÊN)
(Đề thi có 3 trang ) Thời gian làm bài: 150, không kể thời gian phát đề
Ngày thi 6/6/2024
TỔNG QUAN BÀI THI
Tên bài
File chương trình
File dữ liệu vào
File kết quả
Bài 1
PHÉP TOÁN
DIVMOD.*
DIVMOD.INP
DIVMOD.OUT
Bài 2
TÌM X
NUMX.*
NUMX.INP
NUMX.OUT
Bài 3
BÀI TẬP
EXERCISE.*
EXERCISE.INP
EXERCISE.OUT
Bài 4
TỪ VỰNG
WORD.*
WORD.INP
WORD.OUT
Bài 5
CỨU GÀ
CHICKEN*
CHICKEN.INP
CHICKEN.OUT
Dấu * được thay thế bởi PAS, CPP hoặc PY của ngôn ngữ lập trình được sử dụng tương ứng là Pascal, C++, Python
Thí sinh chỉ được sử dụng một ngôn ngữ lập trình để làm các bài bên dưới.
BÀI 1: PHÉP TOÁN (2 điểm ) ?
Bi đang học về các phép toán số học. Thầy giáo cho Bi bài toán như sau:
“Gọi S là tổng các số tự nhiên từ 1 đến n.
Lấy S đem chia cho số nguyên dương k thì được thương nguyên và số dư là bao nhiêu?”
Em hãy giúp bi giải bài toán này nhé!
Dữ liệu vào: Đọc từ file DIVMOD.INP gồm một dòng chứa hai số nguyên dương n và k (n, k < 109)
Kết quả ra: Ghi vào file DIVMOD.OUT một dòng gồm hai số nguyên dương tương ứng là thương nguyên và số dư cần tìm.
Lưu ý: Các số cùng dòng cách nhau bởi một khoảng trắng.
Ví dụ:
DIVMOD.INP
DIVMOD.OUT
Giải thích
5 2
7 1
với n = 5 và k= 2, ta có S =1 + 2 + 3 +4+ 5 = 15 ,
15 chia 2 được thương nguyên là 7 và số dư là 1
Giới hạn:
40% số test có n, k < 103
30% số test có 103 < n, k < 106
30% số test có 106 < n, k < 109
BÀI 2: TÌM X (2 điểm ) ?
Giải bài 2 ôn luyện thi chuyên Tin lớp 10
Giới hạn:
40% số test có n < 103
30% số test tiếp theo có 103 < n < 106
30% số test tiếp theo có 106 < n < 1012
BÀI 3: BÀI TẬP (2 điểm ) ?
Bi có quyển sách tin học rất hay. Quyển sách gồm n bài tập được đánh số từ 1 đến n. Bi chọn những bài dễ giải trước. Bi giải được k bài trong số n bài đó (k < n). Hôm nay, Bi muốn thống kê xem những bài chưa giải để hè này Bi sẽ cố gắng giải cho hết. Em hãy giúp Bi liệt kê các bài chưa giải nhé!
Dữ liệu vào: Đọc từ file EXERCISE.INP gồm:
Dòng thứ nhất chứa hai số nguyên dương n và k (1 <= k < n <= 106)
Dòng thứ hai chứa k số nguyên dương a1, a2,…, ak, các giá trị đôi một khác nhau (1 < ai < n với 1 < i <=k)
Kết quả ra: Ghi vào file EXERCISE.OUT gồm một dòng ghi các số nguyên dương là những bài tập mà chưa giải và ghi theo thứ tự từ bé đến lớn.
Lưu ý: Các số cùng dòng cách nhau bởi một khoảng trắng.
Ví dụ:
EXERCISE.INP
EXERCISE.OUT
Giải thích
7 3
1 4 2
3 5 6 7
n=7 và k=3. Có 7 bài tập, Bi đã giải 3 bài là: 1 4 2 Các bài tập chưa giải là: 3 5 6 7
Giới hạn:
40% số test có 1 < n < 102
30% số test tiếp theo có 102 < n < 103
30% số test tiếp theo có 103 < n < 106
BÀI 4: TỪ VỰNG (2 điểm) ?
Bi đang học Tiếng anh. Bi lấy ra một tờ giấy biết các từ vựng. Mỗi từ gồm cá chữ cái in thường trong bảng chữ cái tiếng Anh và được viết liên tiếp nhau. Các từ Bi viết trên tờ giấy cách nhau ít nhất một khoảng trắng và tạo thành một xâu S.
Ví dụ: S= “ table he she table “
Sau buổi học, Bi muốn biết mình đã viết được bao nhiêu từ vựng khác nhau và từ nào được viết nhiều lần nhất. Em hãy giúp Bi tìm ra câu trả lời nhé !
Dữ liệu vào: đọc từ file WORD.INP gồm một dòng chứ xâu S có độ dài không quá 105. Dữ liệu vào luôn đảm bảo xâu S có ít nhất một từ.
Kết quả ra: Ghi vào file WORD.OUT gồm hai dòng:
Dòng thứ nhất ghi số nguyên là số từ vựng khác nhau mà bi viết được.
Dòng thứ hai ghi từ mà Bi viết nhiều lần nhất, nếu có nhiều từ thỏa mãn thì ghi ra từ thỏa mãn nằm ở vị trí nhỏ nhất trong S.
WORD.INP
WORD.OUT
be banana red banana lemon ant red
5
banana
Giới hạn:
40% số test có độ dài xâu S không quá 102
30% số test tiếp theo có độ dài xâu S không quá 103
30% số test tiếp theo có độ dài xâu S không quá 105
BÀI 5: CỨU GÀ (2 điểm ) ?
Cho điểm A có tọa độ (xa , ỵa) và điểm B có tọa độ (xb, ỵb). Khoảng cách từ điểm A đến điểm B được tính theo công thức:
Nhà Bi có nuôi đàn gà gồm n chú gà được đánh số từ 1 đến n.
Trong đó, các chú gà thứ 1 thứ k là những chú gà lớn, còn lại là những chú gà con.
Đàn gà đang gặp nguy hiểm, đứng nháo nhác trong khu vườn và được xem như chúng đang đứng trong hệ trục tọa độ Oxy.
Chú gà thứ i đang đứng ở vị trí (xi, yi).
Bi đang đứng tại vị trí (u, v).
Bi tìm cách cứu đàn gà nhưng Bi chỉ có thời gian T giây.
Thời gian cứu một chú gà bằng bình phương khoảng cách từ vị trí ban đầu Bi đứng đến vị trí chú gà đó.
Bi sẽ tìm cách cứu nhiều chú gà nhất nhưng phải ưu tiên cứu những chú gà con trước nếu được.
Theo em, Bi có thể cứu được nhiều nhất là bao nhiêu chú gà ?
Dữ liệu vào: đọc từ file CHICKEN.INP gồm:
Dòng đầu gồm năm số nguyên lần lượt là n, k, T, u, v ( 1 < k < n < 105, 1 < T < 109 và -103 < u,v < 103)
n dòng tiếp theo, mỗi dòng chứa hai số nguyên xi, yi là tọa độ của chú gà thứ i (-103 < xi, yi < 103, với 1 < i < n)
Kết quả ra: Ghi vào file CHICKEN.OUT gồm một số nguyên là số gà nhiều nhất mà Bi cứu được.
Lưu ý: Các số cùng dòng cách nhau bởi một khoảng trắng.
Ví dụ:
CHICKEN.INP
CHICKEN.OUT
Giải thích
4 2 3 0 1
2
n=4, k=2, T=3, u=0, v=1
0 2
+Có 4 chú gà, trong đó có 2 chú gà lớn ở vị trí (0,2) và (1,1)
1 1
còn lại 2 chú gà con ở vị trí (0,4) và (1,2).
0 4
+Bi có thời gian 3 giây và Bi đang đứng ở vị trí (0,1).
1 2
+Bi sẽ cứu được 2 chú gà là:
Gà con ở vị trí (1,2), mất 2 giây.
Gà lớn ở vị trí (0,2),mất 1 giây.
Giới hạn:
30% số test có 1 < n < 102
30% số test tiếp theo có 102 < n < 103
40% số test tiếp theo có 103 < n <105
———————————————————— HẾT———————————————————–
Thí sinh được sử dụng các loại máy tính cầm tay không có chức năng soạn thảo văn bản và không có thẻ nhớ.
Thí sinh không được sử dụng tài liệu. Giám thị không được giải thích gì thêm.
Họ và tên thí sinh:……………………………….. Số báo danh: …………………………………………..
Đáp án bài 1: PHÉP TOÁN ( Cách luyện thi chuyên Tin lớp 10 là đây)
import sys
sys.stdin=open('DIVMON.INP','r')
sys.stdout=open('DIVMON.OUT','w')
n,k=map(int,input().split())
tong=0
for i in range(1,n+1):
tong+=i
nguyen=tong//k
du=tong%k
print(nguyen,du)
Đáp án BÀI 2: TÌM X ( Chia sẻ kinh nghiệm thi chuyên Tin)
import sys,math
sys.stdin=open('NUMX.INP','r')
sys.stdout=open('NUMX.OUT','w')
n=int(input())
for i in range(1,n+1):
if i+int(math.sqrt(i))==n:
print(i)
Đáp án Bài 3: BÀI TẬP ( Lộ trình học chuyên Tin hấp dẫn)
import sys
sys.stdin=open('EXERCISE.INP','r')
sys.stdout=open('EXERCISE.OUT','w')
n,k=map(int,input().split())
a=list(map(int,input().split()))
b=[]
for i in range(1,n+1):
if i not in a:
b.append(i)
c=sorted(b)
print(*c)
Đáp án bài 4: TỪ VỰNG (Tài liệu ôn thi HSG chuyên Tin Python )
import sys
sys.stdin=open('WORD.INP','r')
sys.stdout=open('WORD.OUT','w')
s=input().split()
a=[]
for i in range(len(s)):
if s[i] not in a:
a.append(s[i])
print(len(a))
c=[]
for i in range(len(a)):
c.append(s.count(a[i]))
M=max(c)
for i in range(len(a)):
if s.count(a[i])==M:
print(a[i])
break
Đáp án bài 5: CỨU GÀ ( chia sẻ bí kiếp để thi đề chuyên Tin Tiền Giang)
import sys,math
sys.stdin=open('CHICKEN.INP','r')
sys.stdout=open('CHICKEN.OUT','w')
def khoancach(xa,xb,ya,yb):
d=(xa-xb)*(xa-xb)+(ya-yb)*(ya-yb)
return d
n,k,t,u,v=map(int,input().split())
a=[]
b=[]
for i in range(n):
x,y=map(int,input().split())
a.append(x)
b.append(y)
c=[]
for i in range(len(a)):
c.append(khoancach(a[i],u,b[i],v))
dem=0
tong=0
for i in range(k,len(c)):
if c[i]<=t:
dem+=1
tong=tong+(t-c[i])
for i in range(k):
if c[i]<=tong:
dem+=1
tong=tong-c[i]
print(dem)
Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !
Xin chào các em yêu thích lập trình thân mến! để chuẩn bị tốt nhất cho kỳ thi học sinh giỏi Tin Học Python và C++ cấp huyện đang gần kề sắp tới các em cần phải giải được nhiều đề thi có tính ôn tập chung. Để các em có bước đầu làm quen với đề thi cấp huyện thầy đã soạn thảo ra sẵn trong 20 đề và đây là thầy giải đề 3 thi học sinh giỏi Tin học Python C++ cấp huyện có đáp án kèm theo phía dưới em có thể tham khảo để làm bài tập cho đúng nhé!
Các đề ôn thi để chuẩn bị thi Cấp Huyện thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!
Rồi hãy nhanh tay vào giải Giải đề 3 thi học sinh giỏi Tin học Python C++ cấp huyện có đáp án thôi nào!
Thứ tự
Tên bài
File
chương
trình
File dữ liệu
vào
File kết quả
Bài 1
Tính canh giờ
D031*
D031.1NP
D031.OUT
Bài 2
Tính tổng những số nguyên chẵn từ m đến n
D032.*
D032.1NP
D032.OUT
Bài 3
Đếm số lượng số chia hết cho 5 trong mảng
D033.*
D033.1NP
D033.OUT
Bài 4
In các từ có chiều dài lớn nhất trong
xâu s
D034.*
D034.INP
D034.OUT
Bài 5
ln số Fibonacci thứ n
D035.*
D035.1NP
D035.OUT
Dấu * được thay thế bởi PY, CPP của ngôn ngữ lập trình được sử dụng tương ứng là Python hoặc C++.
Bài 1: (4 điểm) Tính canh giờ?
Diễn giải:
Nhập vào giờ và phút hiện tại.
Cho thời gian đó thuộc canh nào sau đây:
Nếu từ 19 giờ 00 phút đến trước 21 giờ 00 phút: Canh 1
Nếu từ 21 giờ 00 phút đến trước 23 giờ 00 phút: Canh 2
Nếu từ 23 giờ 00 phút đến trước 01 giờ 00 phút: Canh 3
Nếu từ 01 giờ 00 phút đến trước 03 giờ 00 phút: Canh 4
Nếu lừ 03 giờ 00 phút đến trước 05 giờ 00 phút: Canh 5
Ngoài các khung giờ trên thì in dấu “-“
Input: Giờ và phút hiện tại theo dạng hh:mm (00<=hh<24; 00<=mm<60).
Output: “Canh” của thời gian đó
Ví dụ:
Input
Output
03:20
Canh 5
20:45
Canh 1
Bài 2: (4 điểm) Tính tổng những số nguyên chẵn từ m đến n?
Diễn giải: Nhập vào hai số nguyên m và n (m<=n). Tính tổng các số chẵn từ m đến n.
Input: Hai số nguyên dương m và n (0<m, n<106), trên một dòng, cách nhau bởi dấu cách.
Output: Là tổng các số nguyên chẵn từ m đến n.
Ví dụ:
Input
Output
7
26
2 13
42
Bài 3: (4 điểm) đếm số lượng số chia hết cho 5 trong mảng?
Diễn giải: Nhập vào một mảng a có n số nguyên: ao, ai, a2, a„-i, đếm số lượng số số chia hết cho 5 của mảng
Input: Dòng một là số nguyên n (0<n<106), n dòng tiếp theo là n số nguyên có giá trị tuyệt đối không vượt quá 105.
Output: Theo yêu cầu
Ví dụ:
Input
Output
7
9
0
3
8
10
7
-2
2
5
20
7
6
8
4
1
Bài 4: (4 điểm) In các từ có chiều dài lớn nhất trong xâu s?
Diễn giải: Nhập vào một xâu s. In các từ có chiều dài lớn nhất trong xâu s
Input: Xâu s trên một dòng, có độ dài không vượt quá 105, chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách.
Output: Các từ có chiều dài lớn nhất trong xâu theo thứ tự xuất hiện, các từ trên một dòng, cách nhau bởi dấu cách.
Input
Output
Toi hoc LAP TRINH python tu nam 2024
python
Thi HOC SINH GIOI mon Tin Hoc
SINH GIOI
Bài 5: (4 điểm) In số Fibonacci thứ n?
Nhập vào số nguyên dương n. In số Fibonacci thứ n
Số Fibonacci là một dãy số vô hạn trong đó mỗi số Fibonacci là tổng của hai số trước đó trong dãy. Dãy bắt đầu bằng hai số 0 và 1, sau đó mỗi số tiếp theo là tổng của hai số ngày trước nó.
Dãy Fibonacci thường được định nghĩa bằng công thức sau:
Đáp án bài 2: (4 điểm) Tính tổng những số nguyên chẵn từ m đến n?
import sys
sys.stdin=open('D032.INP','r')
sys.stdout=open('D032.OUT','w')
m,n=map(int,input().split())
tong=0
for i in range(m,n+1):
if i%2==0:
tong+=i
print(tong)
Đáp án bài 3: (4 điểm) đếm số lượng số chia hết cho 5 trong mảng?
import sys
sys.stdin=open('D033.INP','r')
sys.stdout=open('D033.OUT','w')
n=int(input())
a=[]
for i in range(n):
a.append(int(input()))
dem=0
for i in range(len(a)):
if a[i]%5==0:
dem+=1
print(dem)
Đáp án bài 4: (4 điểm) In các từ có chiều dài lớn nhất trong xâu s?
import sys
sys.stdin=open('D034.INP','r')
sys.stdout=open('D034.OUT','w')
n=input().split()
a=[]
for i in n:
a.append(len(i))
for i in range(len(n)):
if len(n[i])==max(a):
print(n[i],end=' ')
Đáp án bài 5: (4 điểm) In số Fibonacci thứ n?
import sys
sys.stdin=open('D035.INP','r')
sys.stdout=open('D035.OUT','w')
def Fibonacy(n):
f0=0
f1=1
fn=1
if n<0:
return False
elif n==0 or n==1:
return n
else:
for i in range(2,n):
f0=f1
f1=fn
fn=f0+f1
return fn
n=int(input())
a=[]
for i in range(n+1):
a.append(Fibonacy(i))
print(a[n-1])
Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !
Các em học sinh yêu thích học lập trình Python thân mến hôm nay thầy sẽ giải đề 2 thi học sinh giỏi Tin học cấp huyện có đáp án. Để cho các em có thể bám sát hơn nữa với đề thi cấp huyện, cấp tỉnh hoặc đề thi vào lớp 10 chuyên Tin sắp tới. Thầy đã soạn ra trong 20 đề các em có thể tham khảo thi thử để chuẩn bị thi tốt hơn trong kỳ thi khó khăn và đầy thử thách sắp tới! Thầy chúc tất cả các em vượt qua kì thi thật tốt nhé!
Các đề ôn thi để chuẩn bị thi Cấp Huyện thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!
Các phần mềm lậptrình Python PyCharm Edu 2020.2.2 bao gồm:
Phiên bản dành cho Windows 10 và Windows 11:
Phiên bản dành cho Windows 7:
Rồi còn chờ gì nữa mà không vào giải đề thôi nào !
Học lập trình Python bằng cách Giải đề 2 thi học sinh giỏi Tin học cấp huyện
STT
TÊN BÀI
TÊN FILE
FILE DỮ LIỆU
FILE XUẤT
Bài 1
Tính khung tuổi
D021.*
D021.INP
DO21.OUT
Bài 2
In ra những số nguyên chẵn từ m đến n
D022.*
D022.INP
D022.OUT
Bài 3
In các số lẻ trong mảng
D023.*
D023.INP
D023.OUT
Bài 4
In các phần tử có trong xâu s
D024.*
D024.INP
D024.OUT
Bài 5
Tính tổng n số nguyên tố đầu tiên
D025.*
D025.INP
D025.OUT
Dấu * được thay thế bởi PY, CPP của ngôn ngữ lập trình được sử ( tương ứng là Python hoặc C++)
Bài 1: (4 điểm) Tính khung tuổi từ mẫu giáo đến đại học?
Diễn giải: Nhập vào tuổi của 3 học sinh, tính tuổi trung bình. Cho biết tuổi trung bình đó thuộc khung tuổi nào sau đây:
Nếu tuổi trung bình <6: Mẫu giáo
Nếu tuổi trung bình từ 6 đến 11: Tiểu học
Nếu: 11 < tuổi trung bình <=15: Trung học cơ sở
Nếu: 15< tuổi trung bình <=18: Trung học phổ thông
Nếu tuổi trung bình >18: Trung cấp, cao đẳng, đại học
Input: Ba số nguyên a, b, c trên một dòng cho biết tuổi của 3 học sinh, các số phân tách nhau bởi dấu cách, (0<a, b, c<100).
Output: Tuổi trung bình (2 chữ số thập phân), dấu và khung tuổi
Ví dụ:
Input
Output
5 7 10
7.33-Tieu hoc
19 13 15
15.67-Trung hoc pho thong
Bài 2: (4 điểm) In những số nguyên chẵn từ m đến n?
Diễn giải:
Nhập vào hai số nguyên m và n (m<=n).
In ra những số nguyên chẵn từ m đến n
Input:
Hai số nguyên dương m và (0<m, n<106)
Mỗi số trên một dòng.
Output: Các số nguyên chẵn từ m đến n trên cùng một dòng, các số cách nhau một dấu cách. Nếu không có số chẵn nào từ m đến n thì in dấu
Ví dụ:
Input
Output
11
15
12 14
2
2468 10 12
Bài 3: (4 điểm) In các số có lẽ trong mảng?
Diễn giải:
Nhập vào một mảng a có n số nguyên: ao, ai, a2, an-i,
in các số có lẽ của mảng theo thứ tự xuất hiện trong mảng, mỗi số một dòng
Input:
Dòng một là số nguyên n (0<n<106).
Dòng hai là n số nguyên có giá trị tuyệt đối không vượt quá 105, cách nhau bởi dấu cách.
Output:
Các số có lẽ của mang theo thứ tự xuất hiện trong mảng, mỗi số một dòng.
Nếu không có số lẻ nào trong mảng thì in dấu “-“
Ví dụ:
Input
Output
7
9
9 0 3 8 6 7-2
3
7
5
5
5 7684
7
Bài 4: (4 điểm) In các từ có trong xâu s ?
Diễn giải: Nhập vào một xâu s. In các từ có trong xâu s
Input: Xâu s trên một dòng, có độ dài không vượt quá 105, chứa các ký tự là chữ cái, chữ số, ký hiệu và các dâu cách.
Output: Các từ trong xâu theo thứ tự xuất hiện, mỗi từ một dòng
Ví dụ:
Input
Output
Toi hoc LAP TRINH Python tu nam 2024
Toi
hoc
LAP
TRINH
Python
Tu
nam
2024
Thi HOC SINH GIOI mon Tin Hoc vao thang 02/2025
Thi
HOC
SINH
GIOI
Mon
Tin
Hoc
vao
thang
02/2025
Bài 5: (4 điểm) Tính tổng n số nguyên tố đầu tiên?
Diễn giải:
Nhập vào một số tự nhiên n.
Tính tổng n số nguyên tố đầu tiên Số nguyên tố là số chỉ chia hết cho 1 và chính nó (chỉ có 2 ước)
Ví dụ:
n=7 là số nguyên tố vì 7 chỉ chia hết cho 1 và 7
n=8 Không là số nguyên tố vì 8 chia hết cho 1 và 8 nhưng còn chia hết cho 2 và 4
Số nguyên tố thứ nhất là 2
Dãy số nguyên tố: 2,3,5, 7,11, 13,17, 19,23,29,31,37,….
Input: Một số nguyên n (0<n<103)
Output: Tính tổng n số nguyên tố đầu tiên
Input
Output
4
17
7
58
Giải bài 1: (4 điểm) Tính khung tuổi từ mẫu giáo đến đại học?
import sys
sys.stdin=open('D021.INP','r')
sys.stdout=open('D021.OUT','w')
a,b,c=map(int,input().split())
#C1
TBC=(a+b+c)/3
print('%0.2f'%TBC,'-',sep='',end='')
if TBC<6:
print('Mau giao')
elif 6<=TBC<11:
print('Tieu hoc')
elif 11<TBC<=15:
print('Trung hoc co so')
elif 15<TBC<=18:
print('Trung hoc pho thong')
elif TBC>18:
print('Trung cap, cao dang, dai hoc')
Giải Bài 2: (4 điểm) In những số nguyên chẵn từ m đến n?
import sys
sys.stdin=open('D022.INP','r')
sys.stdout=open('D022.OUT','w')
m=int(input())
n=int(input())
dem=0
for i in range(m,n+1):
if i%2==0:
dem+=1
print(i,end=' ')
if dem==0:
print('-')
Giải Bài 3: (4 điểm) In các số có lẽ trong mảng?
import sys
sys.stdin=open('D023.INP','r')
sys.stdout=open('D023.OUT','w')
n=int(input())
a=list(map(int,input().split()))
dem=0
for i in range(len(a)):
if a[i]%2!=0:
dem+=1
print(a[i])
if dem==0:
print('-')
Giải Bài 4: (4 điểm) In các từ có trong xâu s ?
import sys
sys.stdin=open('D024.INP','r')
sys.stdout=open('D024.OUT','w')
n=input().split()
for i in n:
print(i)
Giải Bài 5: (4 điểm) Tính tổng n số nguyên tố đầu tiên?
import sys
sys.stdin=open('D025.INP','r')
sys.stdout=open('D025.OUT','w')
def ktnt(n):
i=2
while i*i<=n and n%i!=0:
i+=1
return i*i>n and n>1
n=int(input())
dem=0
tong=0
i=0
while dem<n:
if ktnt(i):
dem+=1
tong+=i
i+=1
print(tong)
Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !
Thầy mến chào các em đang trong giai đoạn nước rút ôn luyện thi học sinh giỏi tin học lập trình Python cấp huyện hoặc cấp tỉnh, hoặc các em đang thi vào các trường Chuyên Tin. Thầy sẽ tổng hợp được 20 đề và đáp án thi HSG tin Python C++ THPT có tài liệu ôn luyện thi pdf. từ dễ đến nâng cao. Hy vọng 20 đề này sẽ giúp ích cho các em ôn lại kiến thức trước khi thi bước vào kỳ thi cam go sắp tới và Thầy chúc các em đạt được kết quả cao nhé!
Tải hình các đề thi
Các đề ôn thi để chuẩn bị thi Cấp Huyện thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!
Rồi còn chờ gì nữa mà không vào giải thử 20 đề hay và hấp dẫn nào!
Đề 1: Dành cho các bạn thuộc Cấp Độ 10:
NĂM HỌC 2022-2023
Môn: TIN HỌC
Thời gian: 90 phút (Không kể thời gian giao đề)
Ngày thi: 14/07/2024
Thứ tự
Tên bài
File
chương
trình
File dữ liệu
vào
File kết quả
Bài 1
Tính loại bão
D011.*
D011.INP
D051.OUT
Bài 2
Tính trung bình cộng những số nguyên chia hết cho 2 và 3 từ m đến n
D012.*
D012.INP
D012.OUT
Bài 3
Tìm số lớn nhất trong mâng và vị tri
D013. *
D013.INP
D013.OUT
Bài 4
In các từ viết hoa trong xâu s
D014.*
D014.INP
D014.OUT
Bài 5
Tính trung bình cộng các số chính phương đầu tiên
D015 *
D015.INP
D015.OUT
Dấu * được thay thế bởi PY, CPP của ngôn ngữ lập trình được sử dụng tương ứng là Python hoặc C++.
Bài 1: (4 điểm) Tính loại bão?
Diễn giải: Nhập vào tốc độ gió (đơn vị km/h) của một com bào ớ ba địa điểm khác nhau, tính tốc độ gió trung bình. Cho biết cơn bão đó thuộc loại nào sau đây:
Nếu tốc độ gió trung bình dưới 89: Gió
Nếu tốc độ gió trung bình từ 89 đến 183: Bão
Nếu tốc độ gió trung bình trên 183 đến 220: Siêu bão
Nếu tốc độ gió trung bình trên 220 đến 465: Siêu cuồng phong
Nếu tốc độ gió trung bình >=466: Siêu bão hủy diệt
Input: Ba số nguyên a, b, c trên một dòng, cách nhau bờ dấu cách cho biết tốc độ gió của ở 3 địa điểm khác nhau (0<a, b, c<500).
Output: Tốc độ gió trung bình (một chữ số thập phân), dấu “-“, loại bão
Ví dụ:
Input
Output
100 120 114
111.3-Bao
189 178 195
187.3-Sieu bao
Bài 2: (4 điểm) Tính trung bình cộng những số nguyên chia hết cho 2 và 3 từ m đến n?
Diễn giải:
Nhập vào hai số nguyên m và n (m<=n).
Tính tổng các số nguyên chia hết cho 5 từ m đến n;
Tính trung bình cộng các số nguyên chia hết cho 2 và 3 từ m đến n.
Input: Hai số nguyên dương m và n (0<m, n<106), trên một dòng, cách nhau bởi dấu cách.
Output:
Số thứ nhất là tổng các số chia hết cho 5 từ m đến n, dấu cách, số thứ hai là trung bình cộng các số nguyên chia hết cho 2 và 3 từ m đến n.
Làm tròn đến một chữ số thập phân.
Nếu không có số nguyên nào chia hết cho 2 và 3 thì số thứ hai là “0.0”
Ví dụ:
Input
Output
4 15
30 9.0
2 11
15 6.0
Bài 3: (4 điểm) Tìm số lớn nhất trong mảng và vị trí của nó?
Diễn giải:
Nhập vào một mảng a có n số nguyên: a0, a1, a2,…… an-1
Tìm số lớn nhất trong mảng a và vị trí của số lớn nhất đó
Input: Dòng một là số nguyên n (0<n<106), n dòng tiếp theo là n số nguyên có giá trị tuyệt đối không vượt quá 105.
Output: Số lớn nhất và vị trí của nó trong mảng trên cùng một dòng, cách nhau bởi dấu cách
Input
Output
7
10 4
9
6
3
8
10
7
-2
5
20 0
20
7
6
8
0
Bài 4: (4 điểm) In các từ viết hoa trong xâu s
Diễn giải: Nhập vào một xâu s. In các từ viết hoa trong xâu s
Input: Xâu s trên một dòng, cỏ độ dài không vượt quá 105, chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách.
Output: Các từ viết hoa trong xâu theo thứ tự xuất hiện, trên một dòng, cách nhau bởi dấu cách.
Input
Output
Toi hoc LAP TRINH Python tu nam 2024
LAP TRINH
Thi HOC SINH GIOI mon Tin Hoc
HOC SINH GIOI
Bài 5: (4 điểm) Tính trung bình cộng n số chính phương đầu tiên?
Diễn giải:
Nhập vào số nguyên dương n.
Tính trung bình cộng của n số chính phương đầu tiên.
Số nguyên n được gọi là số chính phương khi n>=0 và căn bậc 2 của n là một số nguyên.
Ví dụ:
n=9 là số chính phương, căn bậc 2 của 3 là 3
n=15 không phải số chính phương vì căn bậc 2 của 5 là 3.872
Số chính phương thứ nhất là 0
Dãy số chính phương: 0, 1,4, 9, 16, 25, 36, 49,….
Input: Một số nguyên n (0<n<103)
Output: Trung bình cộng của n số chính phương đầu tiên, làm tròn đến 2 chữ số thập phân
Input
Output
4
3.50
7
13.00
Đáp án giải đề thi HSG Python bài 1: Tính loại bão?
Đáp án bài 2: tính trung bình cộng những số nguyên chia hết cho 2 và 3 từ m đến n
import sys
sys.stdin=open('D012.INP','r')
sys.stdout=open('D012.OUT','w')
m,n=map(int,input().split())
tong=0
dem=0
tong5=0
for i in range(m,n+1):
if i%5==0:
tong5+=i
print(tong5,end=' ')
for i in range(m,n+1):
if i%2==0 and i%3==0:
dem+=1
tong+=i
tbc=0
if dem>0:
tbc=tong/dem
print('%0.1f'%tbc)
Đáp án bài 3: Tìm số lớn nhất trong mảng và vị trí của nó?
import sys
sys.stdin=open('D013.INP','r')
sys.stdout=open('D013.OUT','w')
n=int(input())
a=[]
for i in range(n):
a.append(int(input()))
M=max(a)
vt=a.index(M)
print(M,vt)
Đáp án bài 4: In các từ viết hoa trong xâu s
import sys
sys.stdin=open('D054.INP','r')
sys.stdout=open('D054.OUT','w')
n=input()
n=n.split()
for i in n:
if i.isupper():
print(i,end=' ')
Đáp án bài 5: Tính trung bình cộng n số chính phương đầu tiên?
import sys,math
sys.stdin=open('D015.INP','r')
sys.stdout=open('D015.OUT','w')
def ktcp(n):
if n<0:
return -1
x=int(math.sqrt(n))
return x*x==n
n=int(input())
i=0
dem=0
tong=0
Tbc=0
while dem<n:
if ktcp(i):
tong+=i
dem+=1
i+=1
if dem>0:
Tbc=tong/dem
print('%0.2f'%Tbc)
Thầy có giải đề thi vào lớp 10 Chuyên Tin Tiền Giang năm 2024 – 2025:
Giải bài tập 1: thi vào lớp 10 Chuyên Tin Tiền Giang
Giải bài tập 2: thi vào lớp 10 Chuyên Tin Tiền Giang
Giải bài tập 3: thi vào lớp 10 Chuyên Tin Tiền Giang
Giải bài tập 4: thi vào lớp 10 Chuyên Tin Tiền Giang
Giải bài tập 5: thi vào lớp 10 Chuyên Tin Tiền Giang
Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !
Chào các em yêu thích tin học lập trình Python, để chuẩn bị cho kỳ thi tốt sắp tới thầy có soạn ra 5 đề thi Python học sinh giỏi tin học THCS có đáp án và tài liệu ôn thi để các em thi cho tốt nhé!
Các đề ôn thi để chuẩn bị thi Cấp Huyện thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!
Đầu tiên các em cần ôn tập lại tất cả kiến thức về các hàm, vòng lập for, while, cách tạo các hàm def cho tốt nhé ! Các em vào đường dẫn phía dưới nhé!
Rồi sau khi ôn lại kiến thức đã học các em vào tự giải đề trước rồi xem đáp án sau nhé!
Hôm nay thầy sẽ giải đề thi học sinh giỏi tin học lập trình Python huyện Gò Công Đông, Tiền Giang.
PHÒNG GIÁO DỤC VÀ ĐÀO TẠO HUYỆN GÒ CÔNG ĐÔNG
KỲ THI CHỌN HỌC SINH GIỎI CẤP HUYỆN TRUNG HỌC CƠ SỞ,
NĂM HỌC 2022-2023
Môn: TIN HỌC
Thời gian: 150 phút (Không kể thời gian giao đề)
Ngày thi: 14/02/2023
(Đề thi có 03 trang, 05 câu)
TỔNG QUAN CÁC BÀI THI:
Tên bài
File chương trình
File dữ liệu vào
File kết quả
Câu 1.
Công nhân
CONGNHAN.*
TT.INP
KQ.OUT
Câu 2.
Thăm bạn
THAMBAN.*
KANGAROO.INP
KANGAROO.OUT
Câu 3.
xếp hàng
XEPHANG *
XEPHANG.INP
XEPHANG.OUT
Câu 4.
Dãy nhị phân
DAYNHIPHAN. *
DAYNHIPHAN.INP
DAYNHIPHAN.OUT
Câu 5.
Đổi tiền
DOITIEN.*
DOITIEN.INP
DOITIEN.OUT
Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là Pascal, C++, Python hoặc phần mở rộng tương ứng với NNLT khác
Câu 1: Công nhân (4.0 điểm)
Diễn Giải:
Công ty A đưa rước cho N nhóm công nhân đi làm, nhóm thứ i cách công ty di km (i—1, 2, 3, …, N).
Công ty có M xe được đánh số từ 1 đến M (M>N) để phục vụ cho việc đưa rước các nhóm công nhân.
Xe thứ j có mức tiêu thụ xăng là vj đơn vị thể tích/km (j=l, 2, 3, . ., M). .
Yêu cầu: Hãy chọn N xe để phục vụ cho việc đưa các nhóm công nhân đi làm, mỗi xe chỉ phục vụ cho một nhóm, sao cho tổng chi phí xăng cần sử dụng là ít nhất. •
Dữ liệu: Vào file văn bản TT.INP: Ị
Dòng đầu tiên chứa hai số nguyên dương N, M (N<M<200);
Dòng thứ hai chứa các sô nguyên dương dl, d2,…, dN;
Dòng thứ ba chứa các số nguyên dương vl, v2, …, vM;
Các số trên cùng một dòng được ghi cách nhau bởi dấu cách. I
Kết quả: Ghi ra file văn bản KQ.OUT:
Dòng đầu tiên chứa tổng lượng xăng cần dùng cho việc đưa rước công nhân (không tính lượt về);
Dòng thứ 2 trở đi ghi chỉ số xe đã sử dụng để chở công nhân.
Ví dụ:
TT.INP
KQ.OUT
47
454
6 1115 12
2
15 13 19 10 11 20 9
4
5
7
Câu 2: Thăm bạn (4.0 điểm)
Diễn Giải:
Một chú Kangaroo muốn đi thăm một người bạn cách đó một khoảng n (đơn vị dm). Kangaroo chỉ có hai cách di chuyển, một là nhảy ngắn a (đơn vị dm), hai là nhảy dài b (đon vị dm).
Hỏi chú Kangaroo cần nhảy ít nhât bao nhiêu bước nhảy để đến được nhà người bạn (phải nhảy vừa đủ, không nhảy quá nhà bạn).
Dữ liệu vào từ file: INP gồm ba số nguyên dương n, a, b cách nhau một khoảng trắng (l<n<109, l<a< b<50).
Kết quả ra file: KANGAROO.OUT
Dòng 1 ghi tổng số bước nhảy ít nhất của chú
Dòng 2 cho biết số bước ngắn, số bước dài.
KANGAROO.INP
KANGAROO.OƯT
21 25
6
3 ngan, 3 dai
Câu 3: Xếp hàng ( 4.0 điểm )
Diễn giải:
Trong giờ sinh hoạt tập thể, lớp 9A có n học sinh (n<45) xếp thành hàng dọc.
Mỗi học sinh có chiều cao a[i] (i=l, 2, 3,….n).
Em hãy viết chương trình đếm số bạn có chiều cao bằng nhau nhiều nhất.
Dữ liệu vào từ file: XEPHANG.INP
Dòng thứ nhất chứa số tự nhiên n.
Dòng thứ hai gồm n số tự nhiên a[i], mỗi số ứng với chiều cao của từng bạn (đơn vị cm), các số cách nhau một khoảng trắng.
Kết quả ra file: XEPHANG.OUT
Dòng thứ nhất: Ghi tổng số bạn có chiều cao bằng nhau nhiều nhất.
Dòng số 2: Ghi các chiều cao tương ứng.
Ví dụ:
XEPHANG.INP
XEPHANG.OUT
10
3
160 156 158 160 159 158 159 160 158 161
158
160
Câu 4: Dãy nhị phân (4.0 điểm)
Diễn giải: Cho dãy nhị phân có độ dài là n. Hãy kiểm tra dãy nhị phân này có chứa các sô 0 và 1 xen kẽ nhau không?
Dữ liệu: Vào từ file văn bản DAYNHIPHAN.INP gồm :
Dòng đầu chứa số nguyên n (l<n<106)
Dòng thứ 2 chứa dãy nhị phân có độ dài n
Kết quả:
Ghi ra file văn ban DAYNHIPHAN.OUT chữa chữ “YES” nếu đó là dãy chứa các số 0 và 1 xen kẽ nhau, ngược lại ghi “NO”.
Dòng thứ 2 là số thập phân tương ứng được đổi từ hệ nhị phân sang hệ thập phân.
Lưu ý cách đổi số từ hệ nhị phân (ví dụ 1101) sang hệ thập phân:
1×23 + 1×22 + 0x21 +1×2° = 8+4+0+1=13
DAYNHIPHAN.INP
DAYNHIPHAN.OUT
5
YES
10101
21
Câu 5: Đổi tiền(4 0 điểm)
Diễn giải: Em hãy viết chương trình đổi số tiền N ( N là số nguyên và 0<=N<1000000) sang chuỗi tương ứng?
Thí sinh không được sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.
Đáp án tin học lập trình python câu 2 thăm bạn:
import sys
sys.stdin=open('KANGAROO.INP','r')
sys.stdout=open('KANGAROO.OUT','w')
n,a,b=map(int,input().split())
tong=0
k=[]
for i in range(1,n):
for j in range(1,n):
if i*a+j*b==n:
tong=i+j
k.append(tong)
Min=min(k)
for i in range(1,n):
for j in range(1,n):
if i*a+j*b==n and i+j==Min:
print(Min)
print(i,' ngan,',j,' dai',sep='')
break
Đáp án tin học lập trình python câu 3 xếp hàng:
import sys
sys.stdin=open('XEPHANG.INP','r')
sys.stdout=open('XEPHANG.OUT','w')
n=int(input())
a=list(map(int,input().split()))
b=a.copy()
i=0
while i<len(b)-1:
j=i+1
while j<len(b):
if b[i]==b[j]:
b.pop(j)
else:
j+=1
i+=1
c=[]
for i in range(len(b)):
c.append(a.count(b[i]))
Max=max(c)
dem=0
e=[]
for i in range(len(b)):
if a.count(b[i])==Max:
e.append(b[i])
dem+=1
if dem>0:
print(Max)
for i in sorted(e):
print(i)
Đáp án tin học lập trình python câu 4 dãy nhị phân:
import sys
sys.stdin=open('DAYNHIPHAN.INP','r')
sys.stdout=open('DAYNHIPHAN.OUT','w')
n=int(input())
s=input()
s=list(s)
dk=1
for i in range(len(s)-1):
if (s[i]=="1" and s[i+1]=='1') or (s[i]=="0" and s[i+1]=='0'):
dk=0
if dk==1:
print('Yes')
else:
print('No')
tong=0
for i in range(len(s)):
tong+=int(s[i])*(2**(len(s)-1-i))
print(tong)
Đáp án tin học lập trình python câu 5 đổi tiền:
import sys
sys.stdin=open('DOITIEN.INP','r')
sys.stdout=open('DOITIEN.OUT','w')
def chuadauhoa(s):
s=list(s)
a=[]
a.append(s[0].uper())
for i in range(1,len(s)):
a.append(s[i])
return a
s=input()
s=list(s)
print(s)
b=[]
for i in range(len(s)):
b.append(int(s[i]))
print(b)
a=['khong','mot','hai','ba','bon','nam','sau','bay','tam','chin']
c=[]
for i in b:
c.append(a[i])
print(c)
if len(c)>=3:
for i in range(len(c)):
if c[i]=='khong':
c[i]='le'
if len(c)==1:
print(c[0],end='')
elif len(c)==2:
if c[0]=='le':
print(c[0],c[1],end='')
else:
print(c[0],'muoi',c[1],end='')
elif len(c)==3:
if c[1]=='le':
print(c[0],'tram',c[1],c[2],end='')
else:
print(c[0],'tram',c[1],'muoi',c[2],end='')
elif len(c)==4:
if c[2]=='le':
print(c[0],'nghin',c[1],'tram',c[2],c[3],end='')
else:
print(c[0],'nghin',c[1],'tram',c[2],'muoi',c[3],end='')
elif len(c)==5:
if c[3]=='le':
print(c[0],'muoi',c[1],'nghin',c[2],'tram',c[3],c[4],end='')
else:
print(c[0],'muoi',c[1],'nghin',c[2],'tram',c[3],'muoi',c[4],end='')
elif len(c)==6:
if c[4]=='le' and c[1]=='khong':
print(c[0],'tram',c[1],'muoi',c[2],'nghin',c[3],'tram',c[4],c[5],end='')
elif c[1]=='le' and c[4]=='le':
print(c[0],'tram',c[1],c[2],'nghin',c[3],'tram',c[4],c[5],end='')
else:
print(c[0],'tram',c[1],'muoi',c[2],'nghin',c[3],'tram',c[4],'muoi',c[5],end='')
print(' dong')
Chú ý: bài đáp án chỉ có tính chất tham khảo bạn nào có cách giải hay hơn, hoặc có cách giải khác hãy đăng ký và để lại bình luận mình sẽ giải thích cho nhé !
Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !
Thầy Tấn Dân sẽ giải cho các em 10 đề thi và đáp án thi HSG ( học sinh giỏi ) tin học python lớp 10 THCS ( Trung học cơ sở ) cấp Huyện ở Tiền Giang cho các bạn tham khảo thêm nhé!
Danh sách 10 đề thi và đáp án thi HSG tin học python:
Các đề ôn thi để chuẩn bị thi Cấp Huyện thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!
Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là Free Pascal, c++, Python hoặc phần mở rộng tương ứng với NNLT khác.
Bài 1. (4 điểm) LỖ HỎNG CHỮ SỐ ?
Khái niệm:
Cho các chữ số từ 0 đến 9, nếu một chữ số bất kỳ có một đường khép kín thì ta gọi chữ số đó có 1 lô hông,
Chữ số có hai đường khép kín thì ta gọi chữ số đó có 2 lỗ hổng và chữ số không có đường khép kín nào thì ta gọi chư số đo có 0 lỗ hổng.
Ví dụ: Chữ số 0; 4; 6; 9 có 1 lỗ hổng.
Chữ số 8 có 2 lỗ hổng.Chữ số 1; 2; 3; 5; 7 có 0 lỗ hổng.
Yêu cầu: Cho số n (n <= 1O100), đếm xem số đó có bao nhiêu lỗ hổng.
Dữ liệu đầu vào: Nhập vào từ file APERTURE.INP giá trị số n.
Dữ liệu xuất ra : Xuất ra file OUT số các lỗ hổng.
Ví dụ:
APERTURE.INP
APERTURE.OUT
2456878989
10
11111222223333355555577777777777777
0
Bài 2: ( 4 điểm ) SỐ BẬC THANG ?
Khái niệm: Biết một số được gọi là số bậc thang nếu biểu diễn thập phân của nó có nhiều hơn một chữ số,
Theo thứ tự từ trái qua phải và chữ số đứng sau (bên phải) lớn hon chữ số đứng trước (bên trái) 1 hoặc 2 đơn vị.
Số thỏa điều kiện trên được gọi là số bậc thang.
Yêu cầu: Cho số nguyên dương n là số lượng các số cần kiểm tra (n<=1010) và một dãy các số cần kiểm tra bậc thang ai (ai <= 1010 ), dãy các sô cần kiểm tra ai được cách nhau 1 khoảng cách. Kiểm tra có bao nhiêu số ai trong dãy số trên thỏa điều kiện là số bật thang. Đặc biệt, nếu ai <=9 thì số bậc thang bằng 0.* Dữ liệu đầu vào: Nhập vào từ file STEP.INP, dòng thứ 1 chứa số nguyên dương n, dòng thứ 2 chứa dãy các số cần kiểm tra số bộc thang,- Dừ liệu đầu ra: Xuất ra file STEP.OUT số lượng các số bậc thang.
Khái niệm: Cho một số có dạng n= 9…78 trong đó có k chữ số (n<10250). Cho sổ n=998, số x được thành lập từ số n bằng cách ghép bình phương từng chữ số từ trái sang phải của số n, ta được số x=818164. tổng các chữ số của số x là 28.
Yêu cầu: Hãy tính tổng các chữ số của số x, x được tạo bằng cách ghi từng chữ số của n ở dạng bình phương theo thứ tự ghi số từ trái sang phải.
Dữ liệu đầu vào: Nhập vào từ file văn bản SUM_SQDIGIT.INP số k (2< k< 250)
SUM_SQDIGIT.INP
SUM_SQDIGIT.OUT
998
28
8967999999997432222
140
Hãy hỏi đáp thắc mắc tại nhóm đam mê lập trình python Việt Nam !
cộng đồng python việt nam
Bài 4: (4 điểm) XÂU ĐỒNG BỘ DÀI NHẤT ?
Khái niệm: Một xâu gọi là xâu đồng bộ, nếu xâu đó có tất cả ký tự giống nhau.
Yêu cầu: Cho xâu s, hãy đưa ra xâu con đồng bộ dài nhất ( nếu có nhiều xâu con đồng bộ dài nhất, ta đưa ra xâu con đồng bộ dài nhất đầu tiên tính từ bên trái).
Dữ liệu đầu vào: Nhập từ file văn bản SYNSTRING.INP xâu S ( 1<= độ dài xâu s <=105
Dữ liệu đầu ra: Xuất ra file văn bàn SYNSTRING.OUT, xâu con dài nhất là xâu đồng bộ trong s.
Ví dụ:
SYNSTRING.INP
SYNSTRING.OUT
02203
22
jhfgkjgflkhgeeehhkkkkkaaaaakkkk
kkkkk
Bài 5. (4 điểm) CHU VI VÀ DIỆN TÍCH ĐA GIÁC LỒI ?
Khái niệm: Đa giác lồi là đa giác thuộc về một phía của đường thẳng chứa cạnh bất kì của da giác.
Yêu cầu: Lập trình giải quyết bài toán tính chu vi và diện tích da giác lồi bất kỳ với số cạnh n>=3 và được cho bởi tọa độ đỉnh Ai, A2j A3,An.
Tọa độ các đỉnh của đa giác lồi tương ứng là Ai(xl,yl); A2(x2,y2); A3(x3,y3); …;An(xn,yn), (với n là số đỉnh).
Chu vi da giác lồi là tổng các cạnh=A1A2+A2A3+A3A(+…+A n.]An+AnAi
Diện tích da giác lồi bằng tổng diện tích các tam giác A1A2A3, A1A3A4,A1A4A5…A1An-1An
Độ dài AiA2=V(xl – xiy + (y 1 – y2Ỵ\ các cạnh còn lại tương tự.
Cả chu vi và diên tích được làm tròn đến hàng đơn vị. Lưu ý chi làm tròn chu vi và diện tích không làm tròn độ dài cạnh; khi xuất kết quà chu vi, diện tích vào file mới được phép làm tròn và thống nhất làm tròn đến hàng đơn vị theo quy tắc làm Ưòn toán học.
Dữ liệu đầu vào: Dòng đầu của tệp PERI_POLYGON.INP là số đỉnh, các dòng còn lại là tọa độ (xi,yi) của các đỉnh đa giác lồi.
Dữ liệu đầu ra: Dòng đầu của tệp PERI_POLYGON.OUT là chu vi, dòng thứ hai là diện tích.
Ví dụ:
PERI_POLYGON.INP
PERI_POLYGON.OUT
3
184
30 30
1462
75 15
90 75
4
87
9 16
348
24 11
42 14
42 31
HẾT
Thí sinh được sử dụng các loại máy tính theo quy định của Bộ Giáo dục và Đào tạo cho phép, thí sinh không được sứ dụng tài liệu. Cán bộ coi thi không được giải thích gì thêm.
Đáp án thi python bài 1 LỖ HỎNG CHỮ SỐ ?
import sys
sys.stdin=open('APERTURE.INP','r')
sys.stdout=open('APERTURE.OUT','w')
s=list(input())
tong=0
for i in range(len(s)):
if s[i]=='0' or s[i]=='4' or s[i]=='6'or s[i]=='9':
tong+=1
elif s[i]=='8':
tong+=2
print(tong)
Đáp án thi python Bài 2: SỐ BẬC THANG ?
import sys
sys.stdin=open('STEP.INP','r')
sys.stdout=open('STEP.OUT','w')
def ktbatthang(n):
s=str(n)
if len(s)>1:
dem=0
for i in range(len(s)-1):
if int(s[i+1])-int(s[i])==1 or int(s[i+1])-int(s[i])==2:
dem+=1
if dem==len(s)-1:
return True
else:
return False
else:
return False
n=int(input())
a=list(map(int,input().split()))
dem=0
for i in range(len(a)):
if ktbatthang(a[i]):
dem+=1
print(dem)
Đáp án bài 3. TỔNG BÌNH PHƯƠNG CHỮ SỐ ?
import sys
sys.stdin=open('SUMSQDIGIT.INP','r')
sys.stdout=open('SUMSQDIGIT.OUT','w')
def binhphuong(s):
n=int(s)
n=n**2
n=str(n)
tong=0
for i in range(len(n)):
tong+=int(n[i])
return tong
s=input()
s=list(s)
tong=0
for i in range(len(s)):
tong+=binhphuong(s[i])
print(tong)
Đáp án bài 4: XÂU ĐỒNG BỘ DÀI NHẤT ?
import sys
sys.stdin=open('DELONE.INP','r')
sys.stdout=open('DELONE.OUT','w')
def ktsub(s):
dem=0
t=len(s)
s=list(s)
for i in range(len(s)-1):
if s[i]==s[i+1]:
dem+=1
return (t-1)==dem
s=list(input())
b=[]
for i in range(len(s)):
for j in range(i+1,len(s)):
sub=s[i:j]
if ktsub(sub) and len(sub)>1:
b.append(sub)
M=max(b)
print(*M,sep="")
Đáp án bài 5: CHU VI VÀ DIỆN TÍCH ĐA GIÁC LỒI ?
import sys,math
sys.stdin=open('PERIJPOLYGON.INP','r')
sys.stdout=open('PERIJPOLYGON.OUT','w')
n=int(input())
x=[]
y=[]
for _ in range(n):
s=input().split()
x.append(s[0])
y.append(s[1])
cv=0
for i in range(len(x)):
cv+=math.sqrt((int(x[i-len(x)+1])-int(x[i]))**2+(int(y[i-len(x)+1])-int(y[i]))**2)
print('%0.0f'%cv)
i=0
tong_p=0
while i<len(x):
if len(x)-1==i:
tong_p+=(int(x[i])*int(y[0]))
i+=1
else:
tong_p+=(int(x[i])*int(y[i-len(x)+1]))
i+=1
tong_Q=0
j=0
while j<len(y):
if len(y)-1==j:
tong_Q+=(int(y[j])*int(x[0]))
j+=1
else:
tong_Q+=(int(y[j])*int(x[j-len(y)+1]))
j+=1
dt=(abs(tong_p-tong_Q))/2
print('%0.0f'%dt)
Chú ý: bài tập chỉ mang tính chất tham khảo nhen các bạn! bạn nào có cách giải hay hơn hoặc có thắc mắc xin hãy để lại bình luận phía dưới mình sẽ giải đáp ạ ! xin chân thành cảm ơn !
Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !
Thật là thiếu sót nếu các bạn không ” Tự học ngôn ngữ lập trình Python từ cơ bản đến nâng cao !” ngay bây giờ. Hiện tại kỹ thuật viên lập trình đang là nghề ” HOT NHẤT “ thường có mức lương khá cao từ trung bình có thể 20 triệu, thậm chí kỹ thuật lập trình giỏi xuất sắc lên tới hơn 100 triệu là chuyện bình thường! Vậy còn chờ gì nữa mà không học ngôn ngữ lập trình Python ” NGAY VÀ LUÔN NÀO ANH EM!”
Các đề ôn thi để chuẩn bị thi Cấp Huyện thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!
Top 10 ngôn ngữ lập trình có mức lương cao và sử dụng nhiều nhất thế giới?
Hiện tại Python là ngôn ngữ lập trình đời mới bởi vì ngôn ngữ lập trình Python dễ học hơn nhiều so với lập trình Pascal và lập trình C++
Cho nên ngôn ngữ lập trình Python đã và đang chiếm lĩnh mức lương cao hàng đầu thế giới.
Mặc dù Python là đứa con sinh sau đẻ muộn nhưng ngôn ngữ lập trình Python đang không ngừng phát triển đã và đang vực mặt các đàn anh ra đời trước đứng xếp thứ top 1 trên thế giới năm 2/2025 về sự lựa chọn.
Để nói lên Python đang là ngôn ngữ lập trình được các chuyên gia lựa chọn hàng đầu thế giới.
Mình sẽ cố gắng viết cho các bạn thật dễ hiểu nhất có thể nhé!
Vì đây là mình viết bằng ngôn ngữ bằng Tiếng Việt cho các bạn dễ hiểu.
Ngôn ngữ lập trình Python là gì?
Python là một ngôn ngữ lập trình bậc cao, thông dịch, và đa mục đích. Nó được tạo ra bởi Guido van Rossum và ra mắt lần đầu tiên vào năm 1991. Python nổi bật với cú pháp đơn giản, dễ đọc, dễ học, giúp lập trình viên tập trung vào giải quyết vấn đề dễ dàng hơn.
Đặc điểm chính của Python:
Dễ đọc, dễ viết: Cú pháp gần gũi với ngôn ngữ tự nhiên.
Đa nền tảng: Chạy được trên Windows, macOS, Linux,…
Hỗ trợ lập trình đa phong cách: Hướng đối tượng, lập trình hàm, lập trình thủ tục.
Thư viện phong phú: Có sẵn nhiều thư viện mạnh mẽ phục vụ cho khoa học dữ liệu, AI, web, tự động hóa,…
Cộng đồng lớn: Rất nhiều tài liệu, khóa học và diễn đàn hỗ trợ.
Python dùng để làm gì?
Phát triển trí tuệ nhân tạo (AI) & Học máy (Machine Learning)
Phân tích và xử lý dữ liệu lớn (Big Data)
Phát triển web (Django, Flask, FastAPI,…)
Tự động hóa tác vụ (quét dữ liệu, thao tác file, gửi email,…)
Viết ứng dụng di động (Kivy, BeeWare)
Phát triển trò chơi (Pygame)
Nếu bạn muốn học lập trình Python, đây là lộ trình phù hợp cho người mới bắt đầu:
Cài đặt phần mềm lậptrình Python bao gồm:
PyCharm EDU là phần mềm lập trình dễ sử dụng nhất mà ở Việt Nam mình đang sử dụng trong thi cấp huyện và cấp tỉnh các bạn có thể tải phần mềm ở phần bên dưới! Tải đường dẫn tốc độ cao Google Driver ! Các bạn nào không biết có thể liên hệ mình ngay qua số điện thoại 093.717.9278 ( gặp Tấn Dân cử nhân công nghệ thông tin)
Phiên bản dành cho Windows 10 và Windows 11:
Phiên bản dành cho Windows 7:
✅ Làm quen với cú pháp cơ bản (biến, kiểu dữ liệu, toán tử) ✅ Viết chương trình đơn giản (in dòng chữ, nhập dữ liệu từ bàn phím)
Kiểu str: Kiểu chuỗi, để trong nháy đôi hoặc nháy đơn
Ví dụ: “Tin học”, ‘ABc’
Kiểubool: Kiểu luận lý, để lưu True hoặc False
Ví dụ 1: t1=True
Ví dụ 2: t2=False
Bài 2: cách sửdụng biến trong python:
Trong Python một biến không cần khai báo kiểu dữ liệu,
khi ta gán giá trị thì tự động Python sẽ nội suy ra kiểu dữ liệu của biến. Như vậy một biến có thể có nhiều kiểu dữ liệu tùy thuộc vào giá trị mà ta gán.
Ví dụ như:
x=30
name = “Lê Tèo“
a = b = c = 1996
name, age, male = “Lê Tèo”, 22 , True
Các biến được cho dễ dàng như:
Ví dụ 1:
x=5
print(x+2)
Ví dụ 2:
x= ‘ Teo‘
print(‘ Lê‘+x)
Ví dụ 3:
x=True
print(x)
Ví dụ 4:
x=5.5
print(x+1)
Bài 3: cách nào để ghichúlệnhtrong Python?
Cách 1: Trong Python dùng dấu # để cho phép ta ghi chú 1 dòng:
Cách ghi chú trong python là dấu #
Cách 2: Để ghi chú nhiều dòng lệnh, ta dùng “”” “”” (3 cặp nháy đôi) hoặc ”’ ”'(3 cặp nháy đơn)
Cách ghi chú dòng lệnh trong python
Bài 4: cách nào để sử dụng toán tử thường dùng trong Python?
Trong ngôn ngữ lập trình python luôn sử dụng các toán tử ví dụ như: cộng, trừ, nhân, chia, chia lấy phần hết, chia lấy phần dư,… để nói lên tóm tắt cho dễ sử dụng trong quá trình lập trình
Toán tử số học cơ bản trong python:
các loại toán tử số học trong python
Ví dụ 1: Phép cộng (+)
Nhập số thứ nhất: 12
Nhập số thứ hai: 4.9
Kết quả: Tổng = 16.9
a = float(input("Nhập số thứ nhất: "))
b = float(input("Nhập số thứ hai: "))
tong = a + b
print("Tổng =", tong)
Ví dụ 2: Phép trừ (-)
a = 3.98
b = 4
Kết quả:
Hiệu = -0.02
a = float(input("Nhập a: "))
b = float(input("Nhập b: "))
hieu = a - b
print("Hiệu =", hieu)
Ví dụ 3: Phép trừ (-)
a = 2
b = 3.4
Kết quả:
Tích = 6.8
a = float(input("Nhập a: "))
b = float(input("Nhập b: "))
tich = a * b
print("Tích =", tich)
Ví dụ 4: Phép chia (/)
a = 9
b = 2
Kết quả:
Thương = 4.5
a = float(input("Nhập a: "))
b = float(input("Nhập b: "))
thuong = a / b
print("Thương =", thuong)
Ví dụ 5: Chia lấy phần nguyên (//)
9 // 2
Kết quả:
Phần nguyên = 4
a = int(input("Nhập a: "))
b = int(input("Nhập b: "))
print(a // b)
Ví dụ 6: Chia lấy phần dư (%)
9 % 2
Kết quả: 1
a = int(input("Nhập a: "))
b = int(input("Nhập b: "))
print(a % b)
Ví dụ 7: Lũy thừa (**)
3 ** 4
Kết quả: 81
a = int(input("Nhập cơ số: "))
b = int(input("Nhập số mũ: "))
print(a ** b)
a = float(input("Nhập số thứ nhất: "))
b = float(input("Nhập số thứ hai: "))
print("Cộng:", a + b)
print("Trừ :", a - b)
print("Nhân:", a * b)
print("Chia:", a / b)
Ví dụ 9: Tính diện tích hình chữ nhật
Dài = 8
Rộng = 5
Kết quả:
Diện tích = 40
dai = float(input("Chiều dài: "))
rong = float(input("Chiều rộng: "))
dien_tich = dai * rong
print("Diện tích =", dien_tich)
Ví dụ 10: Tính chu vi hình chữ nhật
Dài=8
Rộng=5
Kết quả:
Chu vi = 26
dai = float(input("Chiều dài: "))
rong = float(input("Chiều rộng: "))
chu_vi = (dai + rong) * 2
print("Chu vi =", chu_vi)
Ví dụ 11: Tính tuổi
Nhập năm sinh: 2008
Nhập năm hiện tại: 2026
Kết quả:
Bạn 18 tuổi
nam_sinh = int(input("Nhập năm sinh: "))
nam_hien_tai = int(input("Nhập năm hiện tại: "))
tuoi = nam_hien_tai - nam_sinh
print("Bạn", tuoi, "tuổi")
gia = int(input("Giá một sản phẩm: "))
so_luong = int(input("Số lượng: "))
gia *= so_luong
print("Thành tiền =", gia)
Ví dụ 12: Tăng diện tích
Diện tích = 50
Gấp 3 lần
Kết quả:
Diện tích mới = 150
dien_tich = int(input("Diện tích ban đầu: "))
dien_tich *= 3
print("Diện tích mới =", dien_tich)
Tài liệu học Python toán tử gán phần 2
diem = int(input("Điểm ban đầu: "))
tru = int(input("Điểm bị trừ: "))
diem -= tru
print("Điểm còn lại =", diem)
3. Toán tử trong so sánh của python:
Toán tử
Mô tả
Ví dụ
==
So sánh bằng
5 == 5 => kết quả True
!=
So sánh không bằng
5 != 5 => kết quả False
<
So sánh nhỏ hơn
5 < 5 => kết quả False
<=
So sánh nhỏ hơn hoặc bằng
5 <= 5 => kết quả True
>
So sánh lớn hơn
5 > 5.5 => kết quả False
>=
So sánh lớn hơn hoặc bằng
113>= 5 => kết quả True
is
Trả về true nếu các biến ở hai bên toán tử cùng trỏ tới một đối tượng(hoặc cùng giá trị), nếu không là false
x=5
y=5
print(x is y)
=>kết quả là True
is not
Trả về false nếu các biến ở hai bên toán tử cùng trỏ tới một đối tượng(hoặc cùng giá trị), nếu không là true
x=5
y=5
print(x is not y)
=>kết quả là False
4. Toán tử logic trong python:
Toán tử
Mô tả
Ví dụ
and
Toán tử Và: Nếu cả hai điều kiện là True thì kết quả sẽ là True
x=2016
print(x%4==0 and x%100!=0)
=>True
or
Toán tử Hoặc: Chỉ cần một điều kiện True thì nó True, tất cả điều kiện False thì nó False
x=2016
print((x%4==0 and x%100!=0) or x%400==0)
=>True
not
Toán tử Phủ định. Thông thường nó được dùng để đảo ngược trạng thái logic của toán hạng
x=4
if (not x>=5):
print(“Hỏng”)
else:
print(“Đậu”) ==> Hỏng
Bài 5: cách nhập dữ liệu từ bàn phím vào python như thế nào?
1) Hàm input() nhập và xuất ra print():
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() thường là kiểu chuỗi, 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.
print(“Nhập họ tên:”)
s=input()
print(“Xin chào:”,s)
2) Hàm kiểu số nguyên int() và kiểu số thực float():
Muốn đưa về số int
print(“Nhập vào một số nguyên:”)
x=int(input())
print(“x+2:”,x+2)
2. Muốn đưa về số float
x=float(input(“Nhập vào một số thực:”))
print(“x+3:”,x+3)
3. Nhập 1 số nguyên
print(“Nhập vào một số nguyên:”)
x=int(input())
print(“x+2:”,x+2)
4. Nhập 2 số nguyên trên 1 dòng
print(“Nhập vào hai số nguyên trên 1 dòng:”)
x, y=map(int,input().split())
print(“x+2:”,x+2)
print(“y*2:”,y*2)
Bài 6: cách xuất dữ liệu ra màn hình trong python là sao?
Xuất ra nhiều nội dung cho nhiều biến:
Thông thường, hàm print(“Nội dung 1”, “nội dung 2”) sẽ in các chuỗi, biến bên trong cặp dấu ngoặc trên 1 dòng (giống như lệnh writeln trong pascal)
s=input(“Nhập họ tên:”)
print(“Xin chào:”,s)
Nếu ta muốn in ra màn hình như lệnh write trong pascal thì thêm tham số end=“” ở cuối.
Vd: print(“Xin chào:”, s, end=“”)
Lệnh print(‘a’*10) sẽ in 10 chữ a ra màn hình
2. Dùng lệnh sep=”” để xuất ra giá trị sát vô không khoảng cách:
Phân cách giữa các giá trị trong print()Vd:x,y,z=1,2,3print(x,y,z) # sau khi in ra có 1 khoảng cách là: 1 2 3x,y,z=1,2,3print(x,y,z, sep=“”) # sau khi in ra sát vô không có khoảng cách là: 123
3. Xuất ra có định dạng bao nhiêu số thập phân ( xuất ra số dư ):
Định dạng số thập phân
x=123.426
print(“%0.2f”%x) à 123.43 # nếu mình nhập số 2 thì ra 2 số dư
print(“%0.1f”%x) à 123.4 # nếu mình nhập số 1 thì ra 1 số dư
Bài 7: cách dùng câu lệnh if ( nếu ) trong python như thế nào?
if ( điều kiện đúng hoặc sai):
chạy tiếp điều kiện đúng theo yêu cầu của bài
Chú ý: nếu điều kiện đúng sẽ chạy thực thi lệnh câu trong if, còn nếu điều kiện sai sẽ không chạy
Ví dụ 1:
Web học Python tiếng Việt
dòng 1 nhập điểm trung bình kiểu số thực:
dòng 2 nếu điểm trung bình lớn hơn bằng 5
nếu điều kiện đúng thì in ra:
Bạn đã đậu!
Hú hồn!
nếu điều kiện sai ( ví dụ: dtb mình nhập là 3) sẽ không làm 2 câu lệnh bên dưới.
Ví dụ 2:
x = int(input(“Nhập một số: “))
if x> 0:
print(x, “là số dương.”)
print(“Cám ơn bạn đã sử dụng app!”)
Bài 8: dùng câu lệnh if else ( nếu thì ) trong python cách nào?
dtb=float(input(“Nhập điểm trung bình:”))
if dtb>=5:
print(“Bạn đã Đậu”)
print(“Hú hồn!”)
else:
print(“Chúc bạn may mắn lần sau”)
print(“Đi phụ hồ nhé!”)
print(“Hẹn gặp lại!”)
Giải thích: nếu ta nhập điểm trung bình >=5 thì in 2 câu lệnh “bạn đã đậu ” và ” Hú hồn!” còn ngược lại <5 thì in 3 câu lệnh bên dưới.
Bài 9: dùng câu lệnh if else lòng nhau trong python cách nào?
num = float(input(“Nhập một số: “))
if num >= 0:
if num == 0:
print(“Số Không”)
else:
print(“Số dương”)
else:
print(“Số âm”)
Giải thích: nhập một số vô, nếu số đó >=0 thì chạy câu lệnh đúng trong if là nếu số =0 thì in ra ” Số Không” còn ngược lại in ra ” Số dương”. Còn ngược lại nếu số <0 thì in ra “Số âm”.
Bài 10: cách dùng if – elif (nếu – ngược lại ) trong python làm thế nào?
dtb=float(input(“Nhập điểm trung bình:”))
if dtb>=8:
print(“Bạn đạt loại Giỏi”)
elif dtb>=6.5:
print(“Bạn đạt loại Khá”)
elif dtb>=5:
print(“Bạn đạt loại Trung bình”)
print(“Hú hồn!”)
else:
print(“Cố gắng ở lần sau nhé!”)
Giải thích: nhập điểm trung bình kiểu số thực, nếu điểm trung bình >=8 thì in ” Bạn đạt loại Giỏi”, nếu dtb>=6.5 thì in ra ““Bạn đạt loại Khá”, nếu dtb>=5 thì in ra “Bạn đạt loại Trung bình” và “Hú hồn!”, ngược lại tất cả các ý trên thì in ra “Cố gắng ở lần sau nhé!”
Bài 11: Câulệnhlặp for… range ra sao?
1) Câulệnhlặp for và cú pháp hàm range:
Hàm for sử dụng range để định nghĩa vùng dữ liệu lặp và bước lặp
Cú pháp hàm range(giá trị bắt đầu, giá trị kết thúc, bước chạy)
👉 Đây là bước chuyển từ việc chỉ in số sang xử lý số trong vòng lặp.
14. Đếm từ 10 về 1
Ví dụ 14
for n in range(10, 0, -1):
print(n)
Kết quả:
10
9
8
7
6
5
4
3
2
1
Có thể sử dụng để mô phỏng:
10
9
8
...
3
2
1
START!
Code:
for n in range(10, 0, -1):
print(n)
print("START!")
15. Một ví dụ giúp học sinh tự đoán kết quả
Ví dụ 15
Không chạy máy, hãy đoán kết quả:
for n in range(2, 10, 2):
print(n)
Phân tích
Bắt đầu:
2
Mỗi lần cộng 2:
2 → 4 → 6 → 8 → 10
Nhưng 10 không còn nhỏ hơn 10.
Vậy:
2
4
6
8
✅ Đáp án:
2 4 6 8
16. Bài tập tổng hợp
Sau khi học các ví dụ trên, có thể cho học sinh tự làm.
Bài 1
In các số từ 1 đến 20.
for n in range(1, 21):
print(n)
Bài 2
In các số chẵn từ 2 đến 20.
for n in range(2, 21, 2):
print(n)
Bài 3
In các số lẻ từ 1 đến 19.
for n in range(1, 20, 2):
print(n)
Bài 4
Đếm ngược từ 20 về 1.
for n in range(20, 0, -1):
print(n)
Bài 5
Tính tổng từ 1 đến 10.
tong = 0
for n in range(1, 11):
tong += n
print(tong)
Kết quả:
55
⭐ Công thức cần nhớ
Học sinh chỉ cần nhớ 3 dạng quan trọng nhất:
Dạng 1: range(stop)
range(5)
→
0 1 2 3 4
Dạng 2: range(start, stop)
range(1, 6)
→
1 2 3 4 5
Dạng 3: range(start, stop, step)
range(1, 10, 2)
→
1 3 5 7 9
Hoặc:
range(10, 0, -1)
→
10 9 8 7 6 5 4 3 2 1
⭐ Mẹo nhớ cực nhanh
START → STOP → STEP Bắt đầu → Dừng trước → Bước nhảy
Đặc biệt:
🔴 STOP không bao giờ được lấy.
Ví dụ:
range(1, 10)
không có 10.
range(1, 11)
mới có 10.
Ví dụ 3: Tính tổng các 2 số từ m đến n
m,n=map(int,input().split())
tong=0
for i in range(m,n+1):
tong+=i
print('tổng=',tong)
Bài 12: Cách dùng câu lệnh while (trong khi) làm sao?
Cú pháp cách dùng hàm while:
while (điều kiện của bài):
Chạy tiếp tục khi đúng điều kiện của bài
Ta có thể kết thúc vòng while bằng cách đưa đưa điều kiện về saihoặc dùng lệnh break để thoát
Ví dụ : câu lệnh lặp while
Viết chương trình yêu cầu nhập vào một số nguyên dương [1..10], nếu nhập sai yêu cầu nhập lại. Khi nhập đúng thì xuất ra bình phương của giá trị mới nhập vào.
Cách làm 1:
x=0
while x<1 or x>10:
x=int(input("Nhập một số nguyên x từ 1 đến 10"))
print(pow(x,2))
Cách làm 2:
x=0
while not (1<=x<=10):
x=int(input("Nhập một số nguyên x từ 1 đến 10"))
print(x**2)
Ví dụ: 3 tổng các số từ 1 đến số thứ n
n=int(input())
s=0
i=1
while i<=n:
s+=i
i+=1
print('tổng=',s)
Bài 13: Hàm sử dụng câu lệnh break (phá vỡ) là gì?
Hàm break là lệnh đặc biệt dùng để thoát khỏi vòng lặp trực tiếp chứa nó khi đạt được mức yêu cầu nào đó.
Gặp lệnh break, chương trình sẽ không thực hiện bất cứ lệnh nào bên dưới nó, mà thoát luôn khỏi vòng lặp.
Ví dụ: Viết chương trình vòng lặp vĩnh cửu cho phép phần mềm chạy liên tục, khi nào hỏi thoát mới thoát phần mềm:
while True:
a=int(input('nhập giá trị:'))
print('Giá trị a bạn nhập là=',a)
s=input('Muốn tiếp tục phần mềm không? nếu nhấn k thoát, nhấn t tiếp tục=')
if s=='k':
break
print('hẹn gặp lại nhé!')
Bài 14: Cách dùng câu lệnh continue (tiếp tục) như thế nào?
Câu lệnh continue là từ khóa đặc biệt dùng để nhảy sớm tới lần lặp kế tiếp,
Các lệnh bên dưới continue sẽ không được thực thi.
Lưu ý khác với break, gặp break thì ngừng luôn vòng lặp,
Gặp continue chỉ dừng lần lặp hiện tại đang dở dang để chuyển qua lần lặp tiếp theo.
Vídụ: Tính tổng các số lẻ từ 1->15, ngoại trừ số 3 và số 11
tong=0
for i in range(1,16,2):
if i==3 or i==11:
continue
tong+=i
print(tong)
Bài 15: Cách dùng vòng lặp for và else (ngược lại) ra sao?
khi ta chạy vòng lặp for , nếu không có điều kiện trong vòng lặp for thì ta dùng else ( ngược lại )
Ví dụ: Cho dãy số nguyên, nhập thêm số nguyên x. Tìm xem trong dãy số đã cho có x hay không?
a=[2,5,1,3,4]
x=int(input("Nhập số cần tìm"))
for i in range(len(a)):
if x ==a[i]:
print ("Có ", x, " ở vị trí ",i)
break
else:
print ("Không tìm thấy")
Bài 16: Cách dùng câu lệnh while ( trong khi) và else ( ngược lại) như thế nào?
Ví dụ: Nhập số nguyên x. Kiểm tra xem x có phải là số nguyên tố không ?
x=int(input("Nhập số nguyên"))
i=2
while i<x:
if x%i==0:
break
i+=1
else:
print(x, " là số nguyên tố")
if i<x:
print(x, " Không là số nguyên tố")
Bài 17: Cách sử dụng list ( mảng ) trong python như thế nào?
1)Ta có 4 loại kiểu dữ liệu thường dùng:
Hàm list( mảng ) trong Python không giới hạn bao nhiêu phần tử.
Hàm list có thể chứa bất kỳ kiểu dữ liệu nào.
khai báo mảng rỗng:
a=[]
Khai báo mảng có các giá trị:
a=[2,-3,0,5,1]
Khai báo mảng có 10 phần tử với giá trị mặc định là 2:
a=[2]*10 ( thì trong mảng a có 10 phần tử số 2)
Khai báo mảng có 5 phần tử có giá trị mặc định là k:
a=[‘k’]*5 ( thì trong mảng a có chữ k)
2)Cách truy cập các phần tử trong mảng a[index]:
Ví dụ: a=[2,-3,0,4,-1]
print(a[0]) (sẽ in ra số 2)
print(a[3]) (sẽ in ra số 4)
3) Cách thay đổi giá trị của một phần tử trong mảng a[vị trí]=số:
Ví dụ: a=[2,-3,0,4,-1]
a[2]=5 ( thì mảng a lúc này trở thành a=[2,-3,5,4,-1]
4) Cách lấy tổng số phần tử của mảng a ta dùng hàm len(a)
Ví dụ mảng a=[2,-3,0,4,-1,9]
print(len(a)) ( thì tổng các phần tử của mảng a là 6)
5) Cách kiểm tra 1 giá trị nào đó có tồn tại trong mảng a hay không?
Ví dụ: tìm phần tử x có trong mảng a hay không? Nếu có thì in ra vị trí, nếu không có thì in ” không tồn tại x trong mảng a”
a = ["apple","banana","cherry"]
if "apple" in a:
print("Yes, 'apple' is in the fruits a")
a = [1,5,4, 7, 6]
x=7
if x in a:
print('Co', x, 'o vi tri',a.index(x))
else:
print('Khong ton tai x trong mang a')
6) Cách dùng hàm insert ( chèn thêm ) trong mảng a.
Muốn chèn thêm một giá trị mới vào vị trí thích hợp ta sử dụng cú pháp
insert(vị trí muốn chèn, giá trị muốn chèn):
Ví dụ:
a=[1,2,3]
print(a) ( mảng a đang có các giá trị [1,2,3] )
a.insert(2,9) ( chèn thêm giá trị số 9 ở vị trí thứ 2)
print(a) ( mảng a bây giờ sẽ trở thành [1,2,9,3] )
a.insert(0,17)
print(a) (vậy mảng a trở thành [17,1,2,9,3])
7) Cách sử dụng phương thức append ( nối thêm) trong mảng a
Nghĩa là ta thêm giá trị mới ở cuối danh sách:
Ví dụ:
a=[1,2,3]
a.append(-113)
print(a) ( thì trong mảng a trở thành [1,2,3,-113])
8) Cách sử dụng phương thức pop trong mảng a
Nghĩa là xóa giá trị có trong thứ tự index trong danh sách
Ví dụ:
a=[1,3,2,5]
a.pop(1)
print(a) ( mảng a giờ trở thành [1,2,5])
9) Cách sử dụng phương thức remove( xóa giá trị ) trong mảng:
Nghĩa là remove( xóa) giá trị trong danh sách
Ví dụ:
a=[1,3,2,5,7]
a.remove(5)
print(a) ( thì mảng a giờ trở thành [1,3,2,7])
10) Cách chạy trong mảng:
print("*"*20)
a=[5,7,2,9,6,3,10,17,16]
for x in a:
print(x,end=' ')
print()
print('*'*20)
for i in range(len(a)):
x=a[i]
print(x,end=' ')
print()
print('*'*20)
for i in range(len(a)-1,-1,-1):
x=a[i]
print(x,end=' ')
Ví dụ: Nhập vào một số nguyên nếu không đúng số nguyên thì nhập lại ( nhập khi nào đúng số nguyên mới được nếu không thôi chương trình kêu nhập hoài tới cháy máy tính mới ngưng)
while True:
try:
x = int(input('Nhập một số nguyên: '))
break
except ValueError:
print(" Đó không phải số nguyên. Làm lại...")
Kết quả:
Nhập một số nguyên: 5.6
Đó không phải số nguyên. Làm lại...
Nhập một số nguyên: 5
Vậy là xong 21 bài viết mỏi cả 2 tay quá rồi ! các anh em nào muốn học Python online nhớ “LIÊN HỆ MÌNH NGAY ” 0937.179.278 (gặp Tấn Dân ) ủng hộ mình nhé !
Tải Ngay Giáo trình tài liệu tự học Python tiếng việt từ cơ bản đến nâng cao tập tin PDF :
Các bạn có thể tải ngay giáo trình tài liệu tự học Python bằng tiếng việt để các bạn có thể tự học tại nhà tập tin PDF
Tài liệu Python PDF
Hoặc bạn cũng có thể sử dụng tập tin PowerPoint cho dễ xem nhé !
Tài liệu Python PowerPoint
Nếu có vấn đề gì không hiểu hãy liên hệ ngay mình, mình sẽ hướng dẫn tận tình cho bạn nhé!
Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !