Mệnh đề điều kiện if trong Python

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách sử dụng câu lệnh có điều kiện trong Python.Trong Python câu lệnh if cho phép thực thi có điều kiện một câu lệnh hoặc một nhóm câu lệnh dựa trên giá trị của một biểu thức.

Tham gia cộng đồng học tập Bumbii trên Discord

  • Chia sẻ, hỏi đáp, bàn luận các vấn đề học tập.
  • Gặp gỡ các anh chị, thầy cô có nhiều năm kinh nghiệm.
  • Cập nhật các kiến thức, tài liệu mới nhất.

Tham gia ngay!

Giới thiệu câu lệnh if

Chúng ta sẽ bắt đầu với câu lệnh if cơ bản nhất. Ở dạng đơn giản nhất, nó trông như thế này:

if <condition>:
    <statement>

Trong đoạn ở trên:

  • Câu lệnh if sẽ kiểm tra điều kiện(<condition>) trước, hàm này sẽ trả về giá trị bool (True hoặc False).
  • <statement> là một câu lệnh Python, và phải được thụt lề(Bumbii sẽ giải thích tại sao phải thụt lề ở bên dưới).

Nếu <condition>True thì <statement> sẽ được thực thi. Nếu <condition>False thì <statement> sẽ bị bỏ qua và không được thực thi.

Lưu ý rằng dấu hai chấm (:) sau <condition> là bắt buộc. Một số ngôn ngữ lập trình yêu cầu <condition> phải được đặt trong dấu ngoặc đơn, nhưng Python thì không.

Dưới đây là ví dụ về câu lệnh if:

average_score = input('Enter your average score: ')
if float(average_score) >= 8.0:
    print("You are classified as Excellent")

Ví dụ này yêu cầu bạn nhập vào điểm trung bình của bạn. Nếu bạn nhập một số thực lớn hơn hoặc bằng 8.0, chương trình sẽ hiển thị thông báo “You’re classified as Excellent” trên màn hình. Nếu không thì chương trình không làm gì cả.

Điều kiện float(average_score) >= 8.0: chuyển đổi chuỗi đầu vào thành số thực và so sánh nó với 8.0.

Bên dưới là kết quả hiển thị trên màn hình khi nhập chuỗi đầu vào là 8.0:

Enter your average score: 8.0
You are classified as Excellent

Thụt lề trong Python

Thụt lề (indentation) trong Python được người lập trình sử dụng để sắp xếp mã nguồn bằng cách sử dụng khoảng trắng hoặc tab để thể hiện mức độ lồng nhau của các khối mã. Trong các ngôn ngữ lập trình khác, thường có việc sử dụng dấu ngoặc nhọn ({}), trong khi Python thay thế bằng việc sử dụng khoảng trắng. Thụt lề rõ ràng là một phần quan trọng của Python và ảnh hưởng trực tiếp đến tính đọc và cấu trúc của mã nguồn.

Thụt lề trong Python không chỉ là vấn đề thẩm mỹ mà còn ảnh hưởng đến việc thực thi mã. Khi bạn không tuân theo quy tắc thụt lề, Python sẽ phát sinh lỗi hoặc thậm chí làm cho mã của bạn hoạt động không đúng cách. Thụt lề giúp bạn phân biệt giữa các khối mã và cho phép bạn biết được mã nào được thực thi trong một phạm vi cụ thể. Điều này làm cho mã Python trở nên rất dễ đọc và dễ hiểu, đặc biệt là khi bạn cần làm việc với mã của người khác hoặc khi bạn quay lại mã của mình sau một thời gian dài.

Hãy xem ví dụ bên dưới:

average_score = input('Enter your average score: ')
if float(average_score) >= 8.0:
    print("You are classified as Excellent")
    print("Please check the detailed scores for each subject.")

Trong ví dụ này, nếu bạn nhập một số lớn hơn hoặc bằng 8.0, bạn sẽ thấy hai thông báo. Vì 2 thông báo được thụt lề tại cùng một vị trí thì được coi là cùng một khối. Bên dưới là kết quả:

Enter your average score: 8.0
You are classified as Excellent
Please check the detailed scores for each subject.

Nếu bạn thay đổi cách thụt lề như bên dưới:

average_score = input('Enter your average score: ')
if float(average_score) >= 8.0:
    print("You are classified as Excellent")
print("Please check the detailed scores for each subject.")

Trong đoạn code này, câu lệnh cuối cùng luôn thực thi và nó không quan tâm đến câu lệnh if. Lý do là nó không thuộc khối if.

Nếu bạn nhập một số lớn hơn hoặc bằng 8.0, bạn sẽ thấy hai thông báo. Ngược lại chỉ thấy một dòng thông báo bên ngoài khối if.

Enter your average score: 8.1
You are classified as Excellent
Please check the detailed scores for each subject.
####
Enter your average score: 7.9
Please check the detailed scores for each subject.

Mệnh đề if và else trong Python

Thông thường, bạn muốn thực hiện một hành động khi điều kiện là đúng(True) và một hành động khác khi điều kiện là Sai(False).

Để làm như vậy, bạn sử dụng câu lệnh if…else.

if condition:
    if-block;
else:
    else-block;

Trong cú pháp này, if…else sẽ thực thi khối if-block nếu điều kiện được đánh giá là True. Nếu không, nó sẽ thực thi khối else-block.

Ví dụ sau minh họa cho bạn cách sử dụng câu lệnh  if…else:

age = input('Enter your age: ')
if int(age) >= 18:
    print("You can drive a car.")
else:
    print("You can not drive a car.")

Trong ví dụ này, nếu bạn nhập tuổi của mình với số nhỏ hơn 18, bạn sẽ thấy thông báo “You can not drive a car.” như thế này:

Enter your age: 17
You can not drive a car.

Mệnh đề if, elif, else trong Python

Nếu bạn muốn kiểm tra nhiều điều kiện và thực hiện một hành động tương ứng, bạn có thể sử dụng câu lệnh if…elif…else. Elif là viết tắt của else if.

Cú pháp nếu câu lệnh if…elif…else:

if if-condition:
    if-block
elif elif-condition1:
    elif-block1
elif elif-condition2:
    elif-block2
…
else:
    else-block

Chương trình sẽ kiểm tra từng điều kiện (if-condition, elif-condition1, elif-condition2, …) theo thứ tự cho đến khi tìm thấy điều kiện đánh giá là True.

Khi chương trình tìm thấy một điều kiện True, chương trình sẽ thực thi câu lệnh bên trong khối của điều kiện đó và bỏ qua việc kiểm tra các điều kiện còn lại.

Nếu không có điều kiện nào là True, chương trình sẽ thực thi câu lệnh trong mệnh đề else.

Lưu ý rằng khối else là tùy chọn, có thể có hoặc không. Nếu bạn bỏ qua nó và không có điều kiện nào là True thì chương trình sẽ không làm gì cả.

Chúng ta cùng xem ví dụ bên dưới để rõ hơn nhé. Bên dưới là một ví dụ xác định số phút dựa trên số giây nhập vào:

seconds = input('Enter the number of seconds: ')
# convert the string to int
your_seconds = int(seconds)
# condition clauses
if your_seconds > 60:
    print("The entered number of seconds is more than one minute.")
elif your_seconds == 60:
    print("The entered number of seconds is one minute.")
else:
    print("The entered number of seconds is less than one minute.")

Trong ví dụ này:

  • Nếu số giây nhập vào lớn hơn 60 thì chương trình sẽ hiển thị “The entered number of seconds is more than one minute.”.
  • Nếu số giây nhập vào bằng 60 thì chương trình sẽ hiển thị “The entered number of seconds is one minute.”.
  • Nếu không thoả hai điều kiện trên, chương trình sẽ hiển thị “The entered number of seconds is less than one minute.”.

Tổng kết

Sử dụng câu lệnh if khi bạn muốn chạy một khối mã dựa trên một điều kiện.

Sử dụng câu lệnh if…else khi bạn muốn chạy một khối mã khác nếu điều kiện không đúng(False).

Sử dụng câu lệnh if…elif…else khi bạn muốn kiểm tra nhiều điều kiện và thực thi khối mã tương ứng khi một điều kiện True.

Chúc các bạn học tốt!

Các code ví dụ trong bài viết các bạn có thể xem trên Github

Python cơ bản

Python cơ bản

Phần 1: Kiến thức tổng quan

Cú pháp (syntax)

Biến (variables)

Chuỗi ký tự (strings)

Số (numbers) trong Python

Boolean trong Python

Vòng lặp trong Python

Danh sách (list) trong Python

Bộ dữ liệu (tuple) trong Python

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest

0 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận
0
Cùng chia sẻ bình luận của bạn nào!x