Để 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 vài đ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: pass6
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ânDò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ề
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: pass6 đượ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 là sai và
if x y: STATEMENTS_B else: STATEMENTS_C0 không bằng
if x y: STATEMENTS_B else: STATEMENTS_C1?
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_C0 thành giá trị khác với
if x y: STATEMENTS_B else: STATEMENTS_C1 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
Như với mệnh đề
if x y: STATEMENTS_B else: STATEMENTS_C5 ở chương trước, mệnh đề
if True: # This is always true pass # so this is always executed, but it does nothing else: pass6 là mệ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: pass6 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: pass6 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: pass8]
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 ta học cách viết mã Python có kiểu dáng đẹp, có một chương trình gọi 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 choice == 'a': print["You chose 'a'."] elif choice == 'b': print["You chose 'b'."] elif choice == 'c': print["You chose 'c'."] else: print["Invalid choice."]0 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 của phụ lục, có hướng dẫn cách định cấu hình vim để chạy
if choice == 'a': print["You chose 'a'."] elif choice == 'b': print["You chose 'b'."] elif choice == 'c': print["You chose 'c'."] else: print["Invalid choice."]0 trên mã nguồn của bạn chỉ bằng một nút nhấn
4. 1. 2. Câu lệnh if choice == 'a':
print["You chose 'a'."]
elif choice == 'b':
print["You chose 'b'."]
elif choice == 'c':
print["You chose 'c'."]
else:
print["Invalid choice."]
2
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 choice == 'a': print["You chose 'a'."] elif choice == 'b': print["You chose 'b'."] elif choice == 'c': print["You chose 'c'."] else: print["Invalid choice."]2
if food == 'spam': print['Ummmm, my favorite!'] else: print["No, I won't have it. I want spam!"]
Ở đây, câu lệnh in đầu tiên sẽ thực thi nếu
if x y: STATEMENTS_B else: STATEMENTS_C0 bằng với
if x y: STATEMENTS_B else: STATEMENTS_C1 và câu lệnh in được thụt vào dưới mệnh đề
if choice == 'a': print["You chose 'a'."] elif choice == 'b': print["You chose 'b'."] elif choice == 'c': print["You chose 'c'."] else: print["Invalid choice."]6 sẽ được thực thi khi nó không
Lưu đồ câu lệnh if other
Cú pháp của câu lệnh
if choice == 'a': print["You chose 'a'."] elif choice == 'b': print["You chose 'b'."] elif choice == 'c': print["You chose 'c'."] else: print["Invalid choice."]2 trông như thế này
if BOOLEAN EXPRESSION: STATEMENTS_1 # executed if condition evaluates to True else: STATEMENTS_2 # executed if condition evaluates to False
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: pass6 của câu lệnh
if choice == 'a': print["You chose 'a'."] elif choice == 'b': print["You chose 'b'."] elif choice == 'c': print["You chose 'c'."] else: print["Invalid choice."]2 được thực thi theo thứ tự nếu biểu thức boolean ước tính là
if x y: STATEMENTS_B else: STATEMENTS_C0. Toàn bộ khối câu lệnh bị bỏ qua nếu biểu thức boolean ước tính là
if x y: STATEMENTS_B else: STATEMENTS_C1, và thay vào đó, tất cả các câu lệnh trong mệnh đề
if choice == 'a': print["You chose 'a'."] elif choice == 'b': print["You chose 'b'."] elif choice == 'c': print["You chose 'c'."] else: print["Invalid choice."]6 được thực thi
Không có giới hạn về số câu lệnh có thể xuất hiện dưới hai mệnh đề của một câu lệnh
if choice == 'a': print["You chose 'a'."] elif choice == 'b': print["You chose 'b'."] elif choice == 'c': print["You chose 'c'."] else: print["Invalid choice."]2, 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 x y: STATEMENTS_B else: STATEMENTS_C4, 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 choice == 'a': print["You chose 'a'."] elif choice == 'b': print["You chose 'b'."] elif choice == 'c': print["You chose 'c'."] else: print["Invalid choice."]6 không phải là một mệnh đề. Câu lệnh
if True: # This is always true pass # so this is always executed, but it does nothing else: pass6 có hai mệnh đề, một trong số đó là mệnh đề [tùy chọn]
if choice == 'a': print["You chose 'a'."] elif choice == 'b': print["You chose 'b'."] elif choice == 'c': print["You chose 'c'."] else: print["Invalid choice."]6. 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: pass6
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 x y: STATEMENTS_B else: STATEMENTS_C9 là viết tắt của
if 0