Bài giảng Lập trình Python - Bài 3: Vòng lặp trong python

pdf 18 trang Gia Huy 17/05/2022 2430
Bạn đang xem tài liệu "Bài giảng Lập trình Python - Bài 3: Vòng lặp trong python", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_lap_trinh_python_bai_3_vong_lap_trong_python.pdf

Nội dung text: Bài giảng Lập trình Python - Bài 3: Vòng lặp trong python

  1. LẬP TRÌNH PYTHON Bài 3: vòng lặp trong python
  2. Tóm tắt nội dung bài trước ▪ Định nghĩa và viết hàm trong python rất đơn giản: dùng từ khóa def, chỉ cần đặt tên và liệt kê danh sách tham số ▪ Không hạn chế kiểu dữ liệu trả về từ hàm ▪ Cho phép tham số mặc định ▪ Hạn chế việc nạp chồng hàm ▪ Có cơ chế cho phép số tham số không hạn chế ▪ Phép toán if là phép toán 3 ngôi, một dạng lệnh lựa chọn ngắn gọn, đơn giản ▪ Tiện hơn lệnh if ở chỗ phép toán có thể tham gia vào biểu thức ▪ Python dùng lệnh lựa chọn if-elif-else ▪ Lệnh lựa chọn duy nhất, dùng cho cả trường hợp chọn giữa hai nhánh và chọn giữa nhiều nhánh TRƯƠNG XUÂN NAM 2
  3. Nội dung 1. Vòng lặp “while” 2. Vòng lặp “for” ▪ Lặp “for” duyệt một danh sách ▪ Lặp “for” duyệt một miền số nguyên 3. Bài tập TRƯƠNG XUÂN NAM 3
  4. Phần 1 Vòng lặp “while” TRƯƠNG XUÂN NAM 4
  5. Vòng lặp while ▪ Vòng while thực hiện lặp lại khối lệnh chừng nào biểu thức điều kiện còn đúng ▪ Phát biểu continue trong khối lệnh sẽ ngắt khối lệnh hiện tại và bắt đầu một vòng lặp mới ▪ Phát biểu break sẽ kết thực vòng lặp ngay lập tức ▪ Khối else sẽ được thực hiện sau khi toàn bộ vòng lặp đã chạy xong, không bắt buộc phải có khối này ▪ Khối này sẽ không chạy nếu vòng lặp bị “break” TRƯƠNG XUÂN NAM 5
  6. Vòng lặp while đơn giản # có 10 triệu đồng, gửi ngân hàng với lãi suất 5,1% hàng năm # tính xem sau bao nhiêu năm thì bạn có ít nhất 50 triệu # cách giải sử dụng vòng lặp so_tien = 1e7 lai_suat = 5.1/100 so_nam = 0 # chừng nào số tiền chưa đủ 50 triệu thì gửi thêm 1 năm nữa while so_tien < 5e7: so_nam += 1 so_tien = so_tien * (1 + lai_suat) print("Số tiền sau", so_nam, "năm:", so_tien) # in kết quả print("Sau", so_nam, "bạn sẽ có ít nhất 50 triệu.") TRƯƠNG XUÂN NAM 6
  7. Vòng lặp while kết hợp điều kiện if # In ra các số tự nhiên chia hết cho 7 nhỏ hơn 1000 n = 0 while n < 1000: if (n % 7) == 0: print(n) n += 1 # Tính tổng các số nhỏ hơn 1000 và không chia hết cho 3 t = 0 n = 0 while n < 1000: if (n % 3) != 0: t = t + n n += 1 print(t) TRƯƠNG XUÂN NAM 7
  8. Vòng lặp while với break # bài tập buổi trước: kiểm tra xem một số dương N có phải số # fibonacci hay không? n = int(input("Nhập số dương N: ")) a, b = 0, 1 # kiểu gán trong python: a = 0, b = 1 while b != n: if b > n: # nếu b vượt quá n thì dừng break a, b = b, a + b # a = b, b = a + b print('Fibonacci' if b == n else 'Non-fibonacci') TRƯƠNG XUÂN NAM 8
  9. Vòng lặp while với continue # tính tổng các số fibonacci chia hết cho 3 nhỏ hơn N n = int(input("Nhập số dương N: ")) tong, a, b = 0, 0, 1 while b < n: a, b = b, a + b if 0 != a % 3: # bỏ qua nếu không chia hết cho 3 continue tong += a print('Tổng là:', tong) TRƯƠNG XUÂN NAM 9
  10. Vòng lặp while sử dụng else # nhập số n và kiểm tra xem nó có phải số nguyên tố hay không # chú ý: nếu không sử dụng else, ta sẽ phải khai báo thêm # biến phụ và chương trình dài hơn vài dòng n = int(input("Nhập số N: ")) x = 2 while x < n: if (n % x) == 0: print("N không phải số nguyên tố") break; x = x + 1 else: print("N là số nguyên tố") TRƯƠNG XUÂN NAM 10
  11. Phần 2 Vòng lặp “for” TRƯƠNG XUÂN NAM 11
  12. Vòng lặp for duyệt một danh sách ▪ Cú pháp: for in : # khối for else # khối else ▪ Vòng for cho phép sử dụng một lần lượt duyệt các giá trị trong ▪ Tương tự như while, có thể sử dụng break và continue ▪ Khối else thực hiện sau khi toàn bộ vòng lặp đã chạy xong ▪ Khối này sẽ không chạy nếu vòng lặp bị “break” ▪ Không bắt buộc phải có khối này ▪ Cách làm việc tương tự như ở vòng lặp while TRƯƠNG XUÂN NAM 12
  13. Vòng lặp for duyệt một danh sách X = ['chó', 'mèo', 'lợn', 'gà'] # In ra các loài vật trong danh sách for w in X: print(w) # In ra các loại vật, ngoại từ loài ‘mèo’ for x in X: if x == 'mèo': continue print(x) # In ra các loại vật, nếu gặp loài ‘mèo’ thì dừng luôn for z in X: if z == 'mèo': break print(z) TRƯƠNG XUÂN NAM 13
  14. Vòng lặp for duyệt một miền số nguyên ▪ Cú pháp vòng for rất phù hợp với việc duyệt một tập hợp ít phần tử ▪ Vì ta phải liệt kê mọi phần tử trong tập ▪ Nhưng nếu muốn duyệt tập rất nhiều phần tử thì sao? ▪ Chẳng hạn muốn duyệt các số nguyên từ 1 đến 1.000.000? ▪ Python cung cấp hàm range để tạo một dãy số: ▪ Hàm range(n): tạo dãy số nguyên từ 0 đến n-1 ▪ Hàm range(n, m): tạo dãy số nguyên từ n đến m-1 ▪ Hàm range(n, m, k): tạo dãy số nguyên từ n đến trước m với bước nhảy k (một lần giá trị tăng k đơn vị) • Chú ý: giá trị k có thể âm, trong trường hợp này dãy số sinh ra sẽ giảm dần TRƯƠNG XUÂN NAM 14
  15. Vòng lặp for duyệt một miền số nguyên # Trường hợp một khoảng số khá lớn, không thể liệt kê được # Ta sử dụng hàm range để tạo ra khoảng số # In các số từ 10 đến 19: khoảng 10 đến 20, bước nhảy 1 for d in range(10, 20): print(d) # In các số từ 20 đến 11: khoảng 20 đến 10, bước nhảy -1 for d in range(20, 10, -1): print(d) # In các số lẻ từ 1 đến 100: khoảng 1 đến 100, bước nhảy 2 for d in range(1, 101, 2): print(d) TRƯƠNG XUÂN NAM 15
  16. Phần 4 Bài tập TRƯƠNG XUÂN NAM 16
  17. Bài tập TRƯƠNG XUÂN NAM 17
  18. Bài tập 푖 표 0 ≤ 푛 < , = 푛 1 푖 표 푛 ≥ , = ෍ 푖 표(푛 − 푖, ) 푖= TRƯƠNG XUÂN NAM 18