Q a m a t h

Loading...
Vui lòng chờ trong giây lát!

Bài 4 – Cấu trúc lặp

Python
là một ngôn ngữ lập trình đa mẫu hình, lập trình hướng đối tượng và lập trình cấu trúc được hỗ trợ hoàn toàn, và nhiều tính năng của nó cũng hỗ trợ lập trình hàm và lập trình hướng khía cạnh (bao gồm siêu lập trình và siêu đối tượng (phương thức thần kỳ)).Các mẫu hình khác cũng được hỗ trợ thông qua các phần mở rộng, bao gồm thiết kế theo hợp đồng và lập trình logic.

1. Lặp với số lần biết trước – Câu lệnh for
a. Hàm range
– Cú pháp:
range([<start>],<end>,[<step>])

– Ý nghĩa: Hàm tạo ra dãy giá trị có thể đếm được
– Một số dạng của hàm range như sau:
Hàm range Ý nghĩa
range(0,n) Dãy các giá trị từ 0, 1, 2, … đến n-1
range(1,n,2) Dãy các giá trị từ 1, 3, 5, … đến bé hơn hoặc bằng n-1
range(n,0,-1) Dãy các giá trị từ n, n-1, …, đến 1 (giảm dần)
range(n) Dãy các giá trị từ 0, 1, 2, … đến n-1 giống range(0,n) hoặc range(0,n,1)
Một số ví dụ về hàm range
b. Câu lệnh for
– Cú pháp:
for <biến vòng lặp> in <dãy giá trị>:
<Dãy các lệnh>

– Trong đó <dãy giá trị> có thể là hàm range, xâu hoặc mảng.
– Ý nghĩa: Biến vòng lặp có giá trị lần lượt từ giá trị đầu đến giá trị cuối của dãy giá trị, mỗi lần lặp thì thực hiện dãy các lệnh trong for.
– Ví dụ:
#1
for i in range(n): print(“Python”)
#Xuất ra màn hình n chữ Python, i có giá trị từ 0 đến n-1>
#2
s = “VniTeach”
for ch in s: print(ch)
#Xuất ra màn hình trên mỗi dòng các chữ cái V, n, i, T, e, a, c, h
#3
s = 0;
for i in range(0,101,2): s += i
#Tính tổng các số chẵn từ 0 đến 100
#4
#Đếm các ước số thực sự của n
dem = 0
for i in range(1,n):
if n%i == 0: dem += 1
print(f“Số các ước số thực sự của {n} là {dem}”)
#5
for x in range(1,100//5):
for y in range(1,100//3):
z = 100 – (x + y)
if 15*x + 9*y + z == 300: print(f”{x} {y} {z}”)

2. Lặp với số lần chưa biết trước – Câu lệnh while
– Cú pháp:
while <điều kiện>:
<Dãy các lệnh>

– Ý nghĩa: Trong khi điều kiện còn đúng thì dãy các lệnh còn được thực hiện
Ví dụ 1: Tính và đưa kết quả ra màn hình tổng:
1/a + 1/(a+1) + 1/(a+2) +...+ 1/(a+n) +...

cho đến khi 1/(a+n) < 0,0001 , với a nhập vào từ bàn phím.
Chương trình:
a = int(input(“Moi nhap a: “))
S = 0; n = 0;
while not (1/(a+n)<0.0001):
S += 1/(a+n)
n += 1
print(“Tổng cần tính là”,S)

Ví dụ 2: Viết chương trình nhập vào 2 số nguyên dương, tính và xuất ra màn hình ước chung lớn nhất và bội chung nhỏ nhất của 2 số đó.
– Chương trình:
m, n = map(int,input(“Mời nhập 2 số nguyên dương: “).split())
tich = m*n
while m != n:
if m>n: m -= n
else: n -= m
print(“Ước chung lớn nhất là:”,m)
print(f“Bội chung nhỏ nhất là: {tich/m: .0f}”)

3. Câu lệnh break, continue, pass và else trong cấu trúc lặp
a. Câu lệnh break, continue và pass
Câu lệnh - Ý nghĩa
break - Dùng để thoát ngay khỏi câu lệnh lặp kể từ vị trí của break
continue - Dùng để bỏ qua vòng lặp hiện tại kể từ vị trí của continue và chuyển ngay sang vòng lặp tiếp theo
pass - Câu lệnh hình thức để đủ cú pháp, không làm gì cả
b. Câu lệnh else của câu lệnh for, câu lệnh while (Chỉ thực sự có ý nghĩa khi lệnh lặp sử dụng break)
– Câu lệnh for
for <biến vòng lặp> in <dãy giá trị>:
<Dãy các lệnh 1>
[else:
<Dãy câu lệnh 2>]
– Câu lệnh while
while <điều kiện>:
<Dãy các lệnh 1>
[else:
<Dãy câu lệnh 2>]

Trong đó: <Dãy câu lệnh 2> chỉ bị bỏ qua khi trong for và while có sử dụng câu lệnh break
Bài tập về Cấu trúc lặp trong Python
Câu 1: Viết chương trình tính tổng các số từ 1 đến n, với n là số nguyên dương nhập vào từ bàn phím?
Câu 2: Viết chương trình tính tổng của bình phương các số lẻ từ 1 đến n, với n là số nguyên dương nhập vào từ bàn phím?
Câu 3: Viết chương trình nhập vào hai số nguyên dương m và n (m>n), xuất ra màn hình ước chung lớn nhất và bội chung nhỏ nhất của 2 số đó?
Câu 4: Viết chương trình kiểm tra số nguyên dương n nhập vào từ bàn phím có phải là số hoàn hảo hay không?
Câu 5: Viết chương trình đếm các số nguyên tố nhỏ hơn n, với n là số nguyên dương nhập vào từ bàn phím?
Câu 6: Viết chương trình giải bài toán cổ:
Trăm trâu trăm bó cỏ
Trâu đứng ăn năm
Trâu nằm ăn ba
Lụ khu trâu già
Ba con một bó

Hỏi có bao nhiêu trâu đứng, trâu nằm và trâu già?
Mới hơn Cũ hơn
Trang trí đón tết cho blog/website bằng hình ảnh câu đối, cành mai