Biểu tượng x trong html
Bên cạnh câu lệnh vừa được giới thiệu, Python sử dụng các câu lệnh điều khiển luồng thông thường được biết đến từ các ngôn ngữ khác, với một số thay đổi Show
4. 1. ______07 Câu lệnhCó lẽ loại câu lệnh nổi tiếng nhất là câu lệnh. Ví dụ >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More Có thể có 0 hoặc nhiều phần và phần này là tùy chọn. Từ khóa ' >>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): .. print(i, a[i]) ... 0 Mary 1 had 2 a 3 little 4 lamb9' là viết tắt của 'else if' và rất hữu ích để tránh thụt lề quá mức. Trình tự >>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): .. print(i, a[i]) ... 0 Mary 1 had 2 a 3 little 4 lamb7 … >>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): .. print(i, a[i]) ... 0 Mary 1 had 2 a 3 little 4 lamb9 … >>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): .. print(i, a[i]) ... 0 Mary 1 had 2 a 3 little 4 lamb9 … thay thế cho câu lệnh >>> range(10) range(0, 10)5 hoặc >>> range(10) range(0, 10)6 được tìm thấy trong các ngôn ngữ khác Nếu bạn đang so sánh cùng một giá trị với một số hằng số hoặc kiểm tra các loại hoặc thuộc tính cụ thể, bạn cũng có thể thấy câu lệnh >>> range(10) range(0, 10)7 hữu ích. Để biết thêm chi tiết xem 4. 2. ______68 Câu lệnhCâu lệnh trong Python khác một chút so với những gì bạn có thể quen dùng trong C hoặc Pascal. Thay vì luôn lặp qua một cấp số cộng của các số (như trong Pascal) hoặc cung cấp cho người dùng khả năng xác định cả bước lặp và điều kiện tạm dừng (như C), câu lệnh >>> range(10) range(0, 10)8 của Python lặp qua các mục của bất kỳ chuỗi nào (danh sách hoặc . Ví dụ (không có ý định chơi chữ) >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More1 Mã sửa đổi một bộ sưu tập trong khi lặp lại trên cùng một bộ sưu tập đó có thể khó hiểu đúng. Thay vào đó, việc lặp lại một bản sao của bộ sưu tập hoặc tạo một bộ sưu tập mới thường đơn giản hơn. >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More2 4. 3. HàmNếu bạn cần lặp lại một dãy số, chức năng tích hợp sẵn sẽ rất hữu ích. Nó tạo ra các cấp số cộng >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More3 Điểm cuối đã cho không bao giờ là một phần của chuỗi được tạo; . Có thể để phạm vi bắt đầu ở một số khác hoặc chỉ định một mức tăng khác (thậm chí là âm; đôi khi điều này được gọi là 'bước') >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More5 Để lặp lại các chỉ số của một chuỗi, bạn có thể kết hợp và như sau >>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): .. print(i, a[i]) ... 0 Mary 1 had 2 a 3 little 4 lamb Tuy nhiên, trong hầu hết các trường hợp như vậy, việc sử dụng chức năng này sẽ thuận tiện hơn, xem Một điều kỳ lạ xảy ra nếu bạn chỉ in một phạm vi >>> range(10) range(0, 10) Theo nhiều cách, đối tượng được trả về hoạt động như thể nó là một danh sách, nhưng thực tế không phải vậy. Nó là một đối tượng trả về các mục liên tiếp của chuỗi mong muốn khi bạn lặp lại nó, nhưng nó không thực sự tạo danh sách, do đó tiết kiệm không gian Chúng tôi nói rằng một đối tượng như vậy là , nghĩa là, phù hợp làm mục tiêu cho các chức năng và cấu trúc mong đợi một thứ gì đó mà từ đó chúng có thể nhận được các mục liên tiếp cho đến khi nguồn cung cạn kiệt. Chúng ta đã thấy rằng câu lệnh là một cấu trúc như vậy, trong khi một ví dụ về hàm có thể lặp lại là >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More4 Sau này chúng ta sẽ thấy nhiều hàm trả về iterables hơn và lấy iterables làm đối số. Trong chương này, chúng ta sẽ thảo luận chi tiết hơn về 4. 4. ______191 và >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More 92 Câu lệnh, và >>> range(10) range(0, 10) 0 Mệnh đề trên Vòng lặpCâu lệnh, giống như trong C, thoát ra khỏi vòng lặp hoặc bao quanh trong cùng Câu lệnh vòng lặp có thể có mệnh đề >>> range(10) range(0, 10)0; . Điều này được minh họa bằng vòng lặp sau, tìm kiếm các số nguyên tố >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More9 (Vâng, đây là mã chính xác. Nhìn kĩ. mệnh đề >>> range(10) range(0, 10)0 thuộc về vòng lặp, không phải câu lệnh. ) Khi được sử dụng với một vòng lặp, mệnh đề ________ 60 có nhiều điểm chung với mệnh đề ________ 60 của câu lệnh hơn là với mệnh đề của câu lệnh. mệnh đề >>> range(10) range(0, 10)0 của câu lệnh chạy khi không có ngoại lệ xảy ra và mệnh đề >>> range(10) range(0, 10)0 của vòng lặp chạy khi không có >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More91 xảy ra. Để biết thêm về câu lệnh >>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): .. print(i, a[i]) ... 0 Mary 1 had 2 a 3 little 4 lamb06 và các ngoại lệ, hãy xem Câu lệnh, cũng mượn từ C, tiếp tục với lần lặp tiếp theo của vòng lặp >>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): .. print(i, a[i]) ... 0 Mary 1 had 2 a 3 little 4 lamb0 4. 5. ______1104 Câu lệnhTuyên bố không làm gì cả. Nó có thể được sử dụng khi một câu lệnh được yêu cầu về mặt cú pháp nhưng chương trình không yêu cầu hành động nào. Ví dụ >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More10 Điều này thường được sử dụng để tạo các lớp tối thiểu >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More11 Một nơi khác có thể được sử dụng như một trình giữ chỗ cho một hàm hoặc phần thân có điều kiện khi bạn đang làm việc với mã mới, cho phép bạn tiếp tục suy nghĩ ở mức độ trừu tượng hơn. >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More104 bị âm thầm bỏ qua >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More12 4. 6. ______67 Câu lệnhMột câu lệnh lấy một biểu thức và so sánh giá trị của nó với các mẫu liên tiếp được đưa ra dưới dạng một hoặc nhiều khối trường hợp. Điều này bề ngoài giống với câu lệnh chuyển đổi trong C, Java hoặc JavaScript (và nhiều ngôn ngữ khác), nhưng nó giống với khớp mẫu hơn trong các ngôn ngữ như Rust hoặc Haskell. Chỉ mẫu đầu tiên phù hợp mới được thực thi và nó cũng có thể trích xuất các thành phần (phần tử trình tự hoặc thuộc tính đối tượng) từ giá trị thành các biến Hình thức đơn giản nhất so sánh một giá trị chủ đề với một hoặc nhiều chữ >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More13 Lưu ý khối cuối cùng. “tên biến” >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More110 hoạt động như một ký tự đại diện và không bao giờ không khớp. Nếu không có trường hợp nào khớp, không có nhánh nào được thực thi Bạn có thể kết hợp nhiều chữ trong một mẫu duy nhất bằng cách sử dụng >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More111 (“hoặc”) >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More14 Các mẫu có thể trông giống như các bài tập giải nén và có thể được sử dụng để liên kết các biến >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More15 Nghiên cứu kỹ cái đó. Mẫu đầu tiên có hai chữ và có thể được coi là phần mở rộng của mẫu chữ được hiển thị ở trên. Nhưng hai mẫu tiếp theo kết hợp một chữ và một biến, và biến liên kết một giá trị từ chủ đề ( >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More112). Mẫu thứ tư nắm bắt hai giá trị, khiến nó tương tự về mặt khái niệm với bài tập giải nén >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More113 Nếu bạn đang sử dụng các lớp để cấu trúc dữ liệu của mình, bạn có thể sử dụng tên lớp theo sau là một danh sách đối số giống như một hàm tạo, nhưng với khả năng nắm bắt các thuộc tính thành các biến >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More16 Bạn có thể sử dụng các tham số vị trí với một số lớp dựng sẵn cung cấp thứ tự cho các thuộc tính của chúng (e. g. lớp dữ liệu). Bạn cũng có thể xác định một vị trí cụ thể cho các thuộc tính trong các mẫu bằng cách đặt thuộc tính đặc biệt >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More114 trong các lớp của bạn. Nếu nó được đặt thành (“x”, “y”), tất cả các mẫu sau đều tương đương (và tất cả đều liên kết thuộc tính >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More115 với biến >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More116) >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More17 Một cách được khuyến nghị để đọc các mẫu là xem chúng như một dạng mở rộng của những gì bạn sẽ đặt ở bên trái của một nhiệm vụ, để hiểu những biến nào sẽ được đặt thành những gì. Chỉ những tên độc lập (như >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More116 ở trên) được gán cho bởi câu lệnh so khớp. Các tên có dấu chấm (như >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More118), tên thuộc tính (các >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More119 và >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More120 ở trên) hoặc tên lớp (được nhận dạng bởi dấu “(…)” bên cạnh chúng như >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More121 ở trên) không bao giờ được gán cho Các mẫu có thể được lồng vào nhau tùy ý. Ví dụ: nếu chúng tôi có một danh sách ngắn các điểm, chúng tôi có thể khớp nó như thế này >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More18 Chúng ta có thể thêm mệnh đề >>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): .. print(i, a[i]) ... 0 Mary 1 had 2 a 3 little 4 lamb7 vào một mẫu, được gọi là “bảo vệ”. Nếu bảo vệ là sai, >>> range(10) range(0, 10)7 tiếp tục thử khối trường hợp tiếp theo. Lưu ý rằng việc nắm bắt giá trị xảy ra trước khi bảo vệ được đánh giá >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More19 Một số tính năng chính khác của tuyên bố này
Để có giải thích chi tiết hơn và các ví dụ bổ sung, bạn có thể xem PEP 636 được viết ở định dạng hướng dẫn 4. 7. Xác định chức năngChúng ta có thể tạo một hàm ghi chuỗi Fibonacci vào một ranh giới tùy ý >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More22 Từ khóa giới thiệu một định nghĩa chức năng. Nó phải được theo sau bởi tên hàm và danh sách các tham số chính thức được đặt trong ngoặc đơn. Các câu lệnh tạo thành phần thân của hàm bắt đầu ở dòng tiếp theo và phải được thụt vào Câu lệnh đầu tiên của thân hàm có thể tùy chọn là một chuỗi ký tự; . (Thông tin thêm về docstrings có thể được tìm thấy trong phần. ) Có các công cụ sử dụng chuỗi tài liệu để tự động tạo tài liệu trực tuyến hoặc tài liệu in hoặc để cho phép người dùng duyệt qua mã một cách tương tác; Việc thực thi một hàm giới thiệu một bảng ký hiệu mới được sử dụng cho các biến cục bộ của hàm. Chính xác hơn, tất cả các phép gán biến trong một hàm đều lưu trữ giá trị trong bảng ký hiệu cục bộ; . Do đó, các biến toàn cục và biến của các hàm bao quanh không thể được gán trực tiếp một giá trị trong một hàm (trừ khi, đối với các biến toàn cục, được đặt tên trong một câu lệnh, hoặc, đối với các biến của các hàm bao quanh, được đặt tên trong một câu lệnh), mặc dù chúng có thể được tham chiếu Các tham số thực tế (đối số) cho một lệnh gọi hàm được đưa vào trong bảng ký hiệu cục bộ của hàm được gọi khi nó được gọi; . Khi một hàm gọi một hàm khác hoặc gọi chính nó theo cách đệ quy, một bảng ký hiệu cục bộ mới được tạo cho lệnh gọi đó Định nghĩa hàm liên kết tên hàm với đối tượng hàm trong bảng ký hiệu hiện tại. Trình thông dịch nhận ra đối tượng được trỏ tới bởi tên đó như một hàm do người dùng định nghĩa. Các tên khác cũng có thể trỏ đến cùng đối tượng chức năng đó và cũng có thể được sử dụng để truy cập chức năng >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More23 Đến từ các ngôn ngữ khác, bạn có thể phản đối rằng >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More142 không phải là hàm mà là thủ tục vì nó không trả về giá trị. Trên thực tế, ngay cả những hàm không có câu lệnh cũng trả về một giá trị, mặc dù một giá trị khá nhàm chán. Giá trị này được gọi là >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More138 (đó là tên tích hợp). Việc ghi giá trị >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More138 thường bị trình thông dịch loại bỏ nếu đó là giá trị duy nhất được ghi. Bạn có thể xem nó nếu bạn thực sự muốn sử dụng >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More24 Thật đơn giản để viết một hàm trả về danh sách các số của dãy Fibonacci, thay vì in nó >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More25 Ví dụ này, như thường lệ, minh họa một số tính năng mới của Python
4. 8. Thông tin thêm về cách xác định hàmCũng có thể định nghĩa các hàm với số lượng đối số thay đổi. Có ba hình thức, có thể được kết hợp 4. 8. 1. Giá trị đối số mặc địnhHình thức hữu ích nhất là chỉ định một giá trị mặc định cho một hoặc nhiều đối số. Điều này tạo ra một hàm có thể được gọi với ít đối số hơn nó được định nghĩa để cho phép. Ví dụ >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More26 Chức năng này có thể được gọi theo nhiều cách
Ví dụ này cũng giới thiệu từ khóa. Điều này kiểm tra xem một chuỗi có chứa một giá trị nhất định hay không Các giá trị mặc định được đánh giá tại điểm định nghĩa hàm trong phạm vi xác định, sao cho >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More27 sẽ in >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More162 cảnh báo quan trọng. Giá trị mặc định chỉ được đánh giá một lần. Điều này tạo ra sự khác biệt khi mặc định là một đối tượng có thể thay đổi, chẳng hạn như danh sách, từ điển hoặc thể hiện của hầu hết các lớp. Ví dụ: hàm sau tích lũy các đối số được truyền cho nó trong các lần gọi tiếp theo >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More28 Điều này sẽ in >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More29 Nếu bạn không muốn mặc định được chia sẻ giữa các lần gọi tiếp theo, bạn có thể viết hàm như thế này để thay thế >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More30 4. 8. 2. Đối số từ khóaCác chức năng cũng có thể được gọi bằng cách sử dụng biểu mẫu >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More163. Chẳng hạn, chức năng sau >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More31 chấp nhận một đối số bắt buộc ( >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More164) và ba đối số tùy chọn ( >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More165, >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More166 và >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More167). Hàm này có thể được gọi theo bất kỳ cách nào sau đây >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More32 nhưng tất cả các cuộc gọi sau đây sẽ không hợp lệ >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More33 Trong một lệnh gọi hàm, các đối số từ khóa phải tuân theo các đối số vị trí. Tất cả các đối số từ khóa được truyền phải khớp với một trong các đối số được hàm chấp nhận (e. g. >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More168 không phải là đối số hợp lệ cho hàm >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More169) và thứ tự của chúng không quan trọng. Điều này cũng bao gồm các đối số không tùy chọn (e. g. >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More170 cũng hợp lệ). Không có đối số có thể nhận được một giá trị nhiều hơn một lần. Đây là một ví dụ không thành công do hạn chế này >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More34 Khi có tham số chính thức cuối cùng có dạng >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More171, nó sẽ nhận được một từ điển (xem ) chứa tất cả các đối số từ khóa ngoại trừ những đối số tương ứng với tham số chính thức. Điều này có thể được kết hợp với một tham số chính thức có dạng >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More172 (được mô tả trong tiểu mục tiếp theo) nhận được một đối số vị trí có chứa ngoài danh sách tham số chính thức. ( >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More172 phải xảy ra trước >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More171. ) Ví dụ: nếu chúng ta định nghĩa một hàm như thế này >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More35 Nó có thể được gọi như thế này >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More36 và tất nhiên nó sẽ in >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More37 Lưu ý rằng thứ tự in các đối số từ khóa được đảm bảo khớp với thứ tự mà chúng được cung cấp trong lệnh gọi hàm 4. 8. 3. Thông số đặc biệtTheo mặc định, các đối số có thể được chuyển đến một hàm Python theo vị trí hoặc theo từ khóa một cách rõ ràng. Đối với khả năng đọc và hiệu suất, nên hạn chế cách truyền đối số sao cho nhà phát triển chỉ cần xem định nghĩa hàm để xác định xem các mục được truyền theo vị trí, theo vị trí hoặc theo từ khóa hay theo từ khóa Một định nghĩa chức năng có thể trông giống như >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More38 trong đó >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More175 và >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More126 là tùy chọn. Nếu được sử dụng, các ký hiệu này cho biết loại tham số theo cách các đối số có thể được truyền cho hàm. chỉ vị trí, vị trí hoặc từ khóa và chỉ từ khóa. Tham số từ khóa còn được gọi là tham số được đặt tên 4. 8. 3. 1. Đối số vị trí hoặc từ khóaNếu >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More175 và >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More126 không có trong định nghĩa hàm, các đối số có thể được chuyển đến hàm theo vị trí hoặc theo từ khóa 4. 8. 3. 2. Thông số chỉ dành cho vị tríXem xét điều này chi tiết hơn một chút, có thể đánh dấu các tham số nhất định là chỉ theo vị trí. Nếu chỉ có vị trí, thì thứ tự của tham số mới quan trọng và không thể chuyển tham số theo từ khóa. Các thông số chỉ dành cho vị trí được đặt trước một dấu gạch chéo 1175 (dấu gạch chéo về phía trước). >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More175 được sử dụng để phân tách hợp lý các tham số chỉ vị trí với các tham số còn lại. Nếu không có >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More175 trong định nghĩa hàm, thì không có tham số chỉ vị trí nào Các tham số theo sau >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More175 có thể là vị trí hoặc từ khóa hoặc chỉ từ khóa 4. 8. 3. 3. Đối số chỉ có từ khóaĐể đánh dấu các tham số là chỉ từ khóa, cho biết các tham số phải được truyền bằng đối số từ khóa, hãy đặt một ____1126 trong danh sách đối số ngay trước tham số chỉ từ khóa đầu tiên 4. 8. 3. 4. Ví dụ về hàmXem xét các định nghĩa hàm ví dụ sau chú ý đến các điểm đánh dấu >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More175 và >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More126 >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More39 Định nghĩa hàm đầu tiên, >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More186, dạng quen thuộc nhất, không hạn chế quy ước gọi và các đối số có thể được truyền theo vị trí hoặc từ khóa >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More50 Hàm thứ hai >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More187 bị hạn chế chỉ sử dụng các tham số vị trí vì có một >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More175 trong định nghĩa hàm >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More51 Hàm thứ ba >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More189 chỉ cho phép các đối số từ khóa như được chỉ định bởi một >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More126 trong định nghĩa hàm >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More52 Và cái cuối cùng sử dụng cả ba quy ước gọi trong cùng một định nghĩa hàm >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More53 Cuối cùng, hãy xem xét định nghĩa hàm này có khả năng xung đột giữa đối số vị trí >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More191 và >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More192 có khóa >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More191 >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More54 Không có lệnh gọi nào có thể khiến nó trả về >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More136 vì từ khóa >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More195 sẽ luôn liên kết với tham số đầu tiên. Ví dụ >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More55 Nhưng sử dụng >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More175 (đối số chỉ vị trí), có thể thực hiện được vì nó cho phép >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More191 làm đối số vị trí và >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More195 làm khóa trong đối số từ khóa >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More56 Nói cách khác, tên của các tham số chỉ vị trí có thể được sử dụng trong >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More192 mà không có sự mơ hồ 4. 8. 3. 5. Tóm tắtTrường hợp sử dụng sẽ xác định tham số nào sẽ được sử dụng trong định nghĩa hàm >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More57 Theo hướng dẫn
4. 8. 4. Danh sách đối số tùy ýCuối cùng, tùy chọn ít được sử dụng nhất là chỉ định rằng một hàm có thể được gọi với số lượng đối số tùy ý. Các đối số này sẽ được gói gọn trong một bộ dữ liệu (xem phần ). Trước số lượng đối số thay đổi, có thể xảy ra không hoặc nhiều đối số bình thường >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More58 Thông thường, các đối số biến thiên này sẽ nằm cuối cùng trong danh sách các tham số hình thức, bởi vì chúng thu thập tất cả các đối số đầu vào còn lại được truyền cho hàm. Bất kỳ tham số chính thức nào xuất hiện sau tham số >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More200 đều là đối số 'chỉ từ khóa', nghĩa là chúng chỉ có thể được sử dụng làm từ khóa thay vì đối số vị trí >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More59 4. 8. 5. Giải nén danh sách đối sốTình huống ngược lại xảy ra khi các đối số đã có trong danh sách hoặc bộ nhưng cần được giải nén để gọi hàm yêu cầu các đối số vị trí riêng biệt. Chẳng hạn, hàm tích hợp mong đợi các đối số bắt đầu và dừng riêng biệt. Nếu chúng không có sẵn một cách riêng biệt, hãy viết lệnh gọi hàm với toán tử >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More126 để giải nén các đối số ra khỏi danh sách hoặc bộ dữ liệu >>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): .. print(i, a[i]) ... 0 Mary 1 had 2 a 3 little 4 lamb0 Theo cách tương tự, từ điển có thể cung cấp các đối số từ khóa với toán tử >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More203 >>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): .. print(i, a[i]) ... 0 Mary 1 had 2 a 3 little 4 lamb1 4. 8. 6. Biểu thức LambdaCác chức năng ẩn danh nhỏ có thể được tạo bằng từ khóa. Hàm này trả về tổng của hai đối số của nó. >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More205. Hàm lambda có thể được sử dụng ở bất cứ nơi nào cần có đối tượng hàm. Chúng bị giới hạn về mặt cú pháp trong một biểu thức duy nhất. Về mặt ngữ nghĩa, chúng chỉ là đường cú pháp cho một định nghĩa hàm bình thường. Giống như các định nghĩa hàm lồng nhau, các hàm lambda có thể tham chiếu các biến từ phạm vi chứa >>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): .. print(i, a[i]) ... 0 Mary 1 had 2 a 3 little 4 lamb2 Ví dụ trên sử dụng biểu thức lambda để trả về một hàm. Một cách sử dụng khác là truyền một hàm nhỏ làm đối số >>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): .. print(i, a[i]) ... 0 Mary 1 had 2 a 3 little 4 lamb3 4. 8. 7. Chuỗi tài liệuDưới đây là một số quy ước về nội dung và định dạng của chuỗi tài liệu Dòng đầu tiên phải luôn là một bản tóm tắt ngắn gọn, súc tích về mục đích của đối tượng. Để cho ngắn gọn, nó không nên nêu rõ ràng tên hoặc loại của đối tượng, vì những thứ này có sẵn theo các cách khác (ngoại trừ nếu tên đó là một động từ mô tả hoạt động của một chức năng). Dòng này phải bắt đầu bằng chữ in hoa và kết thúc bằng dấu chấm Nếu có nhiều dòng hơn trong chuỗi tài liệu, thì dòng thứ hai phải để trống, tách phần tóm tắt khỏi phần còn lại của phần mô tả một cách trực quan. Các dòng sau phải là một hoặc nhiều đoạn văn mô tả quy ước gọi của đối tượng, tác dụng phụ của nó, v.v. Trình phân tích cú pháp Python không loại bỏ thụt đầu dòng khỏi các ký tự chuỗi nhiều dòng trong Python, vì vậy các công cụ xử lý tài liệu phải loại bỏ thụt đầu dòng nếu muốn. Điều này được thực hiện bằng cách sử dụng quy ước sau. Dòng không trống đầu tiên sau dòng đầu tiên của chuỗi xác định số lượng thụt lề cho toàn bộ chuỗi tài liệu. (Chúng ta không thể sử dụng dòng đầu tiên vì nó thường liền kề với dấu ngoặc kép mở đầu của chuỗi nên phần thụt đầu dòng của nó không rõ ràng trong ký tự chuỗi. ) Khoảng trắng “tương đương” với thụt đầu dòng này sau đó sẽ bị xóa khỏi đầu tất cả các dòng của chuỗi. Các dòng bị thụt vào ít hơn sẽ không xảy ra, nhưng nếu chúng xuất hiện thì tất cả các khoảng trắng ở đầu của chúng sẽ bị xóa. Tính tương đương của khoảng trắng nên được kiểm tra sau khi mở rộng các tab (thông thường là 8 khoảng trắng) Dưới đây là một ví dụ về chuỗi tài liệu nhiều dòng >>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): .. print(i, a[i]) ... 0 Mary 1 had 2 a 3 little 4 lamb4 4. 8. 8. Chú thích chức nănglà thông tin siêu dữ liệu hoàn toàn tùy chọn về các loại được sử dụng bởi các chức năng do người dùng xác định (xem PEP 3107 và PEP 484 để biết thêm thông tin) được lưu trữ trong thuộc tính >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More206 của hàm dưới dạng từ điển và không ảnh hưởng đến bất kỳ phần nào khác của hàm. Chú thích tham số được xác định bằng dấu hai chấm sau tên tham số, theo sau là biểu thức đánh giá giá trị của chú thích. Chú thích trả về được xác định bởi một ký tự >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: .. x = 0 .. print('Negative changed to zero') .. elif x == 0: .. print('Zero') .. elif x == 1: .. print('Single') .. else: .. print('More') ... More207, theo sau là một biểu thức, nằm giữa danh sách tham số và dấu hai chấm biểu thị phần cuối của câu lệnh. Ví dụ sau có đối số bắt buộc, đối số tùy chọn và giá trị trả về được chú thích >>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): .. print(i, a[i]) ... 0 Mary 1 had 2 a 3 little 4 lamb5 4. 9. Intermezzo. Phong cách mã hóaBây giờ bạn sắp viết các phần Python dài hơn, phức tạp hơn, đây là thời điểm tốt để nói về phong cách viết mã. Hầu hết các ngôn ngữ có thể được viết (hoặc ngắn gọn hơn, được định dạng) theo các phong cách khác nhau; . Giúp người khác dễ dàng đọc mã của bạn luôn là một ý tưởng hay và việc áp dụng một kiểu viết mã đẹp sẽ giúp ích rất nhiều cho điều đó Đối với Python, PEP 8 đã nổi lên như một hướng dẫn về phong cách mà hầu hết các dự án đều tuân thủ; . Mọi nhà phát triển Python nên đọc nó vào một thời điểm nào đó;
chú thích Trên thực tế, gọi theo tham chiếu đối tượng sẽ là một mô tả tốt hơn, vì nếu một đối tượng có thể thay đổi được chuyển, người gọi sẽ thấy bất kỳ thay đổi nào mà callee thực hiện đối với nó (các mục được chèn vào danh sách) |