Cách gọi hàm trong sổ ghi chép Python Jupyter
Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh Git chấp nhận cả tên thẻ và tên nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi không mong muốn. Bạn có chắc chắn muốn tạo nhánh này không? Show
Trong bài viết này của Cyrille Rossant, trích từ cuốn sách của anh ấy, Learning IPython for Interactive Computing and Data Visualization – Second Edition, chúng ta sẽ xem cách sử dụng bảng điều khiển IPython, Jupyter Notebook và tìm hiểu những điều cơ bản về Python Ban đầu, IPython cung cấp bảng điều khiển dòng lệnh nâng cao để chạy mã Python một cách tương tác. Máy tính xách tay Jupyter là một sự thay thế mới hơn và tinh vi hơn cho bảng điều khiển. Ngày nay, cả hai công cụ đều khả dụng và chúng tôi khuyên bạn nên học cách sử dụng cả hai [box type=”note” align=”alignleft” class=”” width=””]Chương đầu tiên của cuốn sách, Chương 1, Bắt đầu với IPython, chứa tất cả các hướng dẫn cài đặt. Bước chính là tải xuống và cài đặt bản phân phối Anaconda miễn phí tại https. //www. sự liên tục. io/downloads (phiên bản Python 3 64-bit dành cho hệ điều hành của bạn). [/hộp] Khởi chạy bảng điều khiển IPythonĐể chạy bảng điều khiển IPython, hãy nhập ipython vào thiết bị đầu cuối của hệ điều hành. Ở đó, bạn có thể viết các lệnh Python và xem kết quả ngay lập tức. Đây là một ảnh chụp màn hình Bảng điều khiển IPython Bảng điều khiển IPython thuận tiện nhất khi bạn có quy trình làm việc dựa trên dòng lệnh và bạn muốn thực thi một số lệnh Python nhanh Bạn có thể thoát khỏi bảng điều khiển IPython bằng cách gõ lệnh thoát [box type=”note” align=”alignleft” class=”” width=””]Hãy đề cập đến bảng điều khiển Qt, tương tự như bảng điều khiển IPython nhưng cung cấp các tính năng bổ sung như chỉnh sửa nhiều dòng, hoàn thành tab nâng cao, hỗ trợ hình ảnh, . Bảng điều khiển Qt cũng có thể được tích hợp trong một ứng dụng đồ họa được viết bằng Python và Qt. Xem http. // jupyter. org/qtconsole/stable/ để biết thêm thông tin. [/hộp] Ra mắt Máy tính xách tay JupyterĐể chạy Jupyter Notebook, hãy mở một thiết bị đầu cuối của hệ điều hành, truy cập ~/minibook/ (hoặc vào thư mục mà bạn đã tải xuống sổ ghi chép của cuốn sách) và nhập jupyter notebook. Thao tác này sẽ khởi động máy chủ Jupyter và mở một cửa sổ mới trong trình duyệt của bạn (nếu không phải như vậy, hãy truy cập URL sau. http. //máy chủ cục bộ. 8888). Đây là ảnh chụp màn hình điểm vào của Jupyter, bảng điều khiển Notebook Bảng điều khiển Notebook [box type=”note” align=”alignleft” class=”” width=””]Tại thời điểm viết bài này, các trình duyệt sau được hỗ trợ chính thức. Chrome 13 trở lên; . Các trình duyệt khác cũng có thể hoạt động. Số dặm của bạn có thể thay đổi. [/hộp] Notebook thuận tiện nhất khi bạn bắt đầu một dự án phân tích phức tạp sẽ liên quan đến một lượng lớn thử nghiệm tương tác với mã của bạn. Các trường hợp sử dụng phổ biến khác bao gồm theo dõi phiên tương tác của bạn (như sổ ghi chép trong phòng thí nghiệm) hoặc viết tài liệu kỹ thuật liên quan đến mã, phương trình và số liệu Trong phần còn lại của phần này, chúng ta sẽ tập trung vào giao diện Notebook [box type=”note” align=”alignleft” class=”” width=””]Đóng máy chủ Notebook Bảng điều khiển NotebookBảng điều khiển chứa một số tab như sau
Sổ ghi chép là một tài liệu tương tác có chứa mã, văn bản và các thành phần khác. Một sổ ghi chép được lưu trong một tệp có tên. phần mở rộng ipynb. Tệp này là một tệp văn bản thuần túy lưu trữ cấu trúc dữ liệu JSON Nhân là một tiến trình đang chạy một phiên tương tác. Khi sử dụng IPython, hạt nhân này là một quy trình Python. Có kernel trong nhiều ngôn ngữ khác ngoài Python [box type=”note” align=”alignleft” class=”” width=””]Chúng tôi tuân theo quy ước để sử dụng thuật ngữ notebook cho tệp và Notebook cho ứng dụng và giao diện web. [/hộp] Trong Jupyter, sổ ghi chép và hạt nhân được tách biệt rõ ràng. Sổ ghi chép là một tệp, trong khi hạt nhân là một quá trình. Nhân nhận các đoạn mã từ giao diện Notebook, thực thi chúng và gửi kết quả đầu ra cũng như các lỗi có thể xảy ra trở lại giao diện Notebook. Do đó, nói chung, kernel không có khái niệm về Notebook. Một sổ ghi chép là liên tục (đó là một tệp), trong khi một hạt nhân có thể bị đóng vào cuối phiên tương tác và do đó, nó không liên tục. Khi một sổ ghi chép được mở lại, nó cần được thực hiện lại Nói chung, không thể kết nối nhiều hơn một giao diện Notebook với một nhân nhất định. Tuy nhiên, một số bảng điều khiển IPython có thể được kết nối với một kernel nhất định Giao diện người dùng NotebookĐể tạo sổ ghi chép mới, nhấp vào nút Mới và chọn Sổ ghi chép (Python 3). Một tab trình duyệt mới mở ra và hiển thị giao diện Notebook như sau Một cuốn sổ mới Dưới đây là các thành phần chính của giao diện, từ trên xuống dưới
Cấu trúc của một ô máy tính xách tayCó hai loại tế bào chính. Các ô đánh dấu và các ô mã, và chúng được mô tả như sau
Bạn có thể thay đổi loại ô bằng cách trước tiên nhấp vào ô để chọn ô đó, sau đó chọn loại ô trong menu thả xuống của thanh công cụ hiển thị Markdown hoặc Code ô đánh dấuĐây là một ảnh chụp màn hình của một ô Markdown Một ô Markdown Bảng trên cùng hiển thị ô ở chế độ chỉnh sửa, trong khi bảng dưới cùng hiển thị ô ở chế độ kết xuất. Chế độ chỉnh sửa cho phép bạn chỉnh sửa văn bản, trong khi chế độ hiển thị cho phép bạn hiển thị ô được hiển thị. Chúng tôi sẽ giải thích sự khác biệt giữa các chế độ này chi tiết hơn trong phần sau ô mãĐây là một ảnh chụp màn hình của một ô mã phức tạp Cấu trúc của một ô mã Ô mã này chứa một số phần, như sau
Giao diện kiểu máy tính xách tayNotebook triển khai giao diện phương thức tương tự như một số trình soạn thảo văn bản như vim. Làm chủ giao diện này có thể là một đường cong học tập nhỏ đối với một số người dùng
Phím tắt có sẵn trong giao diện Notebook. Nhập h để hiển thị chúng. Chúng tôi xem xét ở đây những cái phổ biến nhất (dành cho Windows và Linux; các phím tắt cho Mac OS X có thể hơi khác một chút) Phím tắt có sẵn trong cả hai chế độDưới đây là một vài phím tắt luôn khả dụng khi một ô được chọn
Phím tắt khả dụng trong chế độ chỉnh sửaTrong chế độ chỉnh sửa, bạn có thể nhập mã như bình thường và bạn có quyền truy cập vào các phím tắt sau
Phím tắt khả dụng trong chế độ lệnhTrong chế độ lệnh, tổ hợp phím được liên kết với các hoạt động của ô. Đừng viết mã trong chế độ lệnh hoặc những điều không mong muốn sẽ xảy ra. Ví dụ: gõ dd trong chế độ lệnh sẽ xóa ô đã chọn. Dưới đây là một số phím tắt có sẵn trong chế độ lệnh
Rất khuyến khích dành thời gian học các phím tắt này Người giới thiệuDưới đây là một vài tài liệu tham khảo
Nếu bạn không biết Python, hãy đọc phần này để tìm hiểu các nguyên tắc cơ bản. Python là một ngôn ngữ rất dễ tiếp cận và thậm chí còn được dạy cho học sinh. Nếu bạn đã từng lập trình, bạn sẽ chỉ mất vài phút để học những điều cơ bản Chào thế giớiMở một sổ ghi chép mới và nhập nội dung sau vào ô đầu tiên
Đây là một ảnh chụp màn hình “Xin chào thế giới” trong Notebook [box type=”note” align=”alignleft” class=”” width=””]Prompt string Lưu ý rằng quy ước được chọn trong bài viết này là hiển thị mã Python (còn được gọi là đầu vào) có tiền tố là In [x]. (không nên gõ). Đây là lời nhắc IPython tiêu chuẩn. Tại đây, bạn chỉ cần gõ print(“Xin chào thế giới. ”) rồi nhấn Shift + Enter. [/hộp] Xin chúc mừng. Bây giờ bạn là một lập trình viên Python BiếnHãy sử dụng Python như một máy tính
Ở đây, 2 * 2 là một câu lệnh biểu thức. Thao tác này được thực hiện, kết quả được trả về và IPython hiển thị nó trong đầu ra của ô sổ ghi chép [box type=”note” align=”alignleft” class=”” width=””]Phân chia Trong Python 3, 3/2 trả về 1. 5 (phép chia dấu phẩy động), trong khi nó trả về 1 trong Python 2 (phép chia số nguyên). Đây có thể là nguồn gốc của lỗi khi chuyển mã Python 2 sang Python 3. Nên luôn luôn sử dụng 3 rõ ràng. 0 / 2. 0 cho phép chia dấu phẩy động (bằng cách sử dụng số dấu phẩy động) và 3 // 2 cho phép chia số nguyên. Cả hai cú pháp đều hoạt động trong Python 2 và Python 3. xem http. // python3porting. com/sự khác biệt. html#integer-chia để biết thêm chi tiết. [/hộp] Các toán tử toán học tích hợp khác bao gồm +, –, ** cho phép lũy thừa và các toán tử khác. Bạn sẽ tìm thấy thêm chi tiết tại https. // tài liệu. con trăn. org/3/tham chiếu/biểu thức. html#the-power-toán tử Các biến tạo thành một khái niệm cơ bản của bất kỳ ngôn ngữ lập trình nào. Một biến có tên và giá trị. Đây là cách tạo một biến mới trong Python
Và đây là cách sử dụng một biến hiện có
Một số biến có thể được xác định cùng một lúc (điều này được gọi là giải nén)
Có nhiều loại biến khác nhau. Ở đây, chúng tôi đã sử dụng một số (chính xác hơn là một số nguyên). Các loại quan trọng khác bao gồm số dấu phẩy động để biểu thị số thực, chuỗi để biểu thị văn bản và booleans để biểu thị giá trị Đúng/Sai. Đây là vài ví dụ
Lưu ý cách chúng tôi sử dụng ký tự # để viết nhận xét. Trong khi Python loại bỏ hoàn toàn các nhận xét, thì việc thêm nhận xét vào mã là rất quan trọng khi mã sẽ được đọc bởi người khác (bao gồm cả bạn trong tương lai) Chuỗi thoátThoát chuỗi đề cập đến khả năng chèn các ký tự đặc biệt vào chuỗi. Ví dụ: làm thế nào bạn có thể chèn ‘ và “, với điều kiện là các ký tự này được sử dụng để phân định một chuỗi trong mã Python? . Đây là vài ví dụ
Ký tự đặc biệt n là ký tự xuống dòng (hoặc xuống dòng) mới. Để chèn dấu gạch chéo ngược, bạn cần thoát dấu gạch chéo ngược, điều này giải thích tại sao dấu gạch chéo ngược cần được nhân đôi thành Bạn cũng có thể vô hiệu hóa thoát bằng cách sử dụng chữ thô với tiền tố r trước chuỗi, như trong ví dụ cuối cùng ở trên. Trong trường hợp này, dấu gạch chéo ngược được coi là ký tự bình thường Điều này thuận tiện khi viết đường dẫn Windows, vì Windows sử dụng dấu gạch chéo ngược thay vì dấu gạch chéo lên như trên các hệ thống Unix. Một lỗi rất phổ biến trên Windows là quên thoát dấu gạch chéo ngược trong đường dẫn. viết “C. path” có thể dẫn đến các lỗi tinh vi Bạn sẽ tìm thấy danh sách các ký tự đặc biệt trong Python tại danh sáchMột danh sách chứa một chuỗi các mục. Bạn có thể hướng dẫn ngắn gọn Python thực hiện các hành động lặp lại trên các phần tử của danh sách. Trước tiên hãy tạo một danh sách các số như sau
Lưu ý cú pháp chúng tôi đã sử dụng để tạo danh sách. dấu ngoặc vuông [] và dấu phẩy , để phân tách các mục Hàm dựng sẵn len() trả về số phần tử trong danh sách ________số 8[box type=”note” align=”alignleft” class=”” width=””]Python đi kèm với một tập hợp các hàm dựng sẵn, bao gồm print(), len(), max(), các thủ tục chức năng như filter( . Bạn sẽ tìm thấy danh sách đầy đủ các hàm tích hợp tại https. // tài liệu. con trăn. tổ chức/3. 4/thư viện/chức năng. html. [/hộp] Bây giờ, hãy tính tổng của tất cả các phần tử trong danh sách. Python cung cấp một chức năng tích hợp cho việc này
Chúng ta cũng có thể truy cập các phần tử riêng lẻ trong danh sách, sử dụng cú pháp sau 0Lưu ý rằng việc lập chỉ mục bắt đầu từ 0 trong Python. phần tử đầu tiên của danh sách được lập chỉ mục bằng 0, phần tử thứ hai bằng 1, v.v. Ngoài ra, -1 chỉ phần tử cuối cùng, -2, chỉ phần tử áp chót, v.v. Cú pháp tương tự có thể được sử dụng để thay đổi các phần tử trong danh sách 1Chúng tôi có thể truy cập danh sách con với cú pháp sau 2Đây, 1. 3 đại diện cho một lát cắt đi từ phần tử 1 được bao gồm (đây là phần tử thứ hai của danh sách) đến phần tử 3 bị loại trừ. Như vậy, ta được một danh sách con có phần tử thứ hai và thứ ba của danh sách gốc. Sự bất đối xứng bao gồm đầu tiên/loại trừ cuối cùng dẫn đến cách xử lý trực quan các phần chồng chéo giữa các lát cắt liên tiếp. Ngoài ra, hãy lưu ý rằng danh sách phụ đề cập đến dạng xem động của danh sách gốc, không phải bản sao; Python cung cấp một số loại vùng chứa khác
Một đối tượng Python có thể thay đổi nếu giá trị của nó có thể thay đổi sau khi được tạo. Nếu không, nó là bất biến. Ví dụ, một chuỗi là bất biến; . Một danh sách, một từ điển hoặc một bộ có thể thay đổi; . Ngược lại, một bộ dữ liệu là bất biến và không thể thay đổi các phần tử mà nó chứa mà không tạo lại bộ dữ liệu. Xem https. // tài liệu. con trăn. tổ chức/3. 4/tham chiếu/mô hình dữ liệu. html để biết thêm chi tiết vòng lặpChúng ta có thể chạy qua tất cả các phần tử của danh sách bằng vòng lặp for 7Có một số điều cần lưu ý ở đây
Python hỗ trợ một cú pháp ngắn gọn để thực hiện một thao tác nhất định trên tất cả các phần tử của danh sách, như sau 8Đây được gọi là hiểu danh sách. Một danh sách mới được tạo ở đây; . Cú pháp ngắn gọn này dẫn đến mã Pythonic rất dễ đọc thụt đầu dòngThụt đầu dòng đề cập đến khoảng trắng có thể xuất hiện ở đầu một số dòng mã. Đây là một khía cạnh cụ thể của cú pháp Python Trong hầu hết các ngôn ngữ lập trình, thụt đầu dòng là tùy chọn và thường được sử dụng để làm cho mã rõ ràng hơn. Nhưng trong Python, thụt đầu dòng cũng có ý nghĩa cú pháp. Các quy tắc thụt đầu dòng cụ thể cần phải được tuân theo để mã Python chính xác Nói chung, có hai cách để thụt lề một số văn bản. bằng cách chèn một ký tự tab (còn được gọi là t) hoặc bằng cách chèn một số khoảng trắng (thường là bốn). Nên sử dụng dấu cách thay vì ký tự tab. Trình soạn thảo văn bản của bạn phải được định cấu hình sao cho phím Tab trên bàn phím sẽ chèn bốn dấu cách thay vì ký tự tab Trong Notebook, thụt lề được tự động cấu hình đúng cách; . Câu hỏi chỉ phát sinh nếu bạn sử dụng trình soạn thảo văn bản khác cho mã Python của mình Cuối cùng, ý nghĩa của thụt đầu dòng là gì? . Khi các ngôn ngữ khác như C hoặc JavaScript sử dụng dấu ngoặc nhọn để phân định các khối như vậy, thì Python sử dụng dấu thụt đầu dòng nhánh có điều kiệnĐôi khi, bạn cần thực hiện các thao tác khác nhau trên dữ liệu của mình tùy thuộc vào một số điều kiện. Ví dụ: hãy hiển thị tất cả các số chẵn trong danh sách của chúng tôi 9Một lần nữa, đây là một số điều cần lưu ý
Python hỗ trợ cú pháp ngắn gọn để chọn tất cả các phần tử trong danh sách thỏa mãn các thuộc tính nhất định. Đây là cách tạo danh sách con chỉ có số chẵn 0Đây cũng là một hình thức hiểu danh sách Chức năngMã thường được tổ chức thành các chức năng. Một chức năng gói gọn một phần mã của bạn. Các chức năng cho phép bạn sử dụng lại các bit chức năng mà không cần sao chép mã. Đây là một hàm cho biết một số nguyên có phải là số chẵn hay không 1Có một số điều cần lưu ý ở đây
Khi một chức năng được xác định, nó có thể được gọi như thế này 2Ở đây, 3 và 4 lần lượt được chuyển thành đối số cho hàm Đối số vị trí và từ khóaHàm Python có thể chấp nhận số lượng đối số tùy ý, được gọi là đối số vị trí. Nó cũng có thể chấp nhận các đối số được đặt tên tùy chọn, được gọi là đối số từ khóa. Đây là một ví dụ 3Đối số thứ hai của hàm này, số chia, là tùy chọn. Nếu nó không được cung cấp bởi người gọi, nó sẽ mặc định là số 2, như được hiển thị ở đây 4Có hai cách tương đương để chỉ định đối số từ khóa khi gọi hàm. Chúng như sau 5Trong trường hợp đầu tiên, 3 được hiểu là đối số thứ hai, ước số. Trong trường hợp thứ hai, tên của đối số được đưa ra rõ ràng bởi người gọi. Cú pháp thứ hai này rõ ràng hơn và ít bị lỗi hơn cú pháp thứ nhất Các hàm cũng có thể chấp nhận các bộ đối số vị trí và từ khóa tùy ý, sử dụng cú pháp sau 6Bên trong hàm, args là một bộ chứa các đối số vị trí và kwargs là một từ điển chứa các đối số từ khóa Vượt qua bài tậpKhi truyền tham số cho hàm Python, tham chiếu đến đối tượng thực sự được truyền (chuyển theo phép gán)
Đây là một ví dụ 7Hàm add() sửa đổi một đối tượng được xác định bên ngoài nó (trong trường hợp này là đối tượng my_list); . Một chức năng không có tác dụng phụ được gọi là một chức năng thuần túy. nó không sửa đổi bất cứ thứ gì trong bối cảnh bên ngoài và nó trả về kết quả tương tự một cách chắc chắn cho bất kỳ tập hợp đầu vào đã cho nào. Các chức năng thuần túy sẽ được ưu tiên hơn các chức năng có tác dụng phụ Biết điều này có thể giúp bạn phát hiện ra các lỗi tinh vi. Có nhiều khái niệm liên quan hữu ích để biết, bao gồm phạm vi chức năng, đặt tên, ràng buộc, v.v. Dưới đây là một vài liên kết
lỗiHãy thảo luận về các lỗi trong Python. Khi bạn tìm hiểu, chắc chắn bạn sẽ gặp lỗi và ngoại lệ. Trình thông dịch Python hầu hết thời gian sẽ cho bạn biết vấn đề là gì và nó xảy ra ở đâu. Điều quan trọng là phải hiểu từ vựng mà Python sử dụng để bạn có thể tìm và sửa lỗi nhanh hơn Hãy xem ví dụ sau 8Ở đây, chúng ta đã định nghĩa một hàmdivid() và gọi nó để chia 1 cho 0. Chia một số cho 0 là lỗi trong Python. Tại đây, một ngoại lệ ZeroDivisionError đã được nêu ra. Ngoại lệ là một loại lỗi cụ thể có thể xuất hiện tại bất kỳ thời điểm nào trong chương trình. Nó được lan truyền từ phần bên trong của mã cho đến lệnh khởi chạy mã. Nó có thể được bắt và xử lý tại bất kỳ điểm nào. Bạn sẽ tìm thấy thêm chi tiết về các trường hợp ngoại lệ tại https. // tài liệu. con trăn. org/3/hướng dẫn/lỗi. html và các loại ngoại lệ phổ biến tại https. // tài liệu. con trăn. org/3/thư viện/ngoại lệ. html#bltin-ngoại lệ Thông báo lỗi mà bạn nhìn thấy chứa dấu vết ngăn xếp, loại ngoại lệ và thông báo ngoại lệ. Dấu vết ngăn xếp hiển thị tất cả các lệnh gọi hàm giữa ngoại lệ đã nêu và điểm gọi tập lệnh Khung trên cùng, được biểu thị bằng mũi tên đầu tiên —->, hiển thị điểm vào của quá trình thực thi mã. Ở đây, nó là phép chia (1, 0), được gọi trực tiếp trong Notebook. Đã xảy ra lỗi khi chức năng này được gọi Khung tiếp theo và khung cuối cùng được biểu thị bằng mũi tên thứ hai. Nó tương ứng với dòng 2 trong chức năng của chúng tôi chia (a, b). Đây là khung cuối cùng trong dấu vết ngăn xếp. điều này có nghĩa là lỗi xảy ra ở đó Lập trình hướng đối tượngLập trình hướng đối tượng (OOP) là một chủ đề tương đối nâng cao. Mặc dù chúng ta sẽ không sử dụng nó nhiều trong cuốn sách này, nhưng sẽ rất hữu ích khi biết những điều cơ bản. Ngoài ra, thành thạo OOP thường là điều cần thiết khi bạn bắt đầu có một cơ sở mã lớn Trong Python, mọi thứ đều là đối tượng. Một số, một chuỗi hoặc một hàm là một đối tượng. Một đối tượng là một thể hiện của một loại (còn được gọi là lớp). Một đối tượng có các thuộc tính và phương thức, như được chỉ định bởi loại của nó. Một thuộc tính là một biến được liên kết với một đối tượng, cung cấp một số thông tin về nó. Một phương thức là một chức năng áp dụng cho đối tượng Ví dụ: đối tượng 'xin chào' là một thể hiện của loại str tích hợp (chuỗi). Hàm type() trả về kiểu của đối tượng, như minh họa ở đây 9Có các loại gốc, như str hoặc int (số nguyên) và các loại tùy chỉnh, còn được gọi là các lớp, có thể được tạo bởi người dùng Trong IPython, bạn có thể khám phá các thuộc tính và phương thức của bất kỳ đối tượng nào bằng cú pháp dấu chấm và hoàn thành tab. Ví dụ: gõ 'xin chào'. u và nhấn Tab sẽ tự động cho chúng ta thấy sự tồn tại của phương thức upper() 0Ở đây, upper() là một phương thức có sẵn cho tất cả các đối tượng str; Một phương thức chuỗi hữu ích là format(). Hệ thống tạo khuôn mẫu đơn giản và thuận tiện này cho phép bạn tạo các chuỗi một cách linh hoạt, như minh họa trong ví dụ sau 1{0. s} có nghĩa là “thay thế điều này bằng đối số đầu tiên của định dạng (), phải là một chuỗi”. Loại biến sau dấu hai chấm đặc biệt hữu ích cho các số, nơi bạn có thể chỉ định cách hiển thị số (ví dụ:. 3f để hiển thị ba số thập phân). 0 cho phép thay thế một giá trị nhất định nhiều lần trong một chuỗi nhất định. Bạn cũng có thể sử dụng tên thay cho chức vụ—ví dụ: 'Xin chào {tên}. ’. định dạng (tên = 'Python') Một số phương pháp được bắt đầu bằng dấu gạch dưới _; . Việc hoàn thành tab của IPython sẽ không hiển thị cho bạn các thuộc tính và phương thức riêng tư này trừ khi bạn nhập rõ ràng _ trước khi nhấn Tab Trong thực tế, điều quan trọng nhất cần nhớ là việc thêm dấu chấm. vào bất kỳ đối tượng Python nào và nhấn Tab trong IPython sẽ hiển thị cho bạn rất nhiều chức năng liên quan đến đối tượng đó lập trình chức năngPython là một ngôn ngữ đa mô hình; . Các hàm Python là các đối tượng và có thể được xử lý như các đối tượng khác. Đặc biệt, chúng có thể được truyền dưới dạng đối số cho các hàm khác (còn được gọi là hàm bậc cao hơn). Đây là bản chất của lập trình chức năng Trình trang trí cung cấp cấu trúc cú pháp thuận tiện để xác định các hàm bậc cao hơn. Đây là một ví dụ sử dụng hàm is_even() từ phần Hàm trước 2Hàm show_output() biến đổi một hàm tùy ý func() thành một hàm mới, có tên là wrap(), hiển thị kết quả của hàm như sau 3Tương tự, chức năng bậc cao hơn này cũng có thể được sử dụng với một trình trang trí, như sau 4Bạn có thể tìm thêm thông tin về trình trang trí Python tại https. // vi. wikipedia. org/wiki/Python_syntax_and_semantics#Decorators và tại http. //www. mật mã. com/patterns/guide-to-python-function-decorators/ Trăn 2 và 3Hãy kết thúc phần này với một số lưu ý về vấn đề tương thích Python 2 và Python 3 Vẫn còn một số mã và thư viện Python 2 không tương thích với Python 3. Do đó, đôi khi rất hữu ích khi nhận thức được sự khác biệt giữa hai phiên bản. Một trong những khác biệt rõ ràng nhất là print là một câu lệnh trong Python 2, trong khi nó là một hàm trong Python 3. Do đó, print “Xin chào” (không có dấu ngoặc đơn) hoạt động trong Python 2 nhưng không hoạt động trong Python 3, trong khi print(“Xin chào”) hoạt động trong cả Python 2 và Python 3 Có một số tùy chọn không loại trừ lẫn nhau để viết mã di động hoạt động với cả hai phiên bản
Dưới đây là một vài tài liệu tham khảo
Vượt ra ngoài những điều cơ bảnBây giờ bạn đã biết các nguyên tắc cơ bản của Python, mức tối thiểu mà bạn sẽ cần trong cuốn sách này. Như bạn có thể tưởng tượng, còn nhiều điều để nói về Python Sau đây là một số khái niệm cơ bản khác thường hữu ích và rất tiếc chúng tôi không thể trình bày ở đây. Bạn rất nên xem chúng trong các tài liệu tham khảo được đưa ra ở cuối phần này
Dưới đây là một số khái niệm nâng cao hơn một chút mà bạn có thể thấy hữu ích nếu muốn nâng cao kỹ năng Python của mình
Cuối cùng, đây là một vài tài liệu tham khảo
Tóm lượcTrong bài viết này, chúng ta đã xem cách khởi chạy bảng điều khiển IPython và Jupyter Notebook, các khía cạnh khác nhau của Notebook và giao diện người dùng của nó, cấu trúc của ô sổ tay, phím tắt có sẵn trong giao diện Notebook và kiến thức cơ bản về Python Làm cách nào để gọi một hàm trong Python?Để gọi một hàm, bạn viết tên hàm theo sau là dấu hai chấm . N. B. Đảm bảo rằng bạn không chỉ định lệnh gọi hàm bên trong khối chức năng.
Bạn có thể gọi các chức năng từ sổ ghi chép Jupyter khác không?py tệp) hoặc Jupyter Notebook. Lưu ý file chứa định nghĩa hàm và file gọi hàm phải cùng thư mục. Để sử dụng các hàm được viết trong một tệp bên trong một tệp khác, hãy bao gồm dòng nhập, from filename import function_name . |