Bài tập

Lệnh if, if...else, if...elif...else trong Python

Huy Erick

Làm quen với lệnh if trong Python Việc đưa ra quyết định là một nhiệm vụ quan trọng trong lập trình. Lệnh if trong Python cho phép chúng ta thực thi một khối mã chỉ...

Làm quen với lệnh if trong Python

Việc đưa ra quyết định là một nhiệm vụ quan trọng trong lập trình. Lệnh if trong Python cho phép chúng ta thực thi một khối mã chỉ khi một điều kiện cụ thể được đáp ứng. Điều này giúp chúng ta kiểm tra tính hợp lệ của điều kiện và thực thi mã tương ứng.

Trong Python, chúng ta sử dụng các lệnh sau để đưa ra quyết định:

  • Lệnh if: dùng để kiểm tra một điều kiện cụ thể. Nếu điều kiện là đúng, khối mã (if-block) sẽ được thực thi.
  • Lệnh if-else: tương tự như lệnh if, nhưng cung cấp một khối mã cho trường hợp điều kiện là sai. Nếu điều kiện trong lệnh if là sai, lệnh else sẽ được thực thi.
  • Lệnh if lồng nhau: cho phép chúng ta sử dụng lệnh if trong một lệnh if khác.

Cùng tìm hiểu chi tiết hơn về cấu trúc lệnh if và các lệnh điều kiện khác trong Python.

Cấu trúc lệnh if trong Python

Các điều kiện trong Python và lệnh if

Python hỗ trợ các điều kiện logic thông thường từ toán học:

  • Bằng: a == b
  • Không bằng: a != b
  • Nhỏ hơn: a b
  • Nhỏ hơn hoặc bằng: a = b
  • Lớn hơn: a > b
  • Lớn hơn hoặc bằng: a >= b

Các điều kiện trên có thể được sử dụng trong các câu lệnh if và vòng lặp.

Lệnh if được viết bằng cách sử dụng từ khóa if:

if dieu_kien:
    Khối mã

Ở đây, chúng ta đánh giá điều kiện và thực thi khối mã khi điều kiện là đúng. Nếu điều kiện là sai, khối mã sẽ không được thực thi.

Trong Python, khối mã của lệnh if được thụt lề vào trong. Khối mã của if bắt đầu với một thụt lề và kết thúc khi gặp dòng không thụt lề.

Ví dụ 1:

# Nếu là số dương ta sẽ in một thông điệp thích hợp
num = 3
if num > 0:
    print(num, "là số dương.")
print("Thông điệp này luôn được in.")

num = -1
if num > 0:
    print(num, "là số dương.")
print("Thông điệp này cũng luôn được in.")

Kết quả đầu ra của chương trình trên:

3 là số dương. Thông điệp này luôn được in. Thông điệp này cũng luôn được in.

Trong ví dụ trên, khi num là 3, điều kiện num > 0 là đúng, do đó khối mã của if được thực thi. Khi num là -1, điều kiện num > 0 là sai, do đó khối mã của if bị bỏ qua và thực hiện lệnh print() cuối cùng.

Chú ý rằng có một số lệnh print() không được thụt lề, điều này có nghĩa là print() này nằm ngoài khối mã if, nên nó sẽ được thực hiện bất kể điều kiện là gì.

Lệnh if...else

Cấu trúc lệnh if...else

Lệnh if...else kiểm tra điều kiện và thực thi khối mã của if nếu điều kiện là đúng. Nếu điều kiện sai, khối mã của else sẽ được thực thi. Thụt đầu dòng được sử dụng để phân biệt các khối mã.

if dieu_kien:
    Khối mã của if
else:
    Khối mã của else

Ví dụ 2:

# Chương trình kiểm tra xem số âm hay dương
# và hiển thị thông báo phù hợp
num = 3
# Hãy thử chương trình với 2 giá trị sau:
# num = -5
# num = 0
if num >= 0:
    print("Số dương hoặc bằng 0")
else:
    print("Số âm")

Trong ví dụ 2, khi biến num là 3, điều kiện num >= 0 là đúng và khối mã sau if được thực thi, khối mã sau else sẽ bị bỏ qua.

Nếu num là -5, điều kiện num >= 0 là sai và khối mã sau else sẽ được thực thi, phần nội dung sau if bị bỏ qua.

Nếu num là 0, điều kiện num >= 0 là đúng và khối mã sau if được thực thi, phần nội dung sau else bị bỏ qua.

Lệnh if...elif...else trong Python

Cấu trúc lệnh if...elif...else

elif là viết tắt của else if, cho phép chúng ta kiểm tra nhiều điều kiện. Trong lệnh if...elif...else, nếu điều kiện trong khối if không đúng, chương trình sẽ kiểm tra điều kiện của các khối elif tiếp theo và thực thi khối mã tương ứng. Nếu tất cả các điều kiện đều sai, khối mã của else sẽ được thực thi.

Chỉ có một khối mã trong lệnh if...elif...else được thực thi nếu điều kiện đúng.

Có thể có hoặc không có khối elif, phần else là tùy chọn.

if dieu_kien1:
    Khối mã của if
elif dieu_kien2:
    Khối mã của elif
else:
    Khối mã của else

Ví dụ 3:

x = int(input("Nhập một số: "))
if x  0:
    print('Số âm')
elif x == 0:
    print('Số 0')
else:
    print('Số dương')

Kết quả đầu ra:

Nhập một số: 10
Số dương
  • Nếu x là số âm, in ra màn hình: "Số âm".
  • Nếu x = 0, in ra: "Số 0".
  • Nếu x = 1, in ra: "Số dương".
  • Nếu cả 3 điều kiện trên đều sai, in ra: "Số dương".

Lệnh if...elif...elif... là sự thay thế cho câu lệnh switch hay case trong các ngôn ngữ lập trình khác.

Lệnh if lồng nhau trong Python

Chúng ta có thể viết lệnh if...elif...else trong một lệnh if...elif...else khác và tạo ra lệnh if lồng nhau. Không có giới hạn về số lệnh lồng vào lệnh khác. Thụt đầu dòng là cách duy nhất để nhận diện mức độ lồng, do đó, nó có thể gây khó hiểu và nhầm lẫn. Chúng ta nên hạn chế sử dụng lệnh if lồng nhau nếu có thể.

Ví dụ 4:

# Trong đoạn code này, nhập vào một số
# Kiểm tra xem số âm hay dương
# hay bằng không và hiển thị
# thông báo phù hợp
# Sử dụng hàm if lồng nhau
num = float(input("Nhập một số: "))
if num >= 0:
    if num == 0:
        print("Số Không")
    else:
        print("Số dương")
else:
    print("Số âm")

Kết quả 1:

Nhập một số: 10
Số dương

Kết quả 2:

Nhập một số: -5
Số âm

Kết quả 3:

Nhập một số: 0
Số Không

Ví dụ 5:

x = 41
if x > 10:
    print("Above ten,")
    if x > 20:
        print("and also above 20!")
    else:
        print("but not above 20.")

Lệnh pass trong Python

Các lệnh if không thể trống, nhưng nếu vì lý do nào đó bạn có một lệnh if không có nội dung, bạn có thể sử dụng lệnh pass để tránh lỗi.

Ví dụ:

a = 33
b = 200
if b > a:
    pass

Những câu hỏi thường gặp về các lệnh điều kiện trong Python

Điều gì xảy ra khi điều kiện if không được đáp ứng?

Nếu điều kiện của lệnh if là true, khối mã bên trong if sẽ được thực thi. Tuy nhiên, nếu điều kiện if không được đáp ứng, mã bên trong dấu ngoặc nhọn sẽ được bỏ qua và lệnh if tiếp theo sẽ được thực thi. Nó sẽ hiển thị một thông báo lỗi vì không khớp với điều kiện if đã được chỉ định.

Khi nào lệnh else không hoạt động?

Đôi khi, bạn không nhận được kết quả mong muốn khi sử dụng lệnh else. Điều này thường xảy ra khi một chương trình có nhiều hơn hai câu lệnh hoặc điều kiện. Nếu gặp vấn đề với lệnh else, nguyên nhân có thể là bạn đã nhầm lẫn toán tử “;” với phần kết thúc của câu lệnh if. Do đó, khi phát hiện else sau vài bước, nó bắt đầu báo cáo lỗi.

Else và While Else có ý nghĩa gì trong Python?

Python cung cấp các tính năng hữu ích như for-else và while-else. Khối else có thể được sử dụng sau vòng lặp for và while. Nếu lệnh break không kết thúc vòng lặp, khối else sẽ được thực thi.

Cú pháp của lệnh for-else Python là:

for i in range(n):
    # code
else:
    # code

Cú pháp của lệnh while-else Python là:

while điều_kiện:
    # code
else:
    # code

Dấu == nghĩa là gì trong Python?

Toán tử == được sử dụng để so sánh sự tương đồng giữa hai đối tượng. Trong Python, một dấu bằng phân bổ một giá trị cho một biến, trong khi hai dấu bằng == kiểm tra xem hai biểu thức có giống nhau hay không. Nó so sánh giá trị của hai mục. Nếu bạn muốn đánh giá xem hai đối tượng có chia sẻ các đặc điểm giống nhau hay không và không quan tâm đến vị trí lưu trữ của chúng trong bộ nhớ, thì đó là tất cả những gì bạn cần.

Đó là những điều cơ bản về cách sử dụng lệnh if và các lệnh điều kiện khác trong Python. Hi vọng bài viết này hữu ích với bạn.

Giờ bạn đã nắm được những yếu tố cơ bản khi sử dụng lệnh if trong Python rồi. Hãy thử làm một bài kiểm tra nhẹ nhàng để xem bạn đã thực sự hiểu chưa nhé!

Phần tiếp theo chúng ta sẽ tìm hiểu về vòng lặp for. Hãy tiếp tục theo dõi nhé.

1