Bài 4 : Cấu trúc điều khiển trong Python
1.Cấu trúc rẽ nhánh (if-else):
Cấu trúc rẽ nhánh cho phép bạn thực hiện các hành động khác nhau dựa trên một điều kiện. Đây là cú pháp cơ bản của nó:
if điều_kiện:
# Mã được thực thi nếu điều_kiện là đúng (True)
else:
# Mã được thực thi nếu điều_kiện là sai (False)
Ví dụ:
age = 18
if age < 18:
print("Bạn là một trẻ em.")
else:
print("Bạn là người trưởng thành.")
2. Vòng lặp (Loops):
Vòng lặp cho phép bạn lặp lại một khối mã nhiều lần. Python có hai loại vòng lặp chính: vòng lặp for và vòng lặp while.
Vòng lặp for:
Vòng lặp for được sử dụng để lặp qua các phần tử của một chuỗi hoặc một danh sách. Đây là cú pháp cơ bản:
for biến in chuỗi_đối_tượng:
# Mã được thực thi cho mỗi phần tử trong chuỗi_đối_tượng
Ví dụ:
numbers = [1, 2, 3, 4, 5]
for num in numbers:
print(num)
Vòng lặp while:
Vòng lặp while lặp lại một khối mã cho đến khi điều kiện không còn đúng nữa. Đây là cú pháp cơ bản:
while điều_kiện:
# Mã được thực thi cho đến khi điều_kiện không còn đúng nữa
Ví dụ:
count = 0
while count < 5:
print(count)
count += 1
Cấu trúc lặp điều khiển (Loop Control):
Các cấu trúc điều khiển này được sử dụng để thay đổi luồng của vòng lặp. Ba lệnh chính là break (thoát khỏi vòng lặp), continue (bỏ qua lần lặp hiện tại và chuyển đến lần lặp tiếp theo) và pass (không làm gì).
Ví dụ:
for i in range(10):
if i == 3:
continue # Bỏ qua lần lặp khi i = 3
if i == 7:
break # Thoát khỏi vòng lặp khi i = 7
print(i)
Cấu trúc điều khiển là một phần quan trọng của lập trình, giúp bạn kiểm soát luồng thực thi của chương trình một cách linh hoạt.
Bài tập :
Bài tập 1: Tìm số lớn nhất
Viết chương trình yêu cầu người dùng nhập ba số nguyên và sau đó hiển thị số lớn nhất.
Bài tập 2: Tính giai thừa
Viết chương trình yêu cầu người dùng nhập một số nguyên dương và sau đó tính giai thừa của số đó. Gợi ý: Sử dụng vòng lặp for.
Bài tập 3: Kiểm tra số nguyên tố
Viết chương trình yêu cầu người dùng nhập một số nguyên dương và sau đó kiểm tra xem số đó có phải là số nguyên tố hay không.
Bài tập 4: In hình tam giác
Viết chương trình yêu cầu người dùng nhập một số nguyên dương n và sau đó in một hình tam giác vuông có n hàng. Ví dụ, nếu n = 4, hình tam giác sẽ như sau:
*
* *
* * *
* * * *
Bài tập 5: Đảo ngược chuỗi
Viết chương trình yêu cầu người dùng nhập một chuỗi và sau đó in ra chuỗi đó theo thứ tự ngược lại. Ví dụ, nếu người dùng nhập "Python", chương trình sẽ in ra "nohtyP".
Bài tập 6: Đoán số
Viết chương trình tạo một số ngẫu nhiên từ 1 đến 100 và yêu cầu người dùng đoán số đó. Chương trình sẽ đưa ra gợi ý liệu số đoán là lớn hơn hoặc nhỏ hơn số cần đoán, cho đến khi người dùng đoán đúng số.
Bài tập 7: Tính tổng dãy số
Viết chương trình yêu cầu người dùng nhập một số nguyên dương n, sau đó tính tổng của dãy số từ 1 đến n. Gợi ý: Sử dụng vòng lặp for.
Bài tập 8: Sắp xếp danh sách
Viết chương trình yêu cầu người dùng nhập một danh sách các số nguyên, sau đó sắp xếp danh sách theo thứ tự tăng dần và in danh sách đã sắp xếp.
Bài tập 9: Đọc số thành chữ
Viết chương trình yêu cầu người dùng nhập một số nguyên từ 1 đến 999 và sau đó in số đó thành chữ. Ví dụ, nếu người dùng nhập 123, chương trình sẽ in ra "một trăm hai mươi ba".
Gợi ý giải một số bài tập:
Bài số 4 : In hình tam giác
Chương trình có thể giải như sau :
n = int(input("Nhập số hàng cho tam giác vuông: "))
# Dùng vòng lặp for để in tam giác
for i in range(n):
for j in range(i + 1):
print("*", end=" ")
print() # In xuống dòng để chuyển sang hàng mới
Giải thích:
Khi bạn chạy chương trình này, nó sẽ yêu cầu bạn nhập một số nguyên (n) và sau đó in ra một hình tam giác vuông có n hàng. Ví dụ, nếu bạn nhập 4, kết quả sẽ là:
*
* *
* * *
* * * *
Chương trình này sử dụng một vòng lặp for lồng trong vòng lặp for khác để in các dấu sao (*) theo thứ tự từng hàng.
Bài tập 9: Đọc số thành chữ
Chương trình có thể giải như sau :
def number_to_words(number):
# Định nghĩa các từ số từ 1 đến 19
ones = ["", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín", "mười", "mười một", "mười hai", "mười ba", "mười bốn", "mười lăm", "mười sáu", "mười bảy", "mười tám", "mười chín"]
# Định nghĩa các từ hàng trăm
hundreds = ["", "một trăm", "hai trăm", "ba trăm", "bốn trăm", "năm trăm", "sáu trăm", "bảy trăm", "tám trăm", "chín trăm"]
if number == 0:
return "Không"
elif number < 20:
return ones[number]
elif number < 100:
tens_digit = number // 10
ones_digit = number % 10
return ones[tens_digit] + " mươi " + ones[ones_digit]
else:
hundreds_digit = number // 100
remainder = number % 100
return hundreds[hundreds_digit] + " " + number_to_words(remainder)
def main():
number = int(input("Nhập một số từ 1 đến 999: "))
if 1 <= number <= 999:
words = number_to_words(number)
print(f"{number} được viết thành chữ là: {words}")
else:
print("Số bạn nhập không nằm trong khoảng từ 1 đến 999.")
if __name__ == "__main__":
main()
Giải thích :
Khi bạn chạy chương trình này, nó sẽ yêu cầu bạn nhập một số từ 1 đến 999, sau đó nó sẽ in số đó thành chữ. Ví dụ, nếu bạn nhập 123, kết quả sẽ là:
123 được viết thành chữ là: một trăm hai mươi ba
Chương trình này sử dụng một hàm number_to_words để chuyển đổi số thành chữ, chia thành từng phần hàng trăm, hàng chục và hàng đơn vị để xử lý.