ADMIN: nhanguyen@hcmut.edu.vn

4. Các cấu trúc điều khiển

1. Cấu trúc điều kiện (lệnh IF)

  • Lệnh này được sử dụng để kiểm tra một điều kiện, nếu điều kiện là true thì lệnh của khối if sẽ được thực thi, nếu không nó sẽ bị bỏ qua
  • Ngôn ngữ Python coi các giá trị khác null (rỗng) và khác 0 là true, và coi các giá trị là null hoặc 0 là false
  • Cú pháp:
if bieuThucDieuKien:
   cacLenhThucThi

Cấu trúc if

  • Cấu trúc điều kiện thực hiện một hoặc nhiều lệnh trong phạm vi của điều kiện đó

Ví dụ:

a = 80
if a < 100:
    print(a)
import math
a = 16
if a > 0:
    b = math.sqrt(a)
from math import sqrt
a = 16
if a > 0:
    b = sqrt(a)
    print(b)

Cấu trúc if … else

  • Cấu trúc điều kiện thực hiện các lệnh trong phạm vi của điều kiện đúng hoặc trong phạm vi của điều kiện ngược lại

Ví dụ:

a = 80
b = 100
if a < 50:
    print(a)
else:
    print(b)

Cấu trúc if … elif … elif … else

  • Cấu trúc điều kiện thực hiện các lệnh trong phạm vi của điều kiện đúng hoặc trong phạm vi của các điều kiện ngược lại

Ví dụ:

a = 80
b = 100
if a < 50:
    print(a)
else:
    print(b)
a = 80
b = 100
c = -60
if a < 50:
    print(a)
elif b > 50:
    print(b)
else:
    print(c)
a = 80
b = 100
c = -60
if a < 50:
    print(a)
elif a > b:
    print(b)
elif a < c:
    print(c)
else:
    print('Bye')

Cấu trúc if … if …

  • Cấu trúc các điều kiện lồng nhau

Ví dụ:

a = [10, 20, 30, 15]
b = [6, 28, 18, 3]
if a[1] > 5:
    if b[2] > 15:
        print(a[3])
    else:
        print(b[3])
else:
    print(':)')
a = [10, 3, 30, 15]
b = [6, 28, 18, 5]
if a[1] > 5:
    if b[2] > 15:
        print(a[3])
    else:
        print(b[3])
else:
    print(':)')

2. Cấu trúc vòng lặp

  • Khi muốn thực thi một khối code nhiều lần, các ngôn ngữ lập trình cung cấp các cấu trúc điều khiển kiểu vòng lặp để làm điều này
  • Ngôn ngữ Python cũng cung cấp các kiểu vòng lặp như vòng lặp while, for, cấu trúc lồng vòng lặp
  • Để hỗ trợ cho trình thực thi của vòng lặp, Python hỗ trợ một số lệnh điều khiển vòng lặp như lệnh break, lệnh continue và lệnh pass

Vòng lặp for:

  • Vòng lặp for được sử dụng để lặp một biến qua một dãy (List hoặc String) theo thứ tự mà chúng xuất hiện
  • Cú pháp của vòng lặp for:
for bienLap in day:
    cacLenhThucThi

Ví dụ:

for index in range(0, 10):
    print(index)
for index in range(10):
    print(index)
for index in range(0, 10, 2):
    print(index)
for index in range(5, 2, -1):
    print(index)
for letter in 'Python': 
    print('Current letter is: ', letter)
sport = ['Football', 'Tennis', 'Baseball', 'Basketball']
for sportID in sport:
    print('Do you like', sportID,'?')
  • Vòng lặp for kết hợp lệnh break để thoát vòng lặp:
for num in [1, 3, 6, 9]: #tìm số chẵn đầu tiên trong list
    if num % 2 == 0:
        print(num)
	break
  • Vòng lặp for kết hợp lệnh else

Vòng lặp for kết hợp lệnh else để thực thi sau khi lặp hết các phần tử trong list:

for num in [1, 3, 7, 9]:
    if num % 2 == 0:
        print(num)
        print('Break in the loop')
        break
else:
    print('Finish all the index in the loop')
  • Vòng lặp for kết hợp lệnh continue

Vòng lặp for kết hợp lệnh continue để bỏ qua bước lặp hiện hành:

Ví dụ: chỉ in ra số lẻ trong list

for num in [1, 3, 6, 9]:
    if num % 2 == 0:
        continue
    else:
        print(num)

Ví dụ: Tìm tổng từ 1 đến n

n = int(input('Nhap vao so n = '))
sumX = 0
for index in range(1,n+1):
    sumX = sumX + index
print(sumX)

Ví dụ: Tìm n!

n = int(input('Nhap vao so n = '))
product = 1
for index in range(1,n+1):
    product = product*index
print(product)

Vòng lặp while:

  • Vòng lặp while dùng khi cần thực thi lặp đi lặp lại các lệnh khi điều kiện đã cho là True
  • Khi điều kiện là False, thì điều khiển sẽ thoát khỏi vòng lặp
  • Vòng lặp while thường dùng khi không biết trước số lần lặp mà chỉ biết điều kiện lặp
  • Cú pháp của vòng lặp while:
while bieuThucLuanLy:
    cacLenhThucThi

Ví dụ:

count = 0
while (count < 9):
   print('The count is:', count)
   count = count + 1
print("Good bye!")
count = 0
while (count < 9):
   print('The count is:', count)
   count = count - 1
print("Good bye!")

Chú ý: Cẩn thận vòng lặp vô tận!

Ví dụ: Tìm các số nguyên dương đầu tiên sao cho chúng có tổng bé hơn 100

sumX = 0
total = 100
index = 0
list1 = []
while sumX < total:
    sumX += index
    list1.append(index)
    index += 1
    print(sumX)
sumX -= index-1
print(sumX)
print(list1[0:len(list1)-1])