Hướng dẫn ipython command line - dòng lệnh ipython
Bạn không cần phải biết bất cứ điều gì ngoài Python để bắt đầu sử dụng ipython - chỉ cần gõ các lệnh như bạn làm tại dấu nhắc Python tiêu chuẩn. Nhưng Ipython có thể làm nhiều hơn lời nhắc tiêu chuẩn. Một số tính năng chính được mô tả ở đây. Để biết thêm thông tin, hãy kiểm tra trang Mẹo hoặc xem các ví dụ trong Sách nấu ăn Ipython.tips page, or look at examples in the IPython cookbook. Show Nếu bạn đã thực hiện điều đó nhưng hãy xem cách cài đặt Ipython.how to install ipython. Nếu bạn không bao giờ sử dụng Python trước đây, bạn có thể muốn xem hướng dẫn chính thức hoặc một giải pháp thay thế, đi sâu vào Python. Bắt đầu ipython bằng cách phát hành lệnh Python 3.6.0 Type 'copyright', 'credits' or 'license' for more information IPython 6.0.0.dev -- An enhanced Interactive Python. Type '?' for help. In [1]: Không giống như Python REP, bạn sẽ thấy rằng dấu nhắc đầu vào là Bạn sẽ có thể nhập các biểu thức dòng đơn và nhấn Enter để đánh giá chúng. Nếu một biểu thức không đầy đủ, ipython sẽ tự động phát hiện điều này và thêm một dòng mới khi bạn nhấn enter thay vì thực thi ngay lập tức. Hãy thoải mái khám phá đầu vào văn bản nhiều dòng. Không giống như nhiều bản sao khác, với ipython, bạn có thể sử dụng các khóa mũi tên lên và xuống khi chỉnh sửa các khối mã đa dòng. Dưới đây là một ví dụ về sự tương tác dài hơn với ipython replin, mà chúng ta thường gọi là phiên ipython
In [1]: print('Hello IPython') Hello IPython In [2]: 21 * 2 Out[2]: 42 In [3]: def say_hello(name): ...: print('Hello {name}'.format(name=name)) ...: Chúng tôi đã giành được chi tiết ngay bây giờ, nhưng bạn có thể nhận thấy một vài sự khác biệt đối với Python Repress tiêu chuẩn. Đầu tiên, mã của bạn phải được đánh sáng bằng cú pháp khi bạn gõ. Thứ hai, bạn sẽ thấy rằng một số kết quả sẽ có dấu nhắc Tùy thuộc vào lệnh chính xác mà bạn đang nhập, bạn có thể nhận ra rằng đôi khi Enter sẽ thêm một dòng mới và đôi khi nó sẽ thực thi câu lệnh hiện tại. Ipython cố gắng đoán xem bạn đang làm gì, vì vậy hầu hết thời gian bạn không nên quan tâm. Mặc dù nếu có bất kỳ cơ hội nào Ipython không làm đúng, bạn có thể buộc thực thi khối mã hiện tại bằng cách nhấn theo trình tự ESC và ENTER. Bạn cũng có thể buộc chèn một dòng mới ở vị trí của con trỏ bằng cách sử dụng Ctrl-O. Bốn lệnh hữu ích nhấtBốn lệnh hữu ích nhất, cũng như mô tả ngắn gọn của chúng, được hiển thị cho bạn trong một biểu ngữ, mỗi khi bạn bắt đầu ipython:
Hoàn thành tabHoàn thành tab, đặc biệt là đối với các thuộc tính, là một cách thuận tiện để khám phá cấu trúc của bất kỳ đối tượng nào mà bạn đang xử lý. Chỉ cần nhập Bắt đầu với IPYTHON 6.0, nếu In [1]: print('Hello IPython') Hello IPython In [2]: 21 * 2 Out[2]: 42 In [3]: def say_hello(name): ...: print('Hello {name}'.format(name=name)) ...:0 được cài đặt, Ipython cũng sẽ cố gắng hoàn thành từ Jedi. Điều này cho phép không chỉ kiểm tra các đối tượng hiện có, mà còn suy ra hoàn thành tĩnh mà không cần thực thi mã. Không có gì cần thiết để làm cho nó hoạt động, chỉ cần sử dụng hoàn thành tab trên các biểu thức phức tạp hơn như sau: >>> data = ['Number of users', 123456] ... data[0].<tab> Ipython và Jedi sẽ có thể suy luận rằng In [1]: print('Hello IPython') Hello IPython In [2]: 21 * 2 Out[2]: 42 In [3]: def say_hello(name): ...: print('Hello {name}'.format(name=name)) ...:1 thực sự là một chuỗi và sẽ hiển thị các hoàn thành có liên quan như In [1]: print('Hello IPython') Hello IPython In [2]: 21 * 2 Out[2]: 42 In [3]: def say_hello(name): ...: print('Hello {name}'.format(name=name)) ...:2, In [1]: print('Hello IPython') Hello IPython In [2]: 21 * 2 Out[2]: 42 In [3]: def say_hello(name): ...: print('Hello {name}'.format(name=name)) ...:3 và các phương thức chuỗi khác. Bạn có thể sử dụng phím tab để chu kỳ thông qua các lần hoàn thành và trong khi hoàn thành được tô sáng, loại của nó cũng sẽ được hiển thị. Khi loại hoàn thành là một hàm, trình tuân thủ cũng sẽ hiển thị chữ ký của hàm khi được tô sáng. Khám phá các đối tượng của bạnGõ In [1]: print('Hello IPython') Hello IPython In [2]: 21 * 2 Out[2]: 42 In [3]: def say_hello(name): ...: print('Hello {name}'.format(name=name)) ...:4 sẽ in tất cả các loại chi tiết về bất kỳ đối tượng nào, bao gồm DocStrings, các dòng định nghĩa chức năng (cho các đối số cuộc gọi) và chi tiết hàm tạo cho các lớp. Để có được thông tin cụ thể về một đối tượng, bạn có thể sử dụng các lệnh ma thuật In [1]: print('Hello IPython') Hello IPython In [2]: 21 * 2 Out[2]: 42 In [3]: def say_hello(name): ...: print('Hello {name}'.format(name=name)) ...:5, In [1]: print('Hello IPython') Hello IPython In [2]: 21 * 2 Out[2]: 42 In [3]: def say_hello(name): ...: print('Hello {name}'.format(name=name)) ...:6, In [1]: print('Hello IPython') Hello IPython In [2]: 21 * 2 Out[2]: 42 In [3]: def say_hello(name): ...: print('Hello {name}'.format(name=name)) ...:7 và In [1]: print('Hello IPython') Hello IPython In [2]: 21 * 2 Out[2]: 42 In [3]: def say_hello(name): ...: print('Hello {name}'.format(name=name)) ...:8 Chức năng ma thuậtIpython có một tập hợp các chức năng ma thuật được xác định trước mà bạn có thể gọi với cú pháp kiểu dòng lệnh. Có hai loại phép thuật, định hướng dòng và định hướng tế bào. Các phép thuật dòng được đặt trước với ký tự In [1]: print('Hello IPython') Hello IPython In [2]: 21 * 2 Out[2]: 42 In [3]: def say_hello(name): ...: print('Hello {name}'.format(name=name)) ...:9 và hoạt động giống như các cuộc gọi dòng lệnh hệ điều hành: chúng nhận được một đối số phần còn lại của dòng, trong đó các đối số được truyền mà không có dấu ngoặc đơn hoặc trích dẫn. MAGICS có thể trả về kết quả và có thể được sử dụng ở phía bên phải của một nhiệm vụ. Các phép thuật di động được đặt trước với một >>> data = ['Number of users', 123456] ... data[0].<tab>0 kép và chúng là các chức năng nhận được như một đối số không chỉ phần còn lại của dòng, mà cả các dòng bên dưới nó trong một đối số riêng biệt.Line magics are prefixed with the In [1]: print('Hello IPython') Hello IPython In [2]: 21 * 2 Out[2]: 42 In [3]: def say_hello(name): ...: print('Hello {name}'.format(name=name)) ...:9 character and work much like OS command-line calls: they get as an argument the rest of the line, where arguments are passed without parentheses or quotes. Lines magics can return results and can be used in the right hand side of an assignment. Cell magics are prefixed with a double >>> data = ['Number of users', 123456] ... data[0].<tab>0, and they are functions that get as an argument not only the rest of the line, but also the lines below it in a separate argument. Pháp thuật rất hữu ích vì các chức năng thuận tiện trong đó cú pháp Python không phải là tự nhiên nhất, hoặc khi một người muốn nhúng cú pháp Python không hợp lệ trong dòng công việc của chúng. Các ví dụ sau đây cho thấy cách gọi ma thuật >>> data = ['Number of users', 123456] ... data[0].<tab>1 tích hợp, cả trong chế độ dòng và ô: In [1]: %timeit range(1000) 100000 loops, best of 3: 7.76 us per loop In [2]: %%timeit x = range(10000) ...: max(x) ...: 1000 loops, best of 3: 223 us per loop Các phép thuật tích hợp bao gồm:
Bạn luôn có thể gọi ma thuật bằng tiền tố In [1]: print('Hello IPython') Hello IPython In [2]: 21 * 2 Out[2]: 42 In [3]: def say_hello(name): ...: print('Hello {name}'.format(name=name)) ...:9 và nếu bạn tự gọi một phép thuật trên một dòng, miễn là định danh không được xác định trong không gian tên của bạn, bạn có thể bỏ qua điều đó thậm chí: Bạn có thể chuyển đổi hành vi này bằng cách chạy ma thuật >>> data = ['Number of users', 123456] ... data[0].<tab>9. Magics di động phải luôn có tiền tố >>> data = ['Number of users', 123456] ... data[0].<tab>0. Một lời giải thích chi tiết hơn về hệ thống ma thuật có thể được lấy bằng cách gọi In [1]: %timeit range(1000) 100000 loops, best of 3: 7.76 us per loop In [2]: %%timeit x = range(10000) ...: max(x) ...: 1000 loops, best of 3: 223 us per loop8 và để biết thêm chi tiết về bất kỳ chức năng ma thuật nào, hãy gọi In [1]: %timeit range(1000) 100000 loops, best of 3: 7.76 us per loop In [2]: %%timeit x = range(10000) ...: max(x) ...: 1000 loops, best of 3: 223 us per loop9 để đọc tài liệu của nó. Để xem tất cả các chức năng ma thuật có sẵn, hãy gọi ipython 0.Chạy và chỉnh sửa OrLệnh ma thuật >>> data = ['Number of users', 123456] ... data[0].<tab>2 cho phép bạn chạy bất kỳ tập lệnh Python nào và tải tất cả dữ liệu của nó trực tiếp vào không gian tên tương tác. Vì tệp được đọc lại từ đĩa mỗi lần, các thay đổi bạn thực hiện với nó được phản ánh ngay lập tức (không giống như các mô-đun được nhập, phải được tải lại cụ thể). Ipython cũng bao gồm dreload, chức năng tải lại đệ quy.dreload, a recursive reload function. >>> data = ['Number of users', 123456] ... data[0].<tab>2 có các cờ đặc biệt để định thời gian thực hiện các tập lệnh của bạn (-T) hoặc để chạy chúng dưới sự kiểm soát của trình gỡ lỗi Python tựa PDB (-D) hoặc Profiler (-p). Lệnh >>> data = ['Number of users', 123456] ... data[0].<tab>3 cung cấp một xấp xỉ hợp lý của chỉnh sửa nhiều dòng, bằng cách gọi trình chỉnh sửa yêu thích của bạn tại chỗ. Ipython sẽ thực thi mã bạn nhập vào đó như thể nó được gõ một cách tương tác. Lưu ý rằng để >>> data = ['Number of users', 123456] ... data[0].<tab>3 hoạt động, cuộc gọi để khởi động biên tập viên của bạn phải là một cuộc gọi chặn. Trong môi trường GUI, biên tập viên của bạn có thể sẽ có một tùy chọn như vậy. Gỡ lỗiSau khi xảy ra ngoại lệ, bạn có thể gọi Bạn cũng có thể bước qua một chương trình ngay từ đầu bằng cách gọi Lịch sử¶Ipython lưu trữ cả hai lệnh bạn nhập và kết quả mà nó tạo ra. Bạn có thể dễ dàng vượt qua các lệnh trước đó với các phím tăng và xuống hoặc truy cập vào lịch sử của bạn theo những cách tinh vi hơn. Lịch sử đầu vào và đầu ra được giữ trong các biến được gọi là Bạn có thể sử dụng chức năng ma thuật Một số hàm ma thuật khác có thể sử dụng lịch sử đầu vào của bạn, bao gồm >>> data = ['Number of users', 123456] ... data[0].<tab>3, In [N]: 6, >>> data = ['Number of users', 123456] ... data[0].<tab>6, >>> data = ['Number of users', 123456] ... data[0].<tab>5, >>> data = ['Number of users', 123456] ... data[0].<tab>4 và >>> 0. Bạn có thể sử dụng một định dạng tiêu chuẩn để tham khảo các dòng:Điều này sẽ lấy dòng 3 và dòng 18 đến 20 từ phiên hiện tại và các dòng 1-5 từ phiên trước. Các lệnh shell hệ thốngĐể chạy bất kỳ lệnh nào tại shell hệ thống, chỉ cần tiền tố nó với Bạn có thể ghi lại đầu ra vào danh sách Python, ví dụ: Xác định bí danh hệ thống của riêng bạnNó thuận tiện để có bí danh cho các lệnh hệ thống bạn sử dụng thường xuyên nhất. Điều này cho phép bạn làm việc liền mạch từ bên trong ipython với các lệnh tương tự bạn đã quen với vỏ hệ thống của mình. Ipython đi kèm với một số bí danh được xác định trước và một hệ thống hoàn chỉnh để thay đổi các thư mục, cả thông qua một ngăn xếp (xem Cấu hình¶Phần lớn Ipython có thể được điều chỉnh thông qua cấu hình. Để bắt đầu, hãy sử dụng lệnh Hồ sơ cho phép bạn sử dụng ipython cho các tác vụ khác nhau, giữ các tệp cấu hình và lịch sử riêng biệt cho từng tác phẩm. Thêm chi tiết trong phần Hồ sơ.the profiles section. Các tập tin khởi độngNếu bạn muốn một số mã được chạy vào đầu mỗi phiên ipython, cách dễ nhất là thêm các tập lệnh python (.py) hoặc ipython (.ipy) vào thư mục |