Ba câu điều kiện trong python là gì?

Để viết các chương trình hữu ích, hầu như chúng ta luôn cần khả năng kiểm tra các điều kiện và thay đổi hành vi của chương trình cho phù hợp. Câu lệnh điều kiện cho chúng ta khả năng này. Dạng đơn giản nhất là câu lệnh if, có dạng tổng quát

if BOOLEAN EXPRESSION:
    STATEMENTS

Một số điều quan trọng cần lưu ý về câu lệnh

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
6

  1. Dấu hai chấm [

    if True:          # This is always true
        pass          # so this is always executed, but it does nothing
    else:
        pass
    
    8] là quan trọng và bắt buộc. Nó tách phần đầu của câu lệnh ghép khỏi phần thân

  2. Dòng sau dấu hai chấm phải được thụt vào. Tiêu chuẩn trong Python là sử dụng bốn khoảng trắng để thụt lề

  3. Tất cả các dòng được thụt vào cùng một lượng sau dấu hai chấm sẽ được thực thi bất cứ khi nào BOOLEAN EXPRESSION là true

Đây là một ví dụ

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]

Biểu thức boolean sau câu lệnh

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
6 được gọi là điều kiện. Nếu nó đúng, thì tất cả các câu lệnh thụt lề sẽ được thực thi. Điều gì xảy ra nếu điều kiện sai và
if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
0 không bằng
if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
1?

Chạy mã ví dụ này và xem điều gì sẽ xảy ra. Sau đó, thay đổi giá trị của

if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
0 thành giá trị khác với
if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
1 và chạy lại, xác nhận rằng bạn không nhận được bất kỳ kết quả nào

Lưu đồ của câu lệnh if

Cũng như câu lệnh

if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
5 ở chương trước, câu lệnh
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
6 là câu lệnh ghép. Câu lệnh ghép bao gồm một dòng tiêu đề và một phần thân. Dòng tiêu đề của câu lệnh
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
6 bắt đầu bằng từ khóa
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
6 theo sau là một biểu thức boolean và kết thúc bằng dấu hai chấm [
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
8]

Các câu lệnh thụt lề theo sau được gọi là một khối. Câu lệnh không thụt lề đầu tiên đánh dấu sự kết thúc của khối. Mỗi câu lệnh bên trong khối phải có cùng một vết lõm

Thụt lề và PEP 8 Python Style Guide

Cộng đồng Python đã phát triển Hướng dẫn về Phong cách cho Mã Python, thường được gọi đơn giản là “PEP 8”. Đề xuất cải tiến Python, hoặc PEP, là một phần của quy trình mà cộng đồng Python sử dụng để thảo luận và áp dụng các thay đổi đối với ngôn ngữ

PEP 8 khuyến nghị sử dụng 4 khoảng trắng cho mỗi mức thụt đầu dòng. Chúng tôi sẽ làm theo điều này [và các khuyến nghị PEP 8 khác] trong cuốn sách này

Để giúp chúng tôi học cách viết mã Python có kiểu dáng đẹp, có một chương trình tên là pep8 hoạt động như một trình kiểm tra hướng dẫn kiểu dáng tự động cho mã nguồn Python.

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
50 có thể cài đặt dưới dạng gói trên các hệ thống GNU/Linux dựa trên Debian như Ubuntu

Trong phần Vim của phụ lục, Định cấu hình Ubuntu để phát triển web Python, there is instruction on configuring vim to run

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
50 on your source code with the push of a button.

4. 1. 2. Câu lệnh
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
52¶

Thường xảy ra trường hợp bạn muốn điều này xảy ra khi điều kiện đó đúng và điều khác xảy ra khi điều kiện đó sai. Đối với điều đó, chúng tôi có tuyên bố

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
52

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
9

Ở đây, câu lệnh in đầu tiên sẽ được thực thi nếu

if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
0 bằng với
if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
1 và câu lệnh in được thụt vào dưới mệnh đề
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
56 sẽ được thực thi khi nó không bằng

Lưu đồ câu lệnh if other

Cú pháp của câu lệnh

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
52 trông như thế này

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
4

Mỗi câu lệnh bên trong khối

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
6 của câu lệnh
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
52 được thực thi theo thứ tự nếu biểu thức boolean ước tính là
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
70. Toàn bộ khối câu lệnh bị bỏ qua nếu biểu thức boolean ước tính là
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
71 và thay vào đó, tất cả các câu lệnh trong mệnh đề
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
56 được thực thi

Không có giới hạn về số lượng câu lệnh có thể xuất hiện dưới hai mệnh đề của câu lệnh

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
52, nhưng phải có ít nhất một câu lệnh trong mỗi khối. Đôi khi, sẽ rất hữu ích nếu có một phần không có câu lệnh nào [thường là để giữ chỗ, hoặc tạo khung cho đoạn mã bạn chưa viết]. Trong trường hợp đó, bạn có thể sử dụng câu lệnh
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
74, câu lệnh này không làm gì khác ngoài việc đóng vai trò giữ chỗ

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass

Thuật ngữ Python

Tài liệu Python đôi khi sử dụng thuật ngữ bộ câu lệnh để chỉ cái mà chúng ta gọi là khối ở đây. Chúng có nghĩa giống nhau và vì hầu hết các ngôn ngữ khác và các nhà khoa học máy tính đều sử dụng khối từ, chúng tôi sẽ gắn bó với điều đó

Cũng lưu ý rằng

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
56 không phải là một câu lệnh. Câu lệnh
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
6 có hai mệnh đề, một trong số đó là mệnh đề [tùy chọn]
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
56. Tài liệu Python gọi cả hai biểu mẫu, cùng với biểu mẫu tiếp theo mà chúng ta sắp gặp, câu lệnh
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
6

4. 2. Câu điều kiện theo chuỗi¶

Đôi khi có nhiều hơn hai khả năng và chúng ta cần nhiều hơn hai nhánh. Một cách để thể hiện một tính toán như vậy là một chuỗi điều kiện

if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C

Lưu đồ của chuỗi điều kiện này

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
79 là viết tắt của
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
90. Một lần nữa, chính xác một nhánh sẽ được thực thi. Không có giới hạn về số lượng câu lệnh
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
79 nhưng chỉ cho phép một câu lệnh
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
56 cuối cùng [và tùy chọn] duy nhất và nó phải là nhánh cuối cùng trong câu lệnh

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
5

Mỗi điều kiện được kiểm tra theo thứ tự. Nếu cái đầu tiên là sai, cái tiếp theo sẽ được chọn, v.v. Nếu một trong số chúng là đúng, thì nhánh tương ứng sẽ thực thi và câu lệnh kết thúc. Ngay cả khi có nhiều hơn một điều kiện là đúng, thì chỉ có nhánh đúng đầu tiên được thực thi

4. 3. Điều kiện lồng nhau¶

Một điều kiện cũng có thể được lồng trong một điều kiện khác. [Đó là cùng một chủ đề về khả năng kết hợp, một lần nữa. ] Chúng ta có thể viết ví dụ trước như sau

Lưu đồ của điều kiện lồng nhau này

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
7

Điều kiện bên ngoài chứa hai nhánh. Nhánh thứ hai chứa một câu lệnh

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
6 khác, có hai nhánh riêng. Hai nhánh đó cũng có thể chứa các câu điều kiện

Mặc dù việc thụt lề của các câu lệnh làm cho cấu trúc trở nên rõ ràng, nhưng các điều kiện lồng nhau rất nhanh trở nên khó đọc. Nói chung, nên tránh chúng khi bạn có thể

Các toán tử logic thường cung cấp một cách để đơn giản hóa các câu lệnh điều kiện lồng nhau. Ví dụ: chúng ta có thể viết lại đoạn mã sau bằng cách sử dụng một điều kiện duy nhất

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
9

Hàm

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
94 chỉ được gọi nếu chúng ta vượt qua cả hai điều kiện, vì vậy chúng ta có thể sử dụng toán tử
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
95

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
8

Ghi chú

Python thực sự cho phép một biểu mẫu viết tay ngắn cho việc này, vì vậy cách sau cũng sẽ hoạt động

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
0

4. 4. Lặp lại¶

Máy tính thường được sử dụng để tự động hóa các công việc lặp đi lặp lại. Lặp lại các tác vụ giống hệt hoặc tương tự nhau mà không mắc lỗi là điều mà máy tính làm tốt còn con người thì làm kém

Việc thực hiện lặp đi lặp lại một tập hợp các câu lệnh được gọi là phép lặp. Python có hai câu lệnh để lặp lại – câu lệnh

if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
5 mà chúng ta đã gặp ở chương trước và câu lệnh
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
97

Trước khi xem xét những điều đó, chúng ta cần xem lại một vài ý tưởng

4. 4. 1. Chỉ định lại¶

Như chúng ta đã thấy trong phần Biến là biến , việc gán nhiều hơn một lần cho cùng một biến là hợp pháp. Một nhiệm vụ mới làm cho một biến hiện có tham chiếu đến một giá trị mới [và ngừng tham chiếu đến giá trị cũ].

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
1

Đầu ra của chương trình này là

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
2

bởi vì lần đầu tiên

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
98 được in, giá trị của nó là 5 và lần thứ hai, giá trị của nó là 7

Đây là giao diện của sự phân công lại trong ảnh chụp nhanh trạng thái

Với phép gán lại, điều đặc biệt quan trọng là phải phân biệt giữa câu lệnh gán và biểu thức boolean kiểm tra sự bằng nhau. Bởi vì Python sử dụng mã thông báo bằng nhau [

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
99] để gán, nên việc diễn giải một câu lệnh như
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
80 là một phép thử boolean rất hấp dẫn. Không giống như toán học, nó không phải là. Hãy nhớ rằng mã thông báo Python cho toán tử đẳng thức là
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
81

Cũng lưu ý rằng phép thử đẳng thức là đối xứng, nhưng phép gán thì không. Ví dụ: nếu

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
82 thì
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
83. Nhưng trong Python, câu lệnh
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
84 là hợp lệ và
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
85 thì không

Hơn nữa, trong toán học, mệnh đề đẳng thức luôn đúng. Nếu bây giờ ________ 486, thì ________ 487 sẽ luôn bằng _______ 488. Trong Python, một câu lệnh gán có thể làm cho hai biến bằng nhau, nhưng do khả năng gán lại, chúng không cần phải giữ nguyên như vậy

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
3

Dòng thứ ba thay đổi giá trị của

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
87 nhưng không thay đổi giá trị của
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
88 nên chúng không còn bằng nhau

Ghi chú

Trong một số ngôn ngữ lập trình, một ký hiệu khác được sử dụng để gán, chẳng hạn như

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
01 hoặc
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
02, để tránh nhầm lẫn. Python đã chọn sử dụng mã thông báo
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
99 để gán và
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
81 cho đẳng thức. Đây là một lựa chọn phổ biến, cũng được tìm thấy trong các ngôn ngữ như C, C++, Java, JavaScript và PHP, mặc dù nó khiến mọi thứ hơi khó hiểu đối với các lập trình viên mới

4. 4. 2. Cập nhật biến¶

Khi một câu lệnh gán được thực thi, biểu thức bên phải [i. e. biểu thức xuất hiện sau mã thông báo gán] được đánh giá trước. Sau đó, kết quả của đánh giá đó được ghi vào biến ở phía bên trái, do đó thay đổi nó

Một trong những hình thức gán lại phổ biến nhất là cập nhật, trong đó giá trị mới của biến phụ thuộc vào giá trị cũ của nó

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
4

Dòng thứ hai có nghĩa là “lấy giá trị hiện tại của n, nhân nó với ba và thêm một, rồi đặt câu trả lời trở lại n làm giá trị mới của nó”. Như vậy sau khi thực hiện 2 dòng trên thì

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
05 sẽ có giá trị là 16

Nếu bạn cố lấy giá trị của một biến chưa tồn tại, bạn sẽ gặp lỗi

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
5

Trước khi bạn có thể cập nhật một biến, bạn phải khởi tạo nó, thường bằng một phép gán đơn giản

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
6

Câu lệnh thứ hai này — cập nhật một biến bằng cách thêm 1 vào nó — rất phổ biến. Nó được gọi là số gia của biến;

4. 5. Vòng lặp
if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C

Vòng lặp

if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
5 xử lý từng mục theo trình tự, do đó, nó được sử dụng với các kiểu dữ liệu trình tự của Python - chuỗi, danh sách và bộ dữ liệu

Mỗi mục lần lượt được [tái] gán cho biến vòng lặp và phần thân của vòng lặp được thực thi

Hình thức chung của một vòng lặp

if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
5 là

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
7

Đây là một ví dụ khác về câu lệnh ghép trong Python và giống như các câu lệnh rẽ nhánh, nó có phần đầu được kết thúc bằng dấu hai chấm [

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
8] và phần thân bao gồm một chuỗi gồm một hoặc nhiều câu lệnh được thụt vào cùng một lượng từ phần đầu

Biến vòng lặp được tạo khi câu lệnh

if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
5 chạy nên bạn không cần tạo biến trước rồi. Mỗi lần lặp gán biến vòng lặp cho phần tử tiếp theo trong chuỗi, sau đó thực hiện các câu lệnh trong phần thân. Câu lệnh kết thúc khi đến phần tử cuối cùng trong dãy

Loại luồng này được gọi là vòng lặp vì nó vòng ngược trở lại đỉnh sau mỗi lần lặp

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
8

Chạy qua tất cả các mục trong một chuỗi được gọi là duyệt qua chuỗi hoặc duyệt qua

Bạn nên chạy ví dụ này để xem những gì nó làm

Mẹo

Như với tất cả các ví dụ bạn thấy trong cuốn sách này, bạn nên tự mình thử đoạn mã này và xem nó làm được gì. Bạn cũng nên cố gắng dự đoán kết quả trước khi thực hiện và tạo các ví dụ liên quan của riêng bạn và thử chúng.

Nếu bạn nhận được kết quả như mong đợi, hãy vỗ nhẹ vào lưng và tiếp tục. Nếu bạn không, hãy cố gắng tìm hiểu tại sao. Đây là bản chất của phương pháp khoa học và rất cần thiết nếu bạn muốn suy nghĩ như một lập trình viên máy tính

Thông thường, bạn sẽ muốn một vòng lặp lặp lại một số lần nhất định hoặc lặp lại trên một dãy số nhất định. Hàm

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
11 có ích cho việc đó

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
9

4. 6. Bảng¶

Một trong những điều tốt cho các vòng lặp là tạo bảng. Trước khi có máy tính, mọi người phải tính logarit, sin và cosin và các hàm toán học khác bằng tay. Để làm điều đó dễ dàng hơn, sách toán học chứa các bảng dài liệt kê các giá trị của các hàm này. Tạo các bảng chậm và nhàm chán, và chúng có xu hướng đầy lỗi

Khi máy tính xuất hiện, một trong những phản ứng ban đầu là, “Điều này thật tuyệt. Chúng ta có thể sử dụng máy tính để tạo bảng nên sẽ không có sai sót. ” Điều đó hóa ra đúng [hầu hết] nhưng thiển cận. Ngay sau đó, máy tính và máy tính phổ biến đến mức các bảng đã trở nên lỗi thời

Vâng, gần như. Đối với một số hoạt động, máy tính sử dụng bảng giá trị để nhận được câu trả lời gần đúng và sau đó thực hiện tính toán để cải thiện kết quả gần đúng. Trong một số trường hợp, đã xảy ra lỗi trong các bảng bên dưới, nổi tiếng nhất là trong bảng mà chip xử lý Intel Pentium được sử dụng để thực hiện phép chia dấu phẩy động

Mặc dù bảng nhật ký không còn hữu ích như trước đây, nhưng nó vẫn là một ví dụ điển hình. Chương trình sau đây xuất ra một chuỗi các giá trị ở cột bên trái và 2 được nâng lên lũy thừa của giá trị đó ở cột bên phải

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
90

Sử dụng ký tự tab [

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
12] làm cho đầu ra được căn chỉnh độc đáo

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
91

4. 7. Câu lệnh
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
97¶

Cú pháp chung cho câu lệnh while trông như thế này

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
92

Giống như các câu lệnh rẽ nhánh và vòng lặp

if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
5, câu lệnh
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
97 là một câu lệnh ghép bao gồm phần đầu và phần thân. Vòng lặp
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
97 thực thi với số lần không xác định, miễn là BOOLEAN EXPRESSION là đúng

Đây là một ví dụ đơn giản

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
93

Lưu ý rằng nếu

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
17 được đặt thành
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
18 trên dòng đầu tiên, phần thân của câu lệnh
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
97 sẽ không được thực thi

Đây là một chương trình ví dụ phức tạp hơn thể hiện việc sử dụng câu lệnh

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
97

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
94

Luồng thực thi cho một câu lệnh

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
97 hoạt động như thế này

  1. Đánh giá điều kiện [

    food = 'spam'
    
    if food == 'spam':
        print['Ummmm, my favorite!']
        print['I feel like saying it 100 times...']
        print[100 * [food + '! ']]
    
    22], mang lại
    if True:          # This is always true
        pass          # so this is always executed, but it does nothing
    else:
        pass
    
    71 hoặc
    if True:          # This is always true
        pass          # so this is always executed, but it does nothing
    else:
        pass
    
    70

  2. Nếu điều kiện sai, thoát khỏi câu lệnh

    food = 'spam'
    
    if food == 'spam':
        print['Ummmm, my favorite!']
        print['I feel like saying it 100 times...']
        print[100 * [food + '! ']]
    
    97 và tiếp tục thực hiện ở câu lệnh tiếp theo

  3. Nếu điều kiện là đúng, hãy thực hiện từng

    food = 'spam'
    
    if food == 'spam':
        print['Ummmm, my favorite!']
        print['I feel like saying it 100 times...']
        print[100 * [food + '! ']]
    
    26 trong phần thân rồi quay lại bước 1

Phần nội dung bao gồm tất cả các câu lệnh bên dưới tiêu đề có cùng độ thụt đầu dòng

Phần thân của vòng lặp sẽ thay đổi giá trị của một hoặc nhiều biến để cuối cùng điều kiện trở thành sai và vòng lặp kết thúc. Nếu không, vòng lặp sẽ lặp lại mãi mãi, được gọi là vòng lặp vô hạn

Một nguồn giải trí bất tận cho các lập trình viên máy tính là quan sát thấy rằng các hướng dẫn về dầu gội, tạo bọt, xả, lặp lại, là một vòng lặp vô tận.

Trong trường hợp ở đây, chúng ta có thể chứng minh rằng vòng lặp kết thúc vì chúng ta biết rằng giá trị của

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
27 là hữu hạn và chúng ta có thể thấy rằng giá trị của
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
28 tăng lên mỗi lần qua vòng lặp, vì vậy cuối cùng nó sẽ phải bằng
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
27. Trong các trường hợp khác, không dễ để nói

Điều bạn sẽ nhận thấy ở đây là vòng lặp

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
97 phù hợp với bạn — lập trình viên — hơn vòng lặp
if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
5 tương đương. Khi sử dụng vòng lặp
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
97, người ta phải tự điều khiển biến vòng lặp. cung cấp cho nó một giá trị ban đầu, kiểm tra để hoàn thành và sau đó đảm bảo rằng bạn thay đổi thứ gì đó trong phần thân để vòng lặp kết thúc

4. 8. Lựa chọn giữa
if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
5 và
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
97¶

Vậy tại sao lại có hai loại vòng lặp nếu

if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
5 trông dễ dàng hơn?

Sử dụng vòng lặp

if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
5 nếu bạn biết, trước khi bắt đầu lặp, số lần tối đa bạn cần để thực hiện phần thân. Ví dụ: nếu bạn đang duyệt qua một danh sách các phần tử, bạn biết rằng số lần lặp tối đa mà bạn có thể cần là “tất cả các phần tử trong danh sách”. Hoặc nếu cần in bảng 12 lần ta biết ngay vòng lặp cần chạy bao nhiêu lần

Vì vậy, bất kỳ vấn đề nào như “lặp lại mô hình thời tiết này trong 1000 chu kỳ” hoặc “tìm kiếm danh sách các từ này”, “tìm tất cả các số nguyên tố lên đến 10000” đều gợi ý rằng vòng lặp

if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
5 là tốt nhất

Ngược lại, nếu bạn được yêu cầu lặp lại một số tính toán cho đến khi một số điều kiện được đáp ứng và bạn không thể tính toán trước khi điều này xảy ra, như chúng ta đã làm trong chương trình “tên lớn nhất”, thì bạn sẽ cần một vòng lặp

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
97

Chúng tôi gọi trường hợp đầu tiên là lặp lại xác định - chúng tôi có một số giới hạn nhất định cho những gì cần thiết. Trường hợp thứ hai được gọi là phép lặp không xác định — chúng ta không chắc mình sẽ cần bao nhiêu phép lặp — chúng ta thậm chí không thể thiết lập giới hạn trên

4. 9. Dò tìm chương trình¶

Để viết các chương trình máy tính hiệu quả, một lập trình viên cần phát triển khả năng theo dõi quá trình thực hiện chương trình máy tính. Theo dõi liên quan đến việc “trở thành máy tính” và theo dõi luồng thực thi thông qua một chương trình mẫu chạy, ghi lại trạng thái của tất cả các biến và bất kỳ đầu ra nào mà chương trình tạo ra sau mỗi lệnh được thực thi

Để hiểu quy trình này, hãy theo dõi quá trình thực thi chương trình từ phần Câu lệnh while .

Khi bắt đầu theo dõi, chúng tôi có một biến cục bộ,

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
40 với giá trị ban đầu là
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
41. Người dùng sẽ nhập một chuỗi được lưu trữ trong biến,
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
42. Giả sử họ nhập
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
43. Dòng tiếp theo tạo một biến có tên là
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
28 và đặt cho nó giá trị ban đầu là ________ 345

Để theo dõi tất cả những điều này khi bạn theo dõi bằng tay một chương trình, hãy tạo một tiêu đề cột trên một tờ giấy cho mỗi biến được tạo khi chương trình chạy và một cột khác cho đầu ra. Dấu vết của chúng tôi cho đến nay sẽ trông giống như thế này

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
95

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
46 đánh giá bằng
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
70 [hãy dành một phút để thuyết phục bản thân về điều này], thân vòng lặp được thực thi

Bây giờ người dùng sẽ thấy

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
96

Giả sử người dùng nhập vào

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
48 lần này,
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
28 sẽ được tăng lên,
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
46 lại đánh giá thành
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
70 và dấu vết của chúng ta bây giờ sẽ như thế này

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
97

Một dấu vết đầy đủ của chương trình có thể tạo ra một cái gì đó như thế này

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
98

Việc theo dõi có thể hơi tẻ nhạt và dễ xảy ra lỗi [đó là lý do tại sao chúng tôi yêu cầu máy tính thực hiện công việc này ngay từ đầu. ], nhưng nó là một kỹ năng cần thiết cho một lập trình viên. Từ một dấu vết, chúng ta có thể học được nhiều điều về cách mã của chúng ta hoạt động

4. 10. Bài tập viết tắt¶

Tăng một biến phổ biến đến mức Python cung cấp một cú pháp viết tắt cho nó

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
99

________ 352 là viết tắt của ________ 353. Chúng tôi phát âm toán tử là “cộng-bằng”. Giá trị gia tăng không nhất thiết phải là 1

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
40

Có các chữ viết tắt tương tự cho

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
54,
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
55,
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
56,
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
57 và
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
58

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
41

4. 11. Ví dụ khác về
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
97. Trò chơi đoán¶

Chương trình sau thực hiện một trò chơi đoán đơn giản

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
42

Chương trình này sử dụng định luật toán học tam phân [cho các số thực a và b, chính xác một trong ba số này phải đúng. a > b, a < b hoặc a == b]

4. 12. Câu lệnh
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
60¶

Câu lệnh break được sử dụng để rời khỏi phần thân của vòng lặp ngay lập tức. Câu lệnh tiếp theo được thực thi là câu lệnh đầu tiên sau phần thân

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
43

bản in này

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
44

4. 13. Câu lệnh
food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
61¶

Đây là một câu lệnh luồng điều khiển khiến chương trình ngay lập tức bỏ qua việc xử lý phần còn lại của phần thân vòng lặp, cho lần lặp hiện tại. Nhưng vòng lặp vẫn tiếp tục chạy cho các lần lặp lại còn lại của nó

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
45

bản in này

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
46

4. 14. Ví dụ
if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
5 khác¶

Đây là một ví dụ kết hợp một số điều chúng ta đã học được

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
47

Theo dõi chương trình này và đảm bảo rằng bạn cảm thấy tự tin rằng bạn hiểu cách thức hoạt động của nó

4. 15. Vòng lặp lồng nhau dành cho dữ liệu lồng nhau¶

Bây giờ chúng ta sẽ đưa ra một danh sách dữ liệu có cấu trúc thậm chí còn mạo hiểm hơn. Trong trường hợp này, chúng tôi có một danh sách các sinh viên. Mỗi sinh viên có một tên được ghép nối với một danh sách các môn học khác mà họ đăng ký

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
48

Ở đây chúng tôi đã gán một danh sách năm phần tử cho biến

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
63. Hãy in ra tên từng sinh viên và số môn học họ đăng ký

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
49

Python đáp ứng một cách dễ chịu với đầu ra sau

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
0

Bây giờ chúng tôi muốn hỏi có bao nhiêu sinh viên đang học CompSci. Điều này cần một bộ đếm và đối với mỗi học sinh, chúng tôi cần một vòng lặp thứ hai để kiểm tra lần lượt từng môn học

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
1

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
2

Bạn nên thiết lập một danh sách dữ liệu của riêng mình mà bạn quan tâm — có thể là danh sách các đĩa CD của bạn, mỗi đĩa chứa danh sách tên bài hát trên đĩa CD hoặc danh sách tên phim, mỗi đĩa có danh sách các ngôi sao điện ảnh đã đóng trong phim. . Sau đó, bạn có thể đặt những câu hỏi như "Những bộ phim nào có sự tham gia của Angelina Jolie?"

4. 16. Danh sách hiểu¶

Khả năng hiểu danh sách là một cấu trúc cú pháp cho phép tạo danh sách từ các danh sách khác bằng cách sử dụng cú pháp toán học nhỏ gọn

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
3

Cú pháp chung cho một biểu thức hiểu danh sách là

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
4

Biểu thức danh sách này có tác dụng tương tự như

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
5

Như bạn có thể thấy, việc hiểu danh sách nhỏ gọn hơn nhiều

4. 17. Bảng thuật ngữ¶

nối thêm

Để thêm dữ liệu mới vào cuối tệp hoặc đối tượng dữ liệu khác

khối

Một nhóm các câu lệnh liên tiếp có cùng dấu đầu dòng

thân hình

Khối câu lệnh trong câu lệnh ghép theo sau tiêu đề

chi nhánh

Một trong những đường dẫn có thể có của luồng thực thi được xác định bởi thực thi có điều kiện

xiềng xích có điều kiện

Một nhánh có điều kiện với nhiều hơn hai luồng thực thi có thể. Trong chuỗi điều kiện Python được viết bằng câu lệnh

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
64

Tuyên bố phức hợp

Một câu lệnh Python có hai phần. một tiêu đề và một cơ thể. Tiêu đề bắt đầu bằng từ khóa và kết thúc bằng dấu hai chấm [

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
8]. Phần thân chứa một loạt các câu lệnh Python khác, tất cả đều được thụt vào cùng một lượng

Ghi chú

Chúng tôi sẽ sử dụng tiêu chuẩn Python gồm 4 khoảng trắng cho mỗi cấp độ thụt đầu dòng

tình trạng

Biểu thức boolean trong câu lệnh điều kiện xác định nhánh nào được thực thi

câu lệnh điều kiện

Một câu lệnh điều khiển luồng thực thi tùy thuộc vào một số điều kiện. Trong Python, các từ khóa

if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
6,
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
79 và
if True:          # This is always true
    pass          # so this is always executed, but it does nothing
else:
    pass
56 được sử dụng cho các câu điều kiện

phản đối

Một biến dùng để đếm thứ gì đó, thường được khởi tạo bằng 0 và tăng dần trong phần thân của vòng lặp

con trỏ

Một điểm đánh dấu vô hình theo dõi nơi ký tự tiếp theo sẽ được in

giảm bớt

Giảm 1

lặp xác định

Một vòng lặp trong đó chúng ta có giới hạn trên về số lần phần thân sẽ được thực thi. Vòng lặp xác định thường được mã hóa tốt nhất dưới dạng vòng lặp

if x  y:
    STATEMENTS_B
else:
    STATEMENTS_C
5

dấu phân cách

Một chuỗi gồm một hoặc nhiều ký tự được sử dụng để xác định ranh giới giữa các phần riêng biệt của văn bản

tăng

Vừa là danh từ vừa là động từ, increment có nghĩa là tăng thêm 1

vòng lặp vô hạn

Một vòng lặp trong đó điều kiện kết thúc không bao giờ được thỏa mãn

lặp lại vô thời hạn

Một vòng lặp mà chúng ta chỉ cần tiếp tục cho đến khi một số điều kiện được đáp ứng. Một câu lệnh

food = 'spam'

if food == 'spam':
    print['Ummmm, my favorite!']
    print['I feel like saying it 100 times...']
    print[100 * [food + '! ']]
97 được sử dụng cho trường hợp này

khởi tạo [của một biến]

Để khởi tạo một biến là đặt cho nó một giá trị ban đầu. Vì trong Python các biến không tồn tại cho đến khi chúng được gán giá trị, nên chúng được khởi tạo khi chúng được tạo. Trong các ngôn ngữ lập trình khác, đây không phải là trường hợp và các biến có thể được tạo mà không cần khởi tạo, trong trường hợp đó, chúng có giá trị mặc định hoặc giá trị rác

sự lặp đi lặp lại

Thực hiện lặp đi lặp lại một tập hợp các câu lệnh lập trình

vòng

Một câu lệnh hoặc nhóm các câu lệnh thực hiện lặp đi lặp lại cho đến khi một điều kiện kết thúc được thỏa mãn

biến vòng lặp

Một biến được sử dụng như một phần của điều kiện kết thúc vòng lặp

vòng lặp lồng nhau

Một vòng lặp bên trong phần thân của một vòng lặp khác

làm tổ

Một cấu trúc chương trình bên trong một cấu trúc chương trình khác, chẳng hạn như một câu lệnh điều kiện bên trong một nhánh của một câu lệnh điều kiện khác

dòng mới

Một ký tự đặc biệt khiến con trỏ di chuyển đến đầu dòng tiếp theo

lời nhắc

Một gợi ý trực quan yêu cầu người dùng nhập dữ liệu

phân công lại

Thực hiện nhiều phép gán cho cùng một biến trong quá trình thực thi chương trình

chuyển hướng

Một ký tự đặc biệt khiến con trỏ di chuyển đến điểm dừng tab tiếp theo trên dòng hiện tại

sự chọc ghẹo

Với mọi số thực a và b, đúng một trong các hệ thức sau thỏa mãn. a < b, a > b hoặc a == b. Vì vậy, khi bạn có thể thiết lập rằng hai trong số các quan hệ là sai, bạn có thể cho rằng quan hệ còn lại là đúng

dấu vết

Để theo dõi luồng thực hiện chương trình bằng tay, ghi lại sự thay đổi trạng thái của các biến và bất kỳ đầu ra nào được tạo ra

3 câu điều kiện trong Python là gì?

Sau đây là các câu điều kiện do Python cung cấp. .
nếu. khác
Lồng nhau nếu
câu lệnh if-elif

Các câu điều kiện được sử dụng trong Python là gì?

Python có sáu câu lệnh điều kiện được sử dụng trong quá trình ra quyết định. - .
Nếu tuyên bố
câu lệnh if other
Câu lệnh if lồng nhau. Suy thoái chứng minh sự nghiệp của bạn. Trở thành một nhà khoa học dữ liệu với đảm bảo việc làm 100% Biết thêm
Nếu…thang Elif
Bàn tay ngắn nếu tuyên bố
Câu lệnh if-else tay ngắn

Câu lệnh điều kiện trong Python Lớp 8 là gì?

Câu lệnh có điều kiện trong Python là gì? . Các câu lệnh có điều kiện được xử lý bởi các câu lệnh IF trong Python. perform different computations or actions depending on whether a specific Boolean constraint evaluates to true or false. Conditional statements are handled by IF statements in Python.

Câu lệnh điều kiện trong Python Lớp 7 là gì?

Câu lệnh điều kiện trong Python. Câu lệnh if được sử dụng để điều khiển luồng chương trình trong chương trình Python . Điều này giúp có thể quyết định trong thời gian chạy liệu các phần chương trình nhất định có nên được thực thi hay không. Khối thụt lề chỉ được thực thi nếu điều kiện 'điều kiện' là Đúng.

Chủ Đề