Professional Documents
Culture Documents
1
Cấu trúc rẽ nhánh
Câu lệnh if
❖Cú pháp:
if <Điều kiện>:
<Khối lệnh>
▪ Thực hiện: Nếu <Điều kiện> đúng thì sẽ thực hiện
<Khối lệnh>
▪ Sơ đồ khối
Điều Sai
kiện?
Đúng
Khối lệnh
3
Câu lệnh if
❖Ví dụ 1:
a = 10
b = 25
if a<b:
print("a nho hon b!")
→Kết quả: a nho hon b!
4
Câu lệnh if
❖Ví dụ 2:
a = int(input("Nhập số nguyên a: "))
b = int(input("Nhập số nguyên b: "))
if a<b:
print("a nhỏ hơn b!")
print("Tổng a và b:", a+b)
5
Câu lệnh if
❖Ví dụ 3:
a = int(input("Nhap so nguyen a: "))
b = int(input("Nhap so nguyen b: "))
if a<b:
print("a nho hon b!")
print("Tong a va b: ", a+b)
print("Vi tri ngoai khoi lenh!")
6
Câu lệnh if …else
❖Cú pháp:
if <Điều kiện>:
<Khối lệnh 1>
else:
❖ Sơ đồ khối <Khối lệnh 2>
Đúng Sai
Điều
kiện?
7
Câu lệnh if else
❖Ví dụ:
a = int(input("Nhap so nguyen a: "))
b = int(input("Nhap so nguyen b: "))
if a == b:
print("a bang b.")
else:
print("a khac b.")
print("Tong a + b = ", a+b)
print("Ket thuc!")
8
Câu lệnh if…elif
▪ Sơ đồ khối
if <Điều kiện 1>:
<Khối lệnh 1>
Đúng Điều kiện elif <Điều kiện 2>:
1? <Khối lệnh 2>
Sai
Sai
Điều kiện
2?
Đúng
9
Câu lệnh if … elif
❖Ví dụ:
a = int(input("Nhap so nguyen a: "))
b = int(input("Nhap so nguyen b: "))
if a == b:
print("a bang b.")
elif a<b:
print("a nho b.")
print("Ket thuc!")
Chú ý: if, elif phải được viết thẳng cột (cùng 1 mức)
10
Câu lệnh if …elif …else
11
Câu lệnh if …elif …else
12
Các phép toán so sánh và logic
13
Ví dụ
14
Ví dụ
Nhập 3 số a, b, c. Kiểm tra xem 3 số đó có phải là 3 cạnh của 1
tam giác?
15
Chú ý
❖if(a + b>c) and (a+c>b) and (b+c>a):
có thể viết:
if a + b>c and a+c>b and b+c>a:
❖Cách viết gọn một số biểu thức:
16
Câu lệnh if
# In thông báo nếu được điểm số loại giỏi
if diem >= 8:
print("Chúc mừng bạn đã được điểm giỏi")
# In thông báo xem n chẵn hay lẻ
if (N % 2) == 0:
print("N là số chẵn")
else:
print("N là số lẻ")
# Biện luận nghiệm của phương trình bậc 2
if delta == 0:
print("Phương trình có nghiệm kép")
elif delta < 0:
print("Phương trình vô nghiệm")
else:
print("Phương trình có hai nghiệm phân biệt") 17
Tổng kết về câu lệnh if
Ví dụ
19
Ví dụ
20
Ví dụ
21
Ví dụ áp dụng
22
Câu lệnh: A if <điều-kiện> else B
❖ Ví dụ:
a = float(input("He so a = "))
b = float(input("He so b = "))
c = float(input("He so c = "))
A = "Là pt bậc 2" if a!=0 else "Không là pt bậc 2"
print(A)
24
Câu lệnh if (rẽ nhánh)
❖Python chỉ có một cấu trúc rẽ nhánh duy nhất, sử dụng để
lựa chọn làm một trong số nhiều công việc
➢Nhiều ngôn ngữ lập trình khác sử dụng if cho trường
hợp 2 lối rẽ nhánh và switch cho trường hợp nhiều lối rẽ
nhánh
❖Nguyên tắc với rẽ nhánh if-elif-else:
➢Biểu thức điều kiện của if và elif phải có kết quả logic
➢Hệ thống sẽ lần lượt tính giá trị từng biểu thức điều kiện
từ trên xuống dưới, bắt đầu từ phát biểu if
➢Nếu biểu thức điều kiện nào đúng thì khối lệnh tương
ứng được thực hiện và bỏ qua các khối lệnh khác
➢Trường hợp mọi biểu thức điều kiện đều sai, khối lệnh
ứng với else sẽ được thực hiện
➢Khối else là tùy chọn, không nhất thiết phải xuất hiện
25
Câu lệnh lặp
▪Vòng lặp xác định for
Giảng
viên:
▪Vòng lặp không xác định while
Email
:
Vòng lặp for
❖ Cú pháp for <Tên biến> in [Tập giá trị]:
<Khối lệnh for>
[else:
<Khối lệnh else>
]# Phần else có thể không có
➢ Ví dụ:
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
TRƯƠNG XUÂN NAM 29
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
Vòng lặp for
Ví dụ: Tính n!
31
Câu lệnh continue
❖Câu lệnh continue được viết trong khối lệnh
của các vòng lặp. Khi thực hiện câu lệnh
continue, các câu lệnh phía sau khối lệnh sẽ
không được thực hiện mà quay sang lần lặp
tiếp theo.
❖Ví dụ:
32
Câu lệnh break
33
Câu lệnh break
❖Ví dụ:
34
Câu lệnh while
❖Cú pháp:
while <Điều kiện>: Điều Sai
<Khối lệnh while> kiện?
[else: Đúng
<Khối lệnh else>
] Khối lệnh
# Phần else có thể không có
35
Câu lệnh while
36
Vòng lặp while kết hợp điều kiện if
37
Tính UCLN (thuật toán Euclid)
38
Vòng lặp while với break
39
Vòng lặp while với continue
40
Vòng lặp while sử dụng else
41
Tóm tắt nội dung
❖Python chỉ có 2 loại vòng lặp là while và for (thay vì 3
loại như C/C++)
❖Lặp while thực hiện lặp chừng nào điều kiện còn đúng
❖Lặp for cho phép duyệt từng phần tử của một danh
sách
❖Hàm range hỗ trợ tạo các miền số nguyên để phép
duyệt bằng for trở nên ngắn gọn hơn
❖Cả while và for đều hỗ trợ các cú pháp mở rộng:
➢Lệnh break để kết thúc vòng lặp hiện tại
➢Lệnh continue để bắt đầu một vòng lặp mới
➢Khối else được thực hiện nếu vòng lặp kết thúc không do
break
42
Bài tập
43
Bài tập
6. Viết chương trình cho phép người dùng nhập vào liên tiếp
một dãy số tự nhiên (không biết trước độ dài), việc nhập
dãy sẽ kết thúc khi người dùng nhập một số âm hoặc số
0. Sau khi kết thúc, in ra màn hình ước số chung lớn nhất
và bội số chung nhỏ nhất của tất cả các số vừa nhập vào.
7. Hàm fibo mở rộng được định nghĩa như sau
𝑓𝑖𝑏𝑜 0 ≤ 𝑛 < 𝑘, 𝑘 = 𝑘
1
𝑓𝑖𝑏𝑜 𝑛 ≥ 𝑘, 𝑘 = 𝑓𝑖𝑏𝑜(𝑛 − 𝑖, 𝑘)
𝑖=𝑘
Viết chương trình nhập n và k sau đó tính fibo(n, k)
44
Bài tập áp dụng
59