Cấu trúc điều kiện trong Python

Khái niệm

Cấu trúc điều kiện là một cách để kiểm tra một biểu thức điều kiện nào đó trong chương trình và thực hiện các lệnh khác nhau tùy thuộc vào giá trị của biểu thức đó. Trong lập trình, cấu trúc điều kiện cho phép chương trình lựa chọn các hành động khác nhau để thực hiện dựa trên các điều kiện đưa ra.

Có nhiều cấu trúc điều kiện khác nhau, phổ biến nhất là cấu trúc if, if-else, if-elif-else. Cấu trúc if chỉ kiểm tra một biểu thức điều kiện và thực hiện một lệnh nếu biểu thức đó là đúng. Cấu trúc if-else cho phép thực hiện một lệnh nếu biểu thức điều kiện đúng và một lệnh khác nếu biểu thức đó sai. Cấu trúc if-elif-else cho phép kiểm tra nhiều điều kiện khác nhau và thực hiện các lệnh khác nhau tùy thuộc vào giá trị của các biểu thức điều kiện đó.

Cấu trúc if

Câu lệnh if được sử dụng để kiểm tra một điều kiện và thực hiện một hành động nếu điều kiện đó đúng. Cú pháp của câu lệnh if như sau:

if condition:
    # thực hiện hành động nếu condition đúng

Trong đó, condition là một biểu thức điều kiện, và câu lệnh thực hiện hành động nếu condition đúng là một khối lệnh, được thực hiện nếu condition đúng.

Cấu trúc if … else

Câu lệnh if-else được sử dụng để kiểm tra một điều kiện và thực hiện một hành động nếu điều kiện đó đúng và một hành động khác nếu điều kiện đó sai. Cú pháp của câu lệnh if-else như sau:

if condition:
    # thực hiện hành động nếu condition đúng
else:
    # thực hiện hành động nếu condition sai

Trong đó, condition là một biểu thức điều kiện, và câu lệnh thực hiện hành động nếu condition đúng là một khối lệnh, được thực hiện nếu condition đúng. Câu lệnh thực hiện hành động nếu condition sai là một khối lệnh khác, được thực hiện nếu condition sai.

Cấu trúc if-elif:

Câu lệnh if-elif được sử dụng để kiểm tra nhiều điều kiện khác nhau và thực hiện các hành động tương ứng. Cú pháp của câu lệnh if-elif như sau:

if condition1:
    # thực hiện hành động nếu condition1 đúng
elif condition2:
    # thực hiện hành động nếu condition1 sai và condition2 đúng

Trong đó, condition1condition2 là các biểu thức điều kiện khác nhau. Nếu condition1 đúng, câu lệnh thực hiện hành động nếu condition1 đúng sẽ được thực hiện. Nếu condition1 sai và condition2 đúng, câu lệnh thực hiện hành động nếu condition1 sai và condition2 đúng sẽ được thực hiện.

Cấu trúc if-elif-else:

Câu lệnh if-elif-else được sử dụng để kiểm tra nhiều điều kiện khác nhau và thực hiện các hành động tương ứng.

Cú pháp của câu lệnh if-elif-else như sau:

if condition1:
    # thực hiện hành động nếu condition1 đúng
elif condition2:
    # thực hiện hành động nếu condition1 sai và condition2 đúng
else:
    # thực hiện hành động nếu cả condition1 và condition2 đều sai

Trong đó, condition1condition2 là các biểu thức điều kiện khác nhau. Nếu condition1 đúng, câu lệnh thực hiện hành động nếu condition1 đúng sẽ được thực hiện. Nếu condition1 sai và condition2 đúng, câu lệnh thực hiện hành động nếu condition1 sai và condition2 đúng sẽ được thực hiện. Nếu cả condition1condition2 đều sai, câu lệnh thực hiện hành động nếu cả condition1 và condition2 đều sai sẽ được thực hiện.

Các câu lệnh if-else, if-elif và if-elif-else cho phép bạn kiểm tra và xử lý nhiều trường hợp khác nhau trong chương trình của bạn, tùy thuộc vào giá trị của biểu thức điều kiện.

Cấu trúc khác

Trong Python không có cấu trúc switch-case như một số ngôn ngữ lập trình khác. Thay vào đó, để thực hiện kiểm tra và xử lý các trường hợp khác nhau, Python sử dụng cấu trúc điều kiện if-elif-else.

Tuy nhiên, có thể giả lập cấu trúc switch-case trong Python bằng cách sử dụng từ khóa dict (từ điển). Ta có thể tạo một từ điển với các khóa là giá trị của biến cần kiểm tra, và các giá trị tương ứng là các hàm hoặc lệnh cần thực hiện cho từng trường hợp. Ví dụ:

def func1():
    print("This is case 1")

def func2():
    print("This is case 2")

def func3():
    print("This is case 3")

# tạo dictionary với các giá trị tương ứng với các hàm cần thực hiện
options = {
    1: func1,
    2: func2,
    3: func3
}

# kiểm tra giá trị của biến x và thực hiện hàm tương ứng
x = 2
options[x]()

Trong ví dụ trên, chúng ta tạo một từ điển options với các giá trị tương ứng là các hàm func1, func2func3. Sau đó, ta có thể kiểm tra giá trị của biến x và thực hiện hàm tương ứng bằng cách gọi options[x](). Nếu x có giá trị là 2, hàm func2 sẽ được thực hiện.

Ví dụ thực hành

Ví dụ 1. Số chẵn/lẻ

Viết chương trình nhập vào một số nguyên và kiểm tra xem số đó có phải số chẵn hay không.

num = int(input("Nhập một số nguyên: "))

if num % 2 == 0:
    print(num, "là số chẵn")
else:
    print(num, "không phải là số chẵn")

Ví dụ 2. Số nguyên tố

Viết chương trình nhập vào một số nguyên và kiểm tra xem số đó có phải số nguyên tố hay không

num = int(input("Nhập một số nguyên: "))

if num > 1:
    for i in range(2, num):
        if num % i == 0:
            print(num, "không phải là số nguyên tố")
            break
    else:
        print(num, "là số nguyên tố")
else:
    print(num, "không phải là số nguyên tố")

Ví dụ 3. Ký tự số

Viết chương trình nhập vào một chuỗi và kiểm tra xem chuỗi đó có chứa ký tự số hay không.

str = input("Nhập một chuỗi: ")

if any(char.isdigit() for char in str):
    print("Chuỗi nhập vào chứa ký tự số")
else:
    print("Chuỗi nhập vào không chứa ký tự số")

Ví dụ 4. Chuỗi đối xứng

Viết chương trình nhập vào một chuỗi và kiểm tra xem chuỗi đó có phải chuỗi đối xứng hay không.

str = input("Nhập một chuỗi: ")

if str == str[::-1]:
    print("Chuỗi nhập vào là chuỗi đối xứng")
else:
    print("Chuỗi nhập vào không phải là chuỗi đối xứng")

Chương trình yêu cầu người dùng nhập vào một chuỗi bằng câu lệnh input. Chúng ta sử dụng toán tử đảo ngược [::-1] để đảo ngược chuỗi ban đầu và kiểm tra xem chuỗi đó có giống với chuỗi ban đầu hay không. Nếu hai chuỗi giống nhau thì chuỗi ban đầu là chuỗi đối xứng, nếu không thì chuỗi ban đầu không phải là chuỗi đối xứng.

Ví dụ 5. Tìm số lớn nhất trong ba số

Viết chương trình nhập vào ba số và tìm số lớn nhất trong ba số đó.

a = int(input("Nhập số thứ nhất: "))
b = int(input("Nhập số thứ hai: "))
c = int(input("Nhập số thứ ba: "))

if a > b and a > c:
    print("Số lớn nhất là", a)
elif b > a and b > c:
    print("Số lớn nhất là", b)
else:
    print("Số lớn nhất là", c)

Ví dụ 6. Tính tổng các số chẵn nhỏ hơn hoặc bằng 1 số

Viết chương trình nhập vào một số nguyên dương và tính tổng các số chẵn nhỏ hơn hoặc bằng số đó.

n = int(input("Nhập một số nguyên dương: "))
sum = 0

for i in range(1, n+1):
    if i % 2 == 0:
        sum += i

print("Tổng các số chẵn nhỏ hơn hoặc bằng", n, "là", sum)

Ví dụ 7. Tổng các số nguyên tố nhỏ hơn hoặc bằng n

Viết chương trình nhập vào một số nguyên dương và tính tổng các số nguyên tố nhỏ hơn hoặc bằng số đó.

n = int(input("Nhập một số nguyên dương: "))
sum = 0

def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(num**0.5)+1):
        if num % i == 0:
            return False
    return True

for i in range(2, n+1):
    if is_prime(i):
        sum += i

print("Tổng các số nguyên tố nhỏ hơn hoặc bằng", n, "là", sum)

Ví dụ 8. Tìm số lớn nhất trong danh sách

Viết chương trình nhập vào một danh sách các số và tìm số lớn nhất trong danh sách đó.

lst = input("Nhập danh sách các số, cách nhau bằng dấu cách: ").split()
lst = [int(x) for x in lst]

max_num = lst[0]

for num in lst:
    if num > max_num:
        max_num = num

print("Số lớn nhất trong danh sách là:", max_num)

Ví dụ 9. Đếm số lượng từ trong chuỗi

Viết chương trình nhập vào một chuỗi và đếm số lượng từ trong chuỗi đó

s = input("Nhập chuỗi cần đếm từ: ")
word_count = len(s.split())

print("Số lượng từ trong chuỗi là:", word_count)

Ví dụ 10. Đếm ký tự chữ hoa, chữ thường và chữ số

Viết chương trình nhập vào một chuỗi và đếm số lượng ký tự chữ hoa, chữ thường và chữ số trong chuỗi đó.

s = input("Nhập chuỗi cần đếm: ")
upper_count = 0
lower_count = 0
digit_count = 0

for c in s:
    if c.isupper():
        upper_count += 1
    elif c.islower():
        lower_count += 1
    elif c.isdigit():
        digit_count += 1

print("Số lượng chữ hoa trong chuỗi là:", upper_count)
print("Số lượng chữ thường trong chuỗi là:", lower_count)
print("Số lượng chữ số trong chuỗi là:", digit_count)

Ví dụ 11. In chuỗi theo thứ tự ngược lại

Viết chương trình nhập vào một chuỗi và in ra chuỗi đó theo thứ tự ngược lại.

s = input("Nhập chuỗi cần đảo ngược: ")
reverse_s = s[::-1]
print("Chuỗi đảo ngược là:", reverse_s)

Ví dụ 12. Số Fibonacci

Viết chương trình nhập vào một số nguyên và in ra các số Fibonacci nhỏ hơn hoặc bằng số đó.

n = int(input("Nhập số nguyên dương n: "))
fibonacci_series = [0, 1]

while fibonacci_series[-1] <= n:
    next_number = fibonacci_series[-1] + fibonacci_series[-2]
    if next_number > n:
        break
    fibonacci_series.append(next_number)

print("Các số Fibonacci nhỏ hơn hoặc bằng", n, "là:")
for number in fibonacci_series:
    print(number, end=" ")

Giải thích: Chương trình yêu cầu người dùng nhập vào một số nguyên dương n. Ta khởi tạo một list fibonacci_series chứa hai phần tử đầu tiên của dãy Fibonacci là 0 và 1. Sau đó, vòng lặp while được sử dụng để thêm các số Fibonacci tiếp theo vào list cho đến khi số Fibonacci vượt quá số n đã nhập vào. Sau khi list fibonacci_series được xây dựng xong, chúng ta in ra các số Fibonacci nhỏ hơn hoặc bằng số n đã nhập vào.

Một số điểm cần lưu ý khi sử dụng câu lệnh điều kiện

Khi sử dụng câu lệnh điều kiện trong Python, có một số điểm cần lưu ý như sau:

  1. Câu lệnh điều kiện cần được bao quanh bởi cặp dấu ngoặc đơn ().

  2. Dấu hai chấm : phải được đặt sau mỗi câu lệnh điều kiện.

  3. Nội dung của câu lệnh điều kiện phải được thụt đầu dòng để xác định phạm vi của câu lệnh.

  4. Các toán tử so sánh như ==, !=, <, >, <=, >= được sử dụng để so sánh giá trị.

  5. Khi sử dụng câu lệnh điều kiện với nhiều điều kiện cùng lúc, các toán tử logic như and, or, not được sử dụng để kết hợp các điều kiện.

  6. Khi sử dụng câu lệnh điều kiện, cần lưu ý đến thứ tự ưu tiên của các toán tử so sánh và logic.

  7. Trong Python, không có cấu trúc switch...case, thay vào đó ta có thể sử dụng cấu trúc if...elif...else để thực hiện các điều kiện khác nhau.

  8. Câu lệnh if có thể được sử dụng để kiểm tra các giá trị đúng hoặc sai, không nhất thiết phải là kiểu dữ liệu số.

Kết Luận

Câu lệnh điều kiện là một trong những công cụ quan trọng trong lập trình, cho phép kiểm tra một điều kiện nhất định và thực hiện một hành động tương ứng nếu điều kiện đó đúng hoặc sai. Sử dụng câu lệnh điều kiện cho phép lập trình viên thực hiện các tác vụ khác nhau tùy thuộc vào điều kiện đầu vào, từ đó giúp tăng tính linh hoạt và hiệu quả của chương trình.

Trong một số trường hợp, câu lệnh điều kiện được sử dụng để xử lý các điều kiện đơn giản, như kiểm tra một giá trị có bằng 0 hay không. Tuy nhiên, trong nhiều trường hợp, các câu lệnh điều kiện phức tạp hơn được sử dụng để giải quyết các vấn đề phức tạp, như kiểm tra một tập hợp các điều kiện hoặc thực hiện các hành động khác nhau dựa trên các trường hợp khác nhau của điều kiện đầu vào.

Với việc sử dụng câu lệnh điều kiện, lập trình viên có thể kiểm soát chương trình của mình một cách chính xác hơn, đảm bảo rằng các hành động được thực hiện đúng cách và đáp ứng được các yêu cầu của người dùng hoặc ứng dụng./.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *