Câu lệnh if có điều kiện trong Python. Cú pháp, khối else / elif, ví dụ

Trong quá trình học lập trình, người ta thường tạo ra những chương trình không dễ áp ​​dụng vào thực tế cuộc sống. Rốt cuộc, đôi khi bạn phải làm theo hướng dẫn chỉ trong những điều kiện nhất định. Để có thể thực hiện điều này trong chương trình, tất cả các ngôn ngữ đều có câu lệnh điều khiển. Với sự trợ giúp của họ, bạn có thể kiểm soát luồng thực thi mã, tạo vòng lặp hoặc thực hiện một số hành động chỉ khi một điều kiện nhất định là đúng.

Hôm nay chúng ta sẽ nói về câu lệnh if, câu lệnh kiểm tra tình hình hiện tại cho một điều kiện nhất định và dựa trên thông tin này, đưa ra quyết định về các hành động tiếp theo.

Các loại tuyên bố kiểm soát

Nói chung, if không phải là câu lệnh duy nhất điều khiển luồng chương trình. Cũng như bản thân anh ta có thể là một thành phần của một chuỗi các nhà khai thác lớn hơn.

Ngoài ra còn có các vòng lặp và câu lệnh kiểm soát quá trình thực hiện nó. Hôm nay chúng ta sẽ chỉ nói về toán tử điều kiện và các chuỗi mà nó có thể tham gia.

Trong lập trình, có một thứ gọi là phân nhánh. Chính điều này có nghĩa là một chuỗi lệnh chỉ được thực hiện khi một điều kiện nhất định là đúng. Bản thân các tiêu chí có thể khác nhau:

  1. Bằng nhau của một biến đối với một giá trị nhất định.
  2. Thực hiện một hành động cụ thể.
  3. Trạng thái ứng dụng (thu gọn hoặc không).

Phổ có thể lớn hơn nhiều. Câu lệnh điều kiện có nhiều loại:

  1. Với một chi nhánh. Nghĩa là, một lần kiểm tra được thực hiện, do đó một số hành động nhất định được thực hiện.
  2. Với hai hoặc nhiều chi nhánh. Nếu tiêu chí 1 là đúng thì kiểm tra tiêu chí 2. Nếu đúng thì kiểm tra 3. Và cứ thế thực hiện kiểm tra nhiều lần theo yêu cầu.
  3. Với một số điều kiện. Mọi thứ đều đơn giản ở đây. Trình thông dịch kiểm tra nhiều điều kiện hoặc một trong số chúng.

câu lệnh if

Cấu trúc của câu lệnh if tương tự nhau trong tất cả các ngôn ngữ. Tuy nhiên, trong Python, cú pháp của nó hơi khác so với tất cả các cú pháp khác:

nếu điều kiện:

    <входящее выражение 1>

    <входящее выражение 2>

<не входящее выражение>

Đầu tiên, chính toán tử được khai báo, sau đó điều kiện mà nó bắt đầu hoạt động được ghi. Điều kiện có thể là đúng hoặc sai.

Tiếp theo là một khối với các lệnh. Nếu nó ngay sau một tiêu chí được đáp ứng, thì chuỗi lệnh tương ứng được gọi là khối if. Bạn có thể sử dụng bất kỳ số lượng lệnh nào trong đó.

Chú ý! Thụt lề trong tất cả các lệnh khối if phải có cùng kích thước. Các ranh giới khối được xác định bởi các vết lõm. 

Theo tài liệu ngôn ngữ, thụt đầu dòng là 4 dấu cách. 

Nhà điều hành này hoạt động như thế nào? Khi trình thông dịch nhìn thấy từ if, nó sẽ ngay lập tức kiểm tra biểu thức theo tiêu chí do người dùng chỉ định. Nếu đúng như vậy, thì anh ta bắt đầu tìm kiếm hướng dẫn và làm theo chúng. Nếu không, tất cả các lệnh từ khối này sẽ bị bỏ qua.

Nếu một câu lệnh sau điều kiện không được thụt lề, nó không được coi là một khối if. Trong tình huống của chúng tôi, dòng này là . Do đó, bất kể kết quả của việc kiểm tra, dòng này sẽ được thực hiện.

Đây là một đoạn mã cho một ví dụ về cách hoạt động của toán tử này.

number = int (input (“Nhập một số:“))

nếu số> 10:

    print (“Số lớn hơn 10”)

Chương trình này nhắc người dùng nhập một số và kiểm tra xem nó có lớn hơn 10. Nếu có, nó sẽ trả về thông tin thích hợp. Ví dụ, nếu người dùng nhập số 5, thì chương trình sẽ đơn giản kết thúc, và thế là xong.

Nhưng nếu bạn chỉ định số 100, thì thông dịch viên sẽ hiểu rằng nó lớn hơn XNUMX và báo cáo nó.

Chú ý! Trong trường hợp của chúng ta, nếu điều kiện sai, chương trình sẽ dừng lại vì không có lệnh nào được đưa ra sau lệnh.

Chỉ có một lệnh trong đoạn mã trên. Nhưng có rất nhiều người trong số họ. Yêu cầu duy nhất là thụt lề.

Bây giờ chúng ta hãy phân tích chuỗi lệnh này.

number = int (input (“Viết một số:“))

nếu số> 10:

    print (“dòng đầu tiên”)

    print (“dòng thứ hai”)

    print (“dòng thứ ba”)

print (“Dòng được thực thi, bất kể số đã nhập”)

print (“Kết thúc ứng dụng”)

Cố gắng đoán kết quả đầu ra sẽ như thế nào nếu bạn nhập các giá trị 2, 5, 10, 15, 50.

Như bạn có thể thấy, nếu số do người dùng nhập nhiều hơn mười, thì ba dòng sẽ được xuất ra + một dòng có văn bản “Chạy mọi lúc…” và một dòng “Kết thúc”, và nếu ít hơn mười, thì chỉ một dòng, với một văn bản khác. Chỉ các dòng 3,4,5 sẽ được thực hiện nếu đúng. Tuy nhiên, hai dòng cuối cùng sẽ được viết bất kể người dùng chỉ định số nào.

Nếu bạn sử dụng các câu lệnh trực tiếp trong bảng điều khiển, kết quả sẽ khác. Trình thông dịch ngay lập tức bật chế độ nhiều dòng nếu sau khi chỉ định tiêu chí xác minh, nhấn Enter.

Giả sử chúng ta đã viết chuỗi lệnh sau.

>>>

>>> n = 100

>>> nếu n> 10:

...

Sau đó, chúng ta sẽ thấy rằng >>> đã được thay thế bằng dấu chấm lửng. Điều này có nghĩa là chế độ nhập nhiều dòng được bật. Nói cách đơn giản, nếu bạn nhấn Enter, bạn sẽ được chuyển đến đầu vào của giai đoạn thứ hai của hướng dẫn. 

Và để thoát khỏi khối này, bạn cần thêm một cấu trúc nữa vào khối if.

>>>

>>> n = 100

>>> nếu n> 10:

… In («nv 10»)

...

Nếu điều kiện không đúng, chương trình kết thúc. Đây là một vấn đề, vì người dùng có thể cảm thấy một chương trình như vậy đã bị đóng do lỗi. Vì vậy, cần phải đưa ra phản hồi cho người dùng. Đối với điều này, một liên kết được sử dụng nếu khác.

toán tử biểu thức nếu khác

Toán tử này cho phép bạn triển khai một liên kết: nếu biểu thức phù hợp với một quy tắc nhất định, hãy thực hiện các hành động này và nếu không, hãy thực hiện các hành động khác. Có nghĩa là, nó cho phép bạn chia dòng chảy của chương trình thành hai con đường. Cú pháp trực quan:

nếu điều kiện:

    # nếu khối

    tuyên bố 1

    tuyên bố 2

    và vv

khác:

    # khối khác

    tuyên bố 3

    tuyên bố 4

    và vân vân:

Hãy giải thích cách hoạt động của toán tử này. Đầu tiên, câu lệnh chuẩn được thực thi trong chuỗi thủy tùng, kiểm tra xem nó có khớp không điều kiện "đúng hay sai". Các hành động khác phụ thuộc vào kết quả của việc kiểm tra. Nếu đúng, lệnh nằm trong chuỗi lệnh theo sau điều kiện sẽ được thực thi trực tiếp. thủy tùng, nếu nó là sai, thì khác

Bằng cách này bạn có thể xử lý lỗi. Ví dụ: người dùng cần nhập bán kính. Rõ ràng, nó chỉ có thể là một số có dấu cộng hoặc giá trị rỗng. Nếu nó nhỏ hơn 0, thì bạn cần đưa ra một thông báo yêu cầu bạn nhập một số dương. 

Đây là đoạn mã thực hiện tác vụ này. Nhưng có một sai lầm ở đây. Hãy thử đoán xem cái nào. 

radius = int (input (“Nhập bán kính:“))

nếu bán kính> = 0:

    print (“Chu vi =“, 2 * 3.14 * bán kính)

    print (“Diện tích =“, 3.14 * bán kính ** 2)

    khác:

        print (“Vui lòng nhập một số dương”)

Lỗi thụt lề không khớp. If и Khác phải được định vị không có chúng hoặc có cùng số lượng chúng (tùy thuộc vào việc chúng có được lồng vào nhau hay không).

Hãy đưa ra một trường hợp sử dụng khác (trong đó mọi thứ sẽ chính xác với sự căn chỉnh của toán tử) - một phần tử ứng dụng kiểm tra mật khẩu.

password = input (“Nhập mật khẩu:“)

nếu mật khẩu == «sshh»:

    print (“Chào mừng”)

khác:

    print (“Quyền truy cập bị từ chối”)

Hướng dẫn này sẽ bỏ qua người khác nếu mật khẩu là sshh. Nếu có bất kỳ sự kết hợp nào khác giữa các chữ cái và số, thì nó sẽ hiển thị thông báo “Quyền truy cập bị từ chối”.

câu lệnh-biểu thức if-elif-else

Chỉ khi một số điều kiện không đúng, câu lệnh nằm trong khối mới được thực thi. khác. Biểu thức này hoạt động như thế này.

nếu điều kiện_1:

    # nếu khối

    tuyên bố

    tuyên bố

    tuyên bố thêm

Elif điều kiện_2:

    # khối elif đầu tiên

    tuyên bố

    tuyên bố

    tuyên bố thêm

Elif điều kiện_3:

    # khối elif thứ hai

    tuyên bố

    tuyên bố

    tuyên bố thêm

...

khác

    tuyên bố

    tuyên bố

    tuyên bố thêm

Bạn có thể chỉ định bất kỳ số lượng điều kiện bổ sung nào.

Câu lệnh lồng nhau

Một cách khác để triển khai nhiều điều kiện là chèn các kiểm tra điều kiện bổ sung trong khối if.

Nhà điều hành if bên trong một khối điều kiện khác

gre_score = int (input (“Nhập hạn mức tín dụng hiện tại của bạn”))

per_grad = int (input (“Nhập xếp hạng tín dụng của bạn:“))

nếu per_grad> 70:

    # bên ngoài nếu khối

        nếu gre_score> 150:

            # khối if bên trong

    print (“Xin chúc mừng, bạn đã nhận được một khoản vay”)

khác:

    print (“Xin lỗi, bạn không đủ điều kiện vay”)

Chương trình này thực hiện kiểm tra xếp hạng tín dụng. Nếu nó nhỏ hơn 70, chương trình báo cáo rằng người dùng không đủ điều kiện cho tín dụng. Nếu lớn hơn, kiểm tra thứ hai được thực hiện để xem liệu hạn mức tín dụng hiện tại có lớn hơn 150 hay không. Nếu có, thì một thông báo sẽ hiển thị rằng khoản vay đã được phát hành.

Nếu cả hai giá trị đều sai, thì một thông báo sẽ hiển thị rằng người dùng không có khả năng nhận được khoản vay. 

Bây giờ chúng ta hãy làm lại chương trình đó một chút.

gre_score = int (input (“Nhập giới hạn hiện tại:“))

per_grad = int (input (“Nhập điểm tín dụng:“))

nếu per_grad> 70:

    nếu gre_score> 150:

        print (“Xin chúc mừng, bạn đã nhận được một khoản vay”)

    khác:

        print (“Hạn mức tín dụng của bạn thấp”)

khác:

    print ("Xin lỗi, bạn không đủ điều kiện để được cấp tín dụng")

Bản thân mã rất giống nhau, nhưng được lồng vào nhau if cũng cung cấp một thuật toán trong trường hợp điều kiện từ nó trở thành sai. Tức là thẻ không đủ hạn mức nhưng lịch sử tín dụng tốt thì hiện ra thông báo “Bạn bị xếp hạng tín dụng thấp”.

câu lệnh if-else bên trong một điều kiện khác

Hãy làm một chương trình khác xác định điểm của học sinh dựa trên điểm kiểm tra.

score = int (input (“Nhập điểm của bạn:“))

nếu điểm> = 90:

    print ("Tuyệt vời! Điểm của bạn là A")

khác:

    nếu điểm> = 80:

print ("Tuyệt vời! Điểm của bạn là B")

    khác:

nếu điểm> = 70:

    print ("Tốt! Điểm của bạn là C")

khác:

    nếu điểm> = 60:

print (“Điểm của bạn là D. Nó đáng để nhắc lại tài liệu.”)

    khác:

print (“Bạn đã trượt kỳ thi”)

Trước tiên, ứng dụng sẽ kiểm tra xem liệu điểm số lớn hơn hoặc bằng 90. Nếu có, ứng dụng sẽ trả về điểm A. Nếu điều kiện này là sai, thì các kiểm tra tiếp theo sẽ được thực hiện. Chúng tôi thấy rằng thuật toán gần như giống nhau ở cái nhìn đầu tiên. Vì vậy, thay vì kiểm tra bên trong khác tốt hơn nên sử dụng kết hợp if-elif-else.

Vì vậy, nhà điều hành if thực hiện một chức năng rất quan trọng - nó đảm bảo rằng một số đoạn mã nhất định chỉ được thực thi khi có nhu cầu. Không thể tưởng tượng được việc lập trình mà không có nó, bởi vì ngay cả những thuật toán đơn giản nhất cũng yêu cầu những ngã rẽ như "nếu bạn đi bên trái, bạn sẽ tìm thấy nó, và nếu bạn đi sang bên phải, thì bạn cần phải làm điều này và điều kia."

Bình luận