IPython được xây dựng dựa trên Python

Lý do tại sao tôi chọn PHP là số lượng nội dung bạn có thể dễ dàng tìm thấy trên internet. Như bạn đã trích dẫn là người mới bắt đầu, tôi nghĩ một ngôn ngữ trưởng thành hơn sẽ tốt hơn. Và đó cũng là một lý do khác để theo đuổi PHP

Python đơn giản và "trưởng thành", nhưng có thể hơi khó hiểu nếu bạn là người mới bắt đầu. Python dựa trên sự trừu tượng nặng nề và đó là lý do đằng sau sự đơn giản của nó. Python là một ngôn ngữ "dễ chơi, khó thành thạo", tôi không bao giờ khuyên dùng nó cho người mới bắt đầu. Ngoài ra, một lý do [có thể là cá nhân] khiến tôi không thích sử dụng Python làm back-end là. Python rất tập trung vào dữ liệu. Vì vậy, nếu ứng dụng của bạn tập trung vào logic nghiệp vụ, Python sẽ không phù hợp lắm. Và điều đó trở thành một lợi thế, nếu ứng dụng của bạn tập trung vào thống kê, tập trung vào dữ liệu hoặc thứ gì đó tương tự, thì Python có lợi thế rất lớn so với tất cả các ngôn ngữ khác do có nhiều công cụ tuyệt vời mà cộng đồng đã xây dựng

Về Node, nó giống như PHP, nhưng kém hoàn thiện hơn. Thật dễ dàng như PHP để tìm các công cụ có thể giúp bạn, ví dụ, trừu tượng hóa logic của kết nối cơ sở dữ liệu. Nhưng để tìm nội dung tập trung vào kiến ​​trúc, khái niệm cao cấp hơn thì khó hơn rất nhiều. Trong khi đó, cộng đồng của Laravel chẳng hạn, có rất nhiều tài liệu liên quan đến các khái niệm đó

Tuy nhiên, nếu bạn thực sự là người mới bắt đầu, tôi không khuyên bạn nên sử dụng Laravel với PHP. Trước tiên hãy làm mọi thứ trên PHP đơn giản, hiểu lý do đằng sau việc sử dụng các khung và động lực của Laravel

Hai phần trước cho thấy IPython cho phép bạn sử dụng và khám phá Python một cách hiệu quả và tương tác như thế nào. Ở đây chúng ta sẽ bắt đầu thảo luận về một số cải tiến mà IPython thêm vào trên cú pháp Python thông thường. Chúng được biết đến trong IPython dưới dạng các lệnh ma thuật và có tiền tố là ký tự

In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
3. Các lệnh ma thuật này được thiết kế để giải quyết ngắn gọn các vấn đề phổ biến khác nhau trong phân tích dữ liệu tiêu chuẩn. Lệnh ma thuật có hai hương vị. phép thuật dòng, được biểu thị bằng một tiền tố
In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
3 duy nhất và hoạt động trên một dòng đầu vào và phép thuật ô, được biểu thị bằng tiền tố
In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
5 kép và hoạt động trên nhiều dòng đầu vào. Chúng ta sẽ chứng minh và thảo luận về một số ví dụ ngắn gọn ở đây và quay lại thảo luận tập trung hơn về một số lệnh ma thuật hữu ích ở phần sau của chương này

Dán khối mã.
In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
6 và
In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
7

Khi làm việc trong trình thông dịch IPython, một vấn đề phổ biến là việc dán các khối mã nhiều dòng có thể dẫn đến các lỗi không mong muốn, đặc biệt là khi có liên quan đến dấu thụt lề và trình thông dịch. Một trường hợp phổ biến là bạn tìm thấy một số mã ví dụ trên một trang web và muốn dán mã đó vào trình thông dịch của mình. Xét hàm đơn giản sau

>>> def donothing[x]:
...     return x

Mã được định dạng như nó sẽ xuất hiện trong trình thông dịch Python và nếu bạn sao chép và dán trực tiếp mã này vào IPython, bạn sẽ gặp lỗi

In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax

Khi dán trực tiếp, trình thông dịch bị nhầm lẫn bởi các ký tự dấu nhắc bổ sung. Nhưng đừng bao giờ sợ—Chức năng ma thuật

In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
6 của IPython được thiết kế để xử lý chính xác loại đầu vào nhiều dòng, được đánh dấu này

________số 8

Lệnh

In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
6 vừa nhập vừa thực thi mã, vì vậy bây giờ hàm đã sẵn sàng để sử dụng

In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
0

Một lệnh có mục đích tương tự là

In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
7, lệnh này sẽ mở ra một lời nhắc nhiều dòng tương tác, trong đó bạn có thể dán một hoặc nhiều đoạn mã để thực thi theo lô

In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
2

Những lệnh kỳ diệu này, giống như những lệnh khác mà chúng ta sẽ thấy, tạo ra chức năng khả dụng mà trình thông dịch Python tiêu chuẩn khó hoặc không thể thực hiện được

Chạy mã bên ngoài.
In [3]: %paste
>>> def donothing[x]:
...     return x

## -- End pasted text --
1

Khi bạn bắt đầu phát triển mã mở rộng hơn, bạn có thể thấy mình đang làm việc trong cả IPython để khám phá tương tác, cũng như trình soạn thảo văn bản để lưu trữ mã mà bạn muốn sử dụng lại. Thay vì chạy mã này trong một cửa sổ mới, có thể thuận tiện để chạy nó trong phiên IPython của bạn. Điều này có thể được thực hiện với phép thuật

In [3]: %paste
>>> def donothing[x]:
...     return x

## -- End pasted text --
1

Ví dụ: hãy tưởng tượng bạn đã tạo một tệp

In [3]: %paste
>>> def donothing[x]:
...     return x

## -- End pasted text --
3 với nội dung sau

In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
6

Bạn có thể thực hiện điều này từ phiên IPython của mình như sau

In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
7

Cũng lưu ý rằng sau khi bạn chạy tập lệnh này, mọi chức năng được xác định bên trong tập lệnh đều có sẵn để sử dụng trong phiên IPython của bạn

In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
8

Có một số tùy chọn để tinh chỉnh cách chạy mã của bạn;

Thời gian thực thi mã.
In [3]: %paste
>>> def donothing[x]:
...     return x

## -- End pasted text --
5

Một ví dụ khác về hàm ma thuật hữu ích là

In [3]: %paste
>>> def donothing[x]:
...     return x

## -- End pasted text --
5, hàm này sẽ tự động xác định thời gian thực hiện của câu lệnh Python một dòng theo sau nó. Ví dụ: chúng tôi có thể muốn kiểm tra hiệu suất của việc hiểu danh sách

In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
2

Lợi ích của

In [3]: %paste
>>> def donothing[x]:
...     return x

## -- End pasted text --
5 là đối với các lệnh ngắn, nó sẽ tự động thực hiện nhiều lần chạy để đạt được kết quả mạnh mẽ hơn. Đối với các câu lệnh nhiều dòng, việc thêm dấu
In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
3 thứ hai sẽ biến điều này thành một phép thuật ô có thể xử lý nhiều dòng đầu vào. Ví dụ: đây là cấu trúc tương đương với vòng lặp
In [3]: %paste
>>> def donothing[x]:
...     return x

## -- End pasted text --
9

In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
6

Chúng ta có thể thấy ngay rằng việc hiểu danh sách nhanh hơn khoảng 10% so với cấu trúc vòng lặp

In [3]: %paste
>>> def donothing[x]:
...     return x

## -- End pasted text --
9 tương đương trong trường hợp này. Chúng ta sẽ khám phá
In [3]: %paste
>>> def donothing[x]:
...     return x

## -- End pasted text --
5 và các cách tiếp cận khác đối với mã định thời và lập hồ sơ trong Mã lập hồ sơ và định thời

Trợ giúp về Chức năng ma thuật.
In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
02,
In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
03 và
In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
04

Giống như các hàm Python thông thường, các hàm ma thuật IPython có các tài liệu và tài liệu hữu ích này có thể được truy cập theo cách tiêu chuẩn. Vì vậy, ví dụ, để đọc tài liệu về phép thuật

In [3]: %paste
>>> def donothing[x]:
...     return x

## -- End pasted text --
5, chỉ cần gõ cái này

In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
0

Tài liệu cho các chức năng khác có thể được truy cập tương tự. Để truy cập mô tả chung về các chức năng ma thuật có sẵn, bao gồm một số ví dụ, bạn có thể nhập

In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
1

Để có danh sách nhanh chóng và đơn giản về tất cả các chức năng ma thuật có sẵn, hãy nhập cái này

In [2]: >>> def donothing[x]:
   ...:     ...     return x
   ...:     
  File "", line 2
    ...     return x
                 ^
SyntaxError: invalid syntax
2

Cuối cùng, tôi sẽ đề cập rằng việc xác định các chức năng ma thuật của riêng bạn là khá đơn giản nếu bạn muốn. Chúng tôi sẽ không thảo luận về nó ở đây, nhưng nếu bạn quan tâm, hãy xem các tài liệu tham khảo được liệt kê trong Tài nguyên IPython khác

IPython có liên kết chặt chẽ với dự án Jupyter không?

Ngoài ra, IPython được liên kết chặt chẽ với dự án Jupyter , cung cấp sổ ghi chép dựa trên trình duyệt hữu ích cho việc phát triển, cộng tác, .

IPython khác với Python như thế nào?

IPython là một shell tương tác được xây dựng bằng python . Nó cung cấp một môi trường shell hữu ích hơn để thực thi mã python trong REPL [Đọc Eval Print Loop]. Nó làm cho nó tương tác hơn bằng cách thêm các tính năng như đánh dấu cú pháp, hoàn thành mã, v.v. IPython cũng đi kèm với các công cụ khác như Jupyter Notebooks, v.v.

IPython có phải là một phần của Jupyter không?

IPython tiếp tục tồn tại dưới dạng trình bao Python và nhân cho Jupyter , nhưng giao diện sổ ghi chép và các phần không phụ thuộc vào ngôn ngữ khác của IPython đã được chuyển sang tên Jupyter. Jupyter là ngôn ngữ bất khả tri và tên của nó liên quan đến các ngôn ngữ lập trình cốt lõi được hỗ trợ bởi Jupyter, đó là Julia, Python và R.

IPython đang sử dụng Python nào?

IPython hỗ trợ Python 2. 7 và 3. 3 trở lên . 1 tuổi của chúng tôi. x hỗ trợ Python 2. 6 và 3. 2.

Chủ Đề