Cẩm nang chia sẻ kiến thức Lab04 Hướng dẫn thực hành Các cấu trúc điều khiển Lặp trong Python Mục tiêu
Giới thiệu tổng quan Trong Python các câu lệnh (statement) được thực hiện một cách tuần tự từ trên xuống dưới. Tuy nhiên đôi khi bạn muốn thực hiện một khối các câu lệnh nhiều lần, bạn có thể sử dụng vòng lặp (loop).
Phần I: Hướng dẫn thực hành Hướng dẫn thực hành với các cấu trúc điều khiển lặp trong lập trình Python: Cấu trúc điều khiển while Cú pháp:
# Bắt đầu vòng lặp while condition expression: statement # Lệnh ngoài vòng lặp Yêu cầu: Viết chương trình Python thực hiện công việc sau:
Gợi ý: Bước 1: Tạo thư mục Lab04 tại ổ đĩa lưu trữ của bạn (ví dụ: D:\Devmaster.edu.vn\Python\Labguides\Lab04) Mở Visual Studio code, vào menu File -> Open Folder -> Chọn tư mục bạn vừa tạo -> Chọn SELECT (Ví dụ: D:\Devmaster.edu.vn\Python\Labguides\Lab04) Bước 2: Tạo mới file Lab04.01.py Code theo gợi ý sau:
""" Yêu cầu: Viết chương trình Python thực hiện công việc sau: - Nhập vào số nguyên n - In ra các số nguyên nhỏ hơn n """ # Nhập số nguyên n n=int(input("Nhập n=")) # In các số nguyên i < n i=0 while i<n: print(i) i +=1 print("Finish") #========================================================= Bước 3: Chạy chương trình: nhấn phím F5 để chạy chương trình ta có kết quả như sau
Nhập n=10 0 1 2 3 4 5 6 7 8 9 Finish Yêu cầu: Viết chương trình Python thực công việc sau:
Gợi ý: Bước 1: Trong thư mục Lab04 => tạo mới file Lab04.02.py Bước 2: Coding gợi ý
""" Yêu cầu: Viết chương trình Python thực công việc sau: - Nhập vào số nguyên n - In ra các số i """ # Nhập số nguyên n n=int(input("Nhập n=")) i=0 tong=0 while i if i%3==0 or i%5==0: tong +=i print(i) i +=1 # Tổng print("Tổng các số chia hết cho 3 hoặc 5:",tong) #========================================================= Bước 3: Thực hiện chương trình (F5) kết quả như sau:
Nhập n=12 0 3 5 6 9 10 Tổng các số chia hết cho 3 hoặc 5: 33
Lab04.03: kiểm tra số nguyên tố Yêu cầu: Viết chương trình Python thực hiện các công việc sau:
Gợi ý: Bước 1: Trong thư mục “Lab04” tạo mới file Lab04.03.py Bước 2: Code gợi ý như sau:
""" Yêu cầu: Viết chương trình Python thực hiện các công việc sau: - Nhập vào số nguyên dương n - Kiểm tra số n có phải là số nguyên tố không """ # Nhập số nguyên n n=int(input("Nhập n=")) flag=True # Giả sử n là số nguyên tố # Tìm xem có số x nào mà x là ước của n không? # Nếu có số x là ước của n thì => n không là nguyên tố x=2 # khởi tạo biến lặp while x <= int(n/2): if n%x==0: # lúc này x là ước flag=False break x +=1 # Tăng biến lặp if flag==True: print(n, "là số nguyên tố!") else: print(n, "không là số nguyên tố") #======================================================== Bước 3: Chạy chương trình và kiểm tra kết quả:
Nhập n=5 5 là số nguyên tố!
Nhập n=6 Cấu trúc điều khiển for: for…range; for…array Cú pháp:
""" for range, for...array # syntax: for x in range(start, stop): statement for x in list_sequense: statement """ Ví dụ đơn giản nhất của vòng lặp for trong Python là sử dụng 'for' với 'range' (Phạm vi). Ví dụ biến 'x' có giá trị chạy trong pham vi (3, 7) (x= 3, 4, 5, 6). Bước 1: Trong thư mục “Lab04” tạo file Lab04.04.py Bước 2: Coding gợi ý
print("For loop example") # for x = 3, 4, 5, 6 for x in range (3, 7) : print("Value of x = ", x) print(" x^2 = ", x * x) # Dòng lệnh này nằm ngoài khối lệnh for. print("End of example") #========================================================= Bước 3: Thực thi chương trình và kết quả
For loop example Value of x = 3 x^2 = 9 Value of x = 4 x^2 = 16 Value of x = 5 x^2 = 25 Value of x = 6 x^2 = 36 End of example Sử dụng vòng lặp for có thể giúp bạn duyệt trên các phần tử của mảng. Ví dụ:
Code gợi ý:
""" Sử dụng vòng lặp for có thể giúp bạn duyệt trên các phần tử của mảng. Ví dụ: - Khởi tạo một mảng - Duyệt và in ra các phần tử """ # Khởi tạo mảng list=["Devmaster","Academy"] for item in list: print(item) # Câu lệnh này ngoài vòng lặp for print("-------------------") print("Finish") #=========================================================
Kết quả:
Devmaster Academy ------------------- Finish Duyệt các phần tử của mảng thông qua chỉ số (index): Ví dụ:
# Khởi tạo mảng list=["Viện","Công","Nghệ","Và","Đào","Tạo","Devmaster"] print("Duyệt các phần tử của mảng thông qua chỉ số:") # Hàm len() trả về số phần tử của mảng. # index = 0,1,.. len-1 for index in range(len(list)): print(index, list[index] ) #========================================================= Kết quả:
Duyệt các phần tử của mảng thông qua chỉ số: 0 Viện 1 Công 2 Nghệ 3 Và 4 Đào 5 Tạo 6 Devmaster
Lab04.06: Sử dụng break trong vòng lặp Ví dụ:
print("Ví dụ về break") # Tạo một biến x và gán giá trị 2 cho nó. x = 2 while (x < 15) : print("----------------------\n") print("x = ", x) # Kiểm tra nếu x = 5 thì thoát ra khỏi vòng lặp. if (x == 5) : break # Tăng giá trị của x thêm 1 x = x + 1 print("x after + 1 = ", x) print("Kết thúc") #========================================================= Kết quả:
x = 2 x after + 1 = 3 ---------------------- x = 3 x after + 1 = 4 ---------------------- x = 4 x after + 1 = 5 ---------------------- x = 5 Kết thúc
Lab04.07 Ví dụ:
""" Ví dụ về continue - Nhập vào số nguyên dương n - In ra các số tự nhiên """ # Nhập số n n=int(input("Nhập số n=")) x=1 while x if x%3==0: x +=1 # tăng x lên 1 continue # bắt đầu vòng lặp mới và không in print(x) x +=1 print("Kết thúc") #========================================================= Kết quả:
Nhập số n=10 1 2 4 5 7 8 NẾU BẠN NGỦ QUÊN TRONG CUỘC SỐNG |
Tháng | Tiền gốc + lãi | Tiền lãi tháng |
1 | 10,000,000 | 100,000 |
2 | 10,100,000 | 101,000 |
3 | 10,201,000 | 102,010 |
4 | 10,303,010 | 103,030.1 |
- Viết chương trình in ra hình sau:
Nhập N=5: In ra hình
* * * * *
* * *
*
- Viết chương trình in ra dãy amstrong có 3 chữ số
- Viết chương trình in ra dãy Fibonaci
- Viết chương trình tìm ước số chung lớn nhất, bội số chung nhỏ nhất của 2 số
- Viết chương trình
- Nhập vào số nguyên dương n, m (n
- In ra các số chính phương trong khoảng [n,m] và tính tổng các số chính phương.
- In ra các hoàn hảo trong khoảng [n,m] và tính tổng các số hoàn hảo.
- In ra các số nguyên tố cùng nhau trong khoảng [n,m]
- Nhập vào số nguyên dương n; tìm ước số chung lớn nhất của số đó với các số từ 1 đến 10; in kết quả ra màn hình
- Nhập một số nguyên n; in ra màn hình số đảo ngược của số đó
Ví dụ: 123456798 => 897654321
- Nhập số nguyên n; tính giai thừa của n (!n)
Ví dụ: !3 = 1x2x3 = 6
- Nhập số nguyên y và số nguyên n
Tính giá trị biểu thức: ví dụ n=9
y – 1/3 * (!y3) + 1/5*(!y5) – 1/7 *(!y7) + 1/9*(!y9)
- Viết chương trình tìm ra các số nguyên a,b,c,d trong khoảng 0 đến 10 thỏa mãn điều kiện: a*d*d = b *c*c*c
- Viết chương trình in ra bảng cửu chương
- Viết chương trình xác định tất cả các cặp số nguyên dương (x,y) sao cho x2+y2+1)/x*y là 1 số nguyên
- Tìm tất cả các phương án kết hợp 3 loại tiền: 1000đ, 2000đ, 5000đ với nhau để được số N đ. Với N nhập từ bàn phím và N>=10000 và N%1000==0.
- Tính tổng các chữ số của 1 số tự nhiên N; N nhập từ bàn phím
- Tính kết quả của phép toán 1+1/23+1/33+...+1/n3 (làm tròn 3 chữ số thập phân)
- Một cặp số nguyên dương được gọi là số bạn bè nếu tổng các ước số của số này bằng chính số kia. Hãy viết chương trình kiểm tra xem 2 số nhập vào có phải là số bạn bè hay không. Nếu phải thì xuất 'YES', ngược lại là 'NO'
- Một số nguyên dương có n chữ số được gọi là số Armstrong khi tổng các lũy thừa bậc n của các chữ số của nó bằng chính nó. Hãy kiểm tra xem một số nguyên dương N nhập vào từ bàn phím có phải là số Armstrong hay không. Nếu phải thì xuất 'YES', ngược lại là 'NO'.
Ví dụ:
371 là số Armstrong vì: 3^3 + 7^3 + 1^3 = 371
8208 là số Armstrong vì: 8^4 + 2^4 + 8^4 = 8208
- Hãy tìm tất cả các số Armstrong trong đoạn [A; B] với A, B là 2 số nhập từ bàn phím. Nếu không có thì xuất ra thông báo “Không có số nào”
- Cho trước số nguyên dương n. Hãy xuất ra màn hình tất cả các bộ 3 số Pytago mà cả 3 số đều <= n (mỗi bộ số 1 dòng và xuất theo thứ tự tăng dần của các cạnh).
Với 3 số nguyên dương cho trước (a < b < c), nếu 3 số đó là độ dài 3 cạnh của một tam giác vuông thì bộ 3 số này được gọi là bộ 3 số Pytago.
Ví dụ: n=13 ta có 3 bộ số pytago
(3, 4, 5) (5, 12, 13)
(6, 8, 10)
- Nhập vào 1 số nguyên ở hệ thập phân, yêu cầu xuất ra 1 số ở hệ nhị phân.