Trăn spyder hoạt động như thế nào?

Mục blog này đã được tích hợp vào Spyder dưới dạng Hướng dẫn. Khi Spyder đã bắt đầu, bạn có thể tìm thấy phiên bản cập nhật nhất của hướng dẫn này trong phần Trợ giúp -> Hướng dẫn Spyder

Xem trang web Spyder để biết thêm thông tin và tài liệu về IDE

Tài liệu lỗi thời bắt đầu

Hans Fangohr, Đại học Southampton, Vương quốc Anh, 2013

Spyder đã phát triển thành một công cụ khá trưởng thành và rất hiệu quả; . Tài liệu này được thúc đẩy bởi các khóa đào tạo về Python và lập mô hình tính toán cho sinh viên tại Đại học Southampton [xem ghi chú lịch sử để biết thêm chi tiết]

Mục blog này đã được tích hợp vào Spyder dưới dạng Hướng dẫn. Khi Spyder đã bắt đầu, bạn có thể tìm thấy phiên bản cập nhật nhất của hướng dẫn này trong phần Trợ giúp -> Hướng dẫn Spyder

Đề cương

  • 1   Các bước đầu tiên với Spyder
    • 1. 1   Thực hiện một chương trình nhất định
      • 1. 1. 1   Bắt đầu IPython
      • 1. 1. 2   Thông tin cơ bản. Điều gì xảy ra khi bạn thực hiện chương trình?
    • 1. 2   Gọi các đối tượng chức năng hiện có từ dòng lệnh
    • 1. 3   Kiểm tra đối tượng
    • 1. 4   Đang cập nhật đối tượng
      • 1. 4. 1   Chiến lược đơn giản. thực hiện lại toàn bộ chương trình
      • 1. 4. 2   Xem chi tiết
  • 2   Các bước đầu tiên được đề xuất cho người mới bắt đầu sử dụng Python
    • 2. 1   Chuyển sang bảng điều khiển IPython
    • 2. 2   Đặt lại không gian tên
    • 2. 3   Phấn đấu Tuân thủ PEP8
  • 3   Tùy chọn đã chọn
    • 3. 1   Các tùy chọn nằm ở đâu?
    • 3. 2   Thay đổi cài đặt Spyder để luôn bắt đầu với trình bao IPython
    • 3. 3   Cảnh báo nếu vi phạm nguyên tắc viết mã PEP8
    • 3. 4   Không nhập tiện lợi trong Bảng điều khiển Python
    • 3. 5   Không nhập tiện lợi trong Bảng điều khiển IPython
    • 3. 6   Trăn tượng trưng tự động
  • 4   Lối tắt cho các chức năng hữu ích
  • 5   Chạy cài đặt
    • 5. 1   Thực thi bằng trình thông dịch Python hoặc IPython hiện tại
      • 5. 1. 1   Tính bền vững của đối tượng I [sau khi thực thi mã]
      • 5. 1. 2   Tính bền vững của đối tượng II [từ trước khi thực thi mã]
    • 5. 2   Thực thi trong trình thông dịch Python chuyên dụng mới
    • 5. 3   Cách kiểm tra kỹ xem mã của bạn có tự thực thi chính xác không
    • 5. 4   Đề xuất
  • 6   Các quan sát khác
    • 6. 1   Nhiều cửa sổ
    • 6. 2   Biến môi trường
    • 6. 3   Đặt lại tất cả tùy chỉnh
    • 6. 4   Các đối tượng trong trình khám phá biến
  • 7   Định dạng chuỗi tài liệu
  • 8   Gỡ lỗi trong Trình gỡ lỗi Ipython
    • 8. 1   Việc thực thi mã từng bước một
    • 8. 2   Gỡ lỗi khi đã xảy ra ngoại lệ
  • 9   Lập kế hoạch
  • 10   Ghi chép lịch sử
  • 11   Phiên bản
    • 11. 1   Phiên bản gián điệp
    • 11. 2   Thay đổi

1   Các bước đầu tiên với Spyder

1. 1   Thực hiện một chương trình nhất định

  • Tải tệp hello world vào cửa sổ trình soạn thảo Spyder bằng một trong hai

    • Tải xuống xin chào. py và lưu dưới dạng xin chào. py. [Bạn tải file về bằng cách click chuột phải vào link trên trình duyệt, sau đó chọn Save Target As hoặc Save Download as], sau đó
    • Mở tệp xin chào. py qua menu Tệp, sau đó chọn Mở. Chúng tôi thể hiện điều này dưới dạng Tệp -> Mở ngắn gọn.

    hoặc

    • nhấp vào xin chào. py để xem mã nguồn trong trình duyệt web, sau đó sao chép toàn bộ mã
    • điều hướng đến cửa sổ soạn thảo trong spyder và dán mã. Sau đó lưu tệp dưới dạng xin chào. py
  • Để chạy chương trình, chọn Run -> Run [hoặc nhấn F5] và xác nhận cài đặt Run nếu được yêu cầu.

    Bạn sẽ thấy đầu ra như

    Hello World
    >>>
    

    hoặc [đường dẫn cụ thể sẽ phụ thuộc vào nơi bạn đã lưu tệp, nhưng đường dẫn này được Spyder tự động chèn vào]

    >>> runfile['/Users/fangohr/Desktop/hello.py', wdir=r'/Users/fangohr/Desktop']
    Hello World
    >>>
    

    Nếu vậy, thì bạn vừa chạy chương trình Python đầu tiên của mình - hoàn thành tốt

1. 1. 1   Bắt đầu IPython

Trước khi chúng tôi tiến hành, xin vui lòng

  • Chuyển sang bảng điều khiển IPython

    Bảng điều khiển IPython có thể làm được nhiều hơn một chút so với bảng điều khiển Python tiêu chuẩn và chúng tôi khuyên bạn nên sử dụng nó làm bảng điều khiển mặc định tại đây

    Trong phiên phiên dịch IPython mà chúng ta vừa bắt đầu, bạn có thể sử dụng Run->Run [như trước] để thực thi hello. py và bạn sẽ thấy.

    In [1]: runfile['/Users/fangohr/Desktop/hello.py', wdir='/Users/fangohr/Desktop']
    Hello World
    

1. 1. 2   Thông tin cơ bản. Điều gì xảy ra khi bạn thực hiện chương trình?

  • Python đọc từng dòng tệp, bỏ qua các bình luận

  • khi bắt gặp từ khóa def, nó biết rằng một hàm được XÁC ĐỊNH trong dòng này và [một hoặc nhiều] dòng tiếp theo. trong lời chào. py, do đó Python tạo một đối tượng hàm có tên hello. Tất cả các dòng thụt vào sau def hello[]. thuộc thân hàm.

    Lưu ý rằng đối tượng hàm vừa được tạo tại thời điểm này trong tệp, nhưng hàm chưa được gọi [i. e. không thực hiện được]

  • khi Python gặp các lệnh [ngoài def. và một vài từ khóa khác] được viết ở cột ngoài cùng bên trái, nó sẽ thực hiện ngay những từ khóa này. trong lời chào. py, đây chỉ là dòng đọc hello[] thực sự sẽ gọi [i. e. thực hiện] chức năng với tên xin chào

    Nếu bạn xóa dòng hello[] khỏi chương trình và chạy lại toàn bộ tệp [bằng cách nhấn F5 hoặc chọn run -> . e. không thực hiện được].

Bây giờ bạn đã biết cách thực thi chương trình Python mà bạn có trong cửa sổ soạn thảo trong Spyder bằng Bảng điều khiển Python và Bảng điều khiển IPython tinh vi hơn

Nếu bạn mới bắt đầu học Python, đây có lẽ là một điểm tốt để quay lại sách giáo khoa/khóa học của bạn và xem các ví dụ cơ bản hơn

Phần tiếp theo cung cấp thông tin chi tiết hơn về cách bạn có thể thực thi các phần mã trong trình chỉnh sửa trong bảng điều khiển Python và do đó cập nhật các phần định nghĩa của bạn trong trình chỉnh sửa. Đây là một kỹ thuật tiên tiến hơn nhưng có thể rất hữu ích. [Bạn cũng có thể quan tâm đến tùy chọn thực thi các đoạn mã [được gọi là "ô"] mã được phân tách bằng dấu phân cách -- xem Phím tắt cho các chức năng hữu ích. ]

1. 2   Gọi các đối tượng chức năng hiện có từ dòng lệnh

Một khi bạn đã thực hiện lời chào. py, đối tượng hàm hello được định nghĩa và biết tại dấu nhắc Python. Do đó, chúng ta có thể gọi hàm từ dấu nhắc Python

  • Gọi hàm hello[] từ dấu nhắc Python, i. e. gõ hello[] trong cửa sổ Python Shell [dấu nhắc Python hiển thị dưới dạng >>> hoặc dưới dạng In [?] nếu chúng ta sử dụng phiên IPython trong đó . ] và nhấn phím quay lại.

    Bạn sẽ thấy rằng hàm hello[] được thực thi lại, tôi. e. Hello World được in lại. Hàm của bạn gọi tại dấu nhắc Python cùng với đầu ra sẽ như thế này

    In [ ]: hello[]
    Hello World
    
  • Bạn có thể thấy điều này khác với việc thực hiện lại toàn bộ chương trình như thế nào không?

    Khi chúng ta thực hiện toàn bộ chương trình [bằng cách nhấn F5], Python sẽ duyệt qua tệp, tạo đối tượng hàm hello [ghi đè đối tượng trước đó], đến chương trình chính và gọi hàm

    Khi chúng ta gọi hello[] từ dấu nhắc Python, chúng ta chỉ gọi các đối tượng hàm hello đã được định nghĩa trong bảng điều khiển [I]Python khi chúng ta thực hiện toàn bộ lời chào. py trước đó [bằng cách nhấn F5]

    Điều này sẽ trở nên rõ ràng hơn theo thời gian và cả khi chúng ta làm việc với các ví dụ lớn hơn một chút. Bạn có thể muốn quay lại hướng dẫn này ở giai đoạn sau một chút

1. 3   Kiểm tra đối tượng

  • Python cung cấp một hàm hiển thị tất cả các đối tượng đã biết [trong không gian tên hiện tại]. Nó được gọi là dir[]. khi bạn gõ dir[] tại dấu nhắc, bạn sẽ nhận được danh sách các đối tượng đã biết. Bây giờ bỏ qua mọi thứ bắt đầu bằng dấu gạch dưới. Bạn có thấy xin chào trong danh sách không?

    [Nếu bạn nhận được một danh sách dài các đối tượng được xác định, thì Spyder có thể đã thực hiện một số thao tác nhập thuận tiện cho bạn rồi. Để giải quyết vấn đề này, bạn có thể muốn

    • Đặt lại không gian tên [bạn có thể muốn làm theo hướng dẫn tại Nhập khẩu không thuận tiện trong Bảng điều khiển IPython để thay đổi cài đặt mặc định]
    • thực thi tập tin xin chào. py lại bằng cách nhấn F5

    Sau đó chạy dir[] như đề xuất ở trên. ]

  • Khi một đối tượng hiển thị trong không gian tên hiện tại [như xin chào trong ví dụ này], chúng ta có thể sử dụng chức năng trợ giúp như sau để tìm hiểu về nó. Nhập help[hello] tại dấu nhắc Python, bạn sẽ thấy đầu ra như thế này

    In [ ]: help[hello]
    Help on function hello in module __main__:
    
    hello[]
        Print "Hello World" and return None
    

    Python lấy thông tin từ đâu? . Chuỗi tài liệu là chuỗi đầu tiên ngay bên dưới dòng def hello[]. .

  • Môi trường Spyder cũng cung cấp một bảng điều khiển ở góc trên cùng bên phải [theo mặc định] là Trình kiểm tra đối tượng. Nếu bạn gõ xin chào vào dòng trống trong cửa sổ Trình kiểm tra đối tượng, nó cũng sẽ cung cấp chuỗi trợ giúp

1. 4   Đang cập nhật đối tượng

1. 4. 1   Chiến lược đơn giản. thực hiện lại toàn bộ chương trình

  • Trong cửa sổ Editor, thay đổi hàm hello để nó in Good Bye World thay vì Hello World

  • Nhấn F5 [để thực hiện toàn bộ chương trình] và kiểm tra xem đầu ra của chương trình hiện đã

    Good Bye World
    

Điều gì đã xảy ra khi bạn nhấn F5 là thế này. Python đã trải qua lời chào. py và tạo một đối tượng hàm mới hello [ghi đè đối tượng hàm hello mà chúng ta đã định nghĩa trước đó] rồi thực thi hàm

1. 4. 2   Xem chi tiết

Chúng ta cần bắt đầu với một trạng thái được xác định rõ ràng. Để làm điều này, vui lòng thay đổi hàm hello[] trở lại để nó in ra Hello World [i. e. sử dụng lời chào ban đầu. py], sau đó nhấn F5 để chạy toàn bộ chương trình và kiểm tra xem chương trình có in Hello World không

  • Gọi hàm hello[] từ dấu nhắc lệnh [như được mô tả trong Gọi các đối tượng hàm hiện có từ dòng lệnh]. Bạn sẽ thấy Hello World được in

  • Bây giờ hãy thay đổi định nghĩa hàm để nó in ra Laters World, và lưu tệp [nhưng KHÔNG thực thi chương trình, tôi. e. ĐỪNG nhấn F5]

  • Gọi lại hàm hello[] từ dấu nhắc lệnh. Bạn sẽ thấy rằng văn bản được in là Hello World, như ở đây

    In [ ]: hello[]
    Hello World
    

    Tại sao cái này rất? . Cho đến nay, chúng tôi đã thay đổi tệp hello. py [và thay thế Hello World trong đó bằng Laters World] trong trình chỉnh sửa nhưng điều này không ảnh hưởng đến các đối tượng đã được tạo trước đó trong trình thông dịch Python

Đây là hai khả năng để sử dụng phiên bản sửa đổi của hàm hello

  • lựa chọn 1. thực hiện toàn bộ tập tin xin chào. py lại bằng cách nhấn F5. điều này tạo ra một đối tượng chức năng mới xin chào [và ghi đè lên đối tượng cũ]. Bạn sẽ thấy rằng nếu bạn nhấn F5, sau đó gọi hello[] tại dấu nhắc, văn bản mới Laters World sẽ được in

  • Tùy chọn 2. chọn vùng bạn đã thay đổi [trong trường hợp này là toàn bộ hàm hello, bắt đầu từ dòng def hello[]. xuống để trả về Không, sau đó chọn Chạy -> Lựa chọn chạy.

    Thao tác này sẽ cập nhật đối tượng hello trong trình thông dịch mà không phải thực hiện toàn bộ lệnh hello. tập tin py

    In [ ]: def hello[]:
       ...:     """Print "Hello World" and return None"""
       ...:     print["Laters world"]
       ...:
    

    Nếu bây giờ chúng ta gõ hello[], chúng ta sẽ thấy phản hồi cập nhật

    ________số 8

Khả năng thực thi các phần của mã để cập nhật một số đối tượng trong trình thông dịch [trong ví dụ trên, chúng tôi đã cập nhật đối tượng hàm xin chào], rất hữu ích khi phát triển và gỡ lỗi các mã phức tạp hơn và khi tạo đối tượng/dữ liệu trong trình thông dịch . Ví dụ: bằng cách chỉ sửa đổi các chức năng [hoặc lớp/đối tượng, v.v.] mà chúng tôi đang thực sự phát triển hoặc gỡ lỗi, chúng tôi có thể tiếp tục sử dụng lại cấu trúc dữ liệu, v.v. được xác định trong phiên thông dịch

2   Các bước đầu tiên được đề xuất cho người mới bắt đầu sử dụng Python

Để dạy lập trình Python và lập mô hình tính toán, chúng tôi khuyên bạn nên [i] sử dụng IPython thay vì trình thông dịch Python thông thường và [ii] không sử dụng bất kỳ cách nhập tiện lợi nào. Điều này chấp nhận IPython là tiêu chuẩn thực tế và giúp hiểu rõ hơn về các không gian tên

Spyder cố gắng trợ giúp những người dùng cao cấp hơn bằng cách nhập một số mô-đun vào không gian tên chính. Nhập khoa học vào dấu nhắc lệnh để xem chi tiết. Hành vi này có thể thay đổi trong các bản phát hành Spyder trong tương lai

Mặc dù những cách nhập tiện lợi này rất hữu ích cho những lập trình viên có kinh nghiệm hơn, nhưng chúng có thể gây nhầm lẫn [nếu không muốn nói là gây hiểu lầm] cho người mới bắt đầu. Do đó, chúng tôi khuyên bạn nên hoàn tác các lần nhập này để đáp ứng các yêu cầu của chúng tôi ở trên và để [i] chuyển sang bảng điều khiển IPython và [ii] đưa ra lệnh %reset để đặt lại không gian tên. Cả hai bước được giải thích chi tiết hơn trong phần tiếp theo

2. 1   Chuyển sang bảng điều khiển IPython

Trong cửa sổ bảng điều khiển [góc dưới bên phải theo mặc định], theo mặc định, bạn sẽ thấy lời nhắc có ba dấu lớn hơn, i. e. >>>. Điều này cho thấy rằng chúng tôi đang sử dụng bảng điều khiển - về cơ bản là phiên thông dịch viên Python bình thường [với một số chức năng bổ sung từ Spyder]

Thay vào đó, chúng tôi muốn sử dụng trình bao Python tương tác, IPython ngắn từ dự án ipython. Để thực hiện việc này, chọn Phiên dịch -> Mở Bảng điều khiển IPython

Bạn sẽ thấy trong cửa sổ giao diện điều khiển xuất hiện trình bao mới và dấu nhắc IPython Trong [1]. nên được hiển thị

Xem thêm. Thay đổi cài đặt Spyder để luôn bắt đầu với trình bao IPython

2. 2   Đặt lại không gian tên

Có thể xóa không gian tên trong IPython bằng lệnh %reset. Nhập %reset và nhấn return, sau đó xác nhận bằng y

In [1]: %reset

Once deleted, variables cannot be recovered. Proceed [y/[n]]? y

In [2]:

Đó là tất cả

Chúng tôi thảo luận thêm về vấn đề này, nhưng bạn có thể bỏ qua phần sau nếu bạn không quan tâm. Sau khi ban hành lệnh %reset, chúng ta sẽ chỉ có một vài đối tượng được xác định trong không gian tên của phiên đó. Chúng ta có thể liệt kê tất cả chúng bằng lệnh dir[]

>>> runfile['/Users/fangohr/Desktop/hello.py', wdir=r'/Users/fangohr/Desktop']
Hello World
>>>
0

Cuối cùng, nếu bạn muốn bỏ qua bước xác nhận lệnh đặt lại, bạn có thể sử dụng %reset -f thay vì %reset.

2. 3   Phấn đấu Tuân thủ PEP8

Ngoài Cú pháp được thực thi bởi Python, còn có các quy ước bổ sung liên quan đến bố cục của mã nguồn, đặc biệt là Hướng dẫn về Phong cách cho mã nguồn Python được gọi là "PEP8"

Bạn nên thay đổi cài đặt Spyders thành Cảnh báo nếu nguyên tắc mã hóa PEP8 bị vi phạm

3   Tùy chọn đã chọn

3. 1   Các tùy chọn nằm ở đâu?

Rất nhiều hành vi của Spyder có thể được cấu hình thông qua Preferences của nó. Vị trí này trong menu phụ thuộc vào hệ điều hành của bạn

  • Trên Windows và Linux, đi tới Công cụ -> Tùy chọn
  • Trên Mac OS, đi tới Python -> Tùy chọn

3. 2   Thay đổi cài đặt Spyder để luôn bắt đầu với trình bao IPython

Chuyển đến Tùy chọn -> Bảng điều khiển IPython -> . Sau đó nhấp vào nút OK.

Lần khởi động Spyder tiếp theo, nó sẽ tự động hiển thị bảng điều khiển IPython

3. 3   Cảnh báo nếu vi phạm nguyên tắc viết mã PEP8

Chuyển đến Tùy chọn -> Trình chỉnh sửa ->

3. 4   Không nhập tiện lợi trong Bảng điều khiển Python

Để tránh bất kỳ 'ma thuật' nào khi bảng điều khiển được khởi động, hãy truy cập

Tùy chọn -> Bảng điều khiển -> Cài đặt nâng cao < . -> PYTHONSTARTUP replacement and select Default PYTHONSTARTUP script [and restart Spyder].

[Ma thuật này, trong số những thứ khác, chạy from __future__ lệnh phân chia nhập khẩu. ]

Cài đặt mặc định có thể thay đổi cho điều này trong phiên bản chính tiếp theo

3. 5   Không nhập tiện lợi trong Bảng điều khiển IPython

Để tránh nhập tất cả các đối tượng từ pylab và numpy vào không gian tên hiện tại trong Bảng điều khiển IPython, hãy chuyển đến Tùy chọn -> Bảng điều khiển IPython . -> Graphics and deselect the tickbox next to Automatically load Pylab and NumPy modules and also deselect Activate support.

Cài đặt mặc định có thể thay đổi cho điều này trong phiên bản chính tiếp theo

3. 6   Trăn tượng trưng tự động

Thông qua Tùy chọn -> Bảng điều khiển IPython -> Nâng cao . Điều này sẽ cho phép đầu ra sympy được hiển thị độc đáo [kiểu latex] và cũng tự động nhập một số đối tượng sympy khi bảng điều khiển IPython khởi động và báo cáo những gì nó đã thực hiện. -> Use symbolic math we can activate IPython's symbolic python mode. This will allow nicely rendered sympy output [latex style] and also imports some sympy objects automatically when the IPython console starts, and reports what it has done.

>>> runfile['/Users/fangohr/Desktop/hello.py', wdir=r'/Users/fangohr/Desktop']
Hello World
>>>
1

Sau đó chúng ta có thể sử dụng các biến x, y, ví dụ như thế này

4   Lối tắt cho các chức năng hữu ích

  • F5 thực thi bộ đệm hiện tại

  • F9 thực thi đoạn mã hiện được đánh dấu. điều này rất hữu ích để cập nhật các định nghĩa về hàm [giả sử] trong phiên thông dịch mà không phải chạy lại toàn bộ tệp

  • CTRL + -> Chạy ô]. Một ô được xác định là mã giữa hai dòng bắt đầu bằng thẻ đã thỏa thuận #%%.

  • SHIFT + -> Chạy ô và chuyển .

    Các ô rất hữu ích để thực thi một đoạn mã/tệp lớn trong các đơn vị nhỏ hơn. [Nó hơi giống một ô trong sổ ghi chép IPython, trong đó các đoạn mã có thể được chạy độc lập. ]

  • ALT + ALT+ DOWN> hoạt động tương ứng di chuyển [các] dòng xuống.

  • Nhấp chuột phải vào một hàm/phương thức trong nguồn, mở một cửa sổ soạn thảo mới hiển thị định nghĩa của hàm đó

  • SHIFT+CTRL+ALT+M phóng to cửa sổ hiện tại [hoặc thay đổi kích thước trở lại bình thường nếu được nhấn trong cửa sổ phóng to]

  • SHIFT+CTRL+F kích hoạt tìm kiếm trên tất cả các tệp

  • Trên Mac OSX. CMD + + sẽ tăng kích thước phông chữ trong trình chỉnh sửa, CMD + - giảm. Cũng hoạt động trong Bảng điều khiển IPython

    Kích thước phông chữ cho trình khám phá đối tượng, bảng điều khiển Python, v.v. có thể được đặt riêng qua Tùy chọn -> Trình khám phá đối tượng, v.v.

    Tôi không thể tìm thấy cách thay đổi kích thước phông chữ trong trình khám phá biến

  • CTRL+SPACE tự động điền các lệnh, tên hàm, tên biến, phương thức;

  • CMD+s [trên Mac OS X] và CTRL+s [nếu không] trong cửa sổ trình chỉnh sửa sẽ lưu tệp hiện đang được chỉnh sửa. Điều này cũng buộc các hình tam giác cảnh báo khác nhau ở cột bên trái của trình chỉnh sửa phải được cập nhật [nếu không, chúng sẽ cập nhật cứ sau 2 đến 3 giây theo mặc định]

  • CMD+s [trên Mac OS X] và CTRL+s [nếu không] trong cửa sổ bảng điều khiển IPython lưu phiên IPython hiện tại dưới dạng tệp HTML, bao gồm mọi số liệu có thể được hiển thị nội tuyến. Điều này hữu ích như một cách nhanh chóng để ghi lại những gì đã được thực hiện trong một phiên

    [Không thể tải lại bản ghi đã lưu này vào phiên - nếu bạn cần chức năng như thế này, hãy tìm IPython Notebook. ]

  • CMD+i [trên Mac OS X] và CTRL+i [nếu không] khi được nhấn trong khi con trỏ đang ở trên một đối tượng, sẽ mở tài liệu cho đối tượng đó trong trình kiểm tra đối tượng

5   Chạy cài đặt

Đây là các cài đặt xác định cách mã trong trình chỉnh sửa được thực thi nếu chúng ta chọn Chạy -> Chạy hoặc nhấn F5.

Theo mặc định, hộp cài đặt sẽ xuất hiện khi chúng tôi cố gắng thực thi một tệp lần đầu tiên. Nếu chúng tôi muốn thay đổi cài đặt bất kỳ lúc nào, chúng tôi có thể tìm thấy chúng trong Run -> Configure hoặc bằng cách nhấn F6.

Có ba lựa chọn để trình thông dịch sử dụng, trong đó tôi sẽ thảo luận về hai lựa chọn đầu tiên. Giả sử chúng ta có một chương trình xin chào. py trong trình chỉnh sửa đọc

>>> runfile['/Users/fangohr/Desktop/hello.py', wdir=r'/Users/fangohr/Desktop']
Hello World
>>>
2

5. 1   Thực thi bằng trình thông dịch Python hoặc IPython hiện tại

Đây là đề xuất mặc định và nói chung cũng là một lựa chọn tốt

5. 1. 1   Tính bền vững của đối tượng I [sau khi thực thi mã]

Chọn Thực thi trong cài đặt trình thông dịch Python hoặc IPython hiện tại trong phần Chạy -> Định cấu hình có nghĩa là

  1. Khi thực hiện lời chào. py hoàn tất, chúng ta có thể tương tác với trình thông dịch chạy chương trình và chúng ta có thể sử dụng trình thông dịch IPython thuận tiện cho việc này [chứ không phải trình thông dịch Python mặc định]

    Đặc biệt,

  2. chúng ta có thể kiểm tra và tương tác với các đối tượng mà quá trình thực thi chương trình của chúng ta đã tạo ra, chẳng hạn như i và hello[]

Điều này thường rất hữu ích cho việc mã hóa, thử nghiệm và gỡ lỗi gia tăng. chúng ta có thể gọi hello[] trực tiếp từ lời nhắc của trình thông dịch và không cần thực hiện toàn bộ câu lệnh hello. py cho điều này [mặc dù nếu chúng ta thay đổi hàm hello[], chúng ta cần thực thi bộ đệm, hoặc ít nhất là định nghĩa hàm, để hiển thị phiên bản mới của hello[] tại trình thông dịch; bằng cách thực thi toàn bộ bộ đệm hoặc thông qua . ]-> Run Selection.]

5. 1. 2   Tính bền vững của đối tượng II [từ trước khi thực thi mã]

Tuy nhiên, thực thi mã trong trình chỉnh sửa trong trình thông dịch hiện tại cũng có nghĩa là

  1. mã thực thi có thể thấy các đối tượng [toàn cầu] khác đã được xác định trong phiên thông dịch

Sự bền bỉ này của các đối tượng dễ bị lãng quên và thường không cần thiết khi làm việc trên các chương trình nhỏ [mặc dù đôi khi nó có thể có giá trị lớn]. Các đối tượng này có thể đến từ quá trình thực thi mã trước đó, từ công việc tương tác trong trình thông dịch hoặc từ quá trình nhập thuận tiện, chẳng hạn như từ nhập pylab * [Spyder có thể tự động thực hiện một số thao tác nhập thuận tiện đó]

Khả năng hiển thị của các đối tượng trong không gian tên chung của trình thông dịch đối với mã chúng ta thực thi cũng có thể dẫn đến lỗi mã hóa nếu mã vô tình dựa vào các đối tượng này

Đây là một ví dụ. tưởng tượng rằng

  • chúng tôi chạy mã xin chào. py. Sau đó, biến i được trình thông dịch gọi là biến toàn cục
  • chúng tôi chỉnh sửa lời chào. py và vô tình xóa dòng i = 42
  • chúng tôi thực hiện bộ đệm chứa xin chào. py một lần nữa. Tại thời điểm này, lệnh gọi hello[i] sẽ không thất bại vì trình thông dịch có một đối tượng tên tôi đã xác định, mặc dù điều này không được xác định trong nguồn của hello. py

Tại thời điểm này, chúng ta có thể lưu xin chào. py và [sai lầm] nghĩ rằng nó sẽ thực thi đúng. Tuy nhiên, chạy nó trong phiên thông dịch python mới [hoặc qua python hello. py chẳng hạn] sẽ dẫn đến lỗi vì tôi không được xác định

Vấn đề phát sinh do mã sử dụng một đối tượng [ở đây là i] mà không tạo ra nó. Điều này cũng ảnh hưởng đến việc nhập các mô-đun. nếu chúng tôi đã nhập pylab tại dấu nhắc IPython, thì chương trình của chúng tôi sẽ thấy điều đó khi được thực thi trong phiên trình thông dịch IPython này

Để tìm hiểu cách chúng tôi có thể kiểm tra kỹ xem mã của chúng tôi có phụ thuộc vào các đối tượng hiện có như vậy hay không, hãy xem Cách kiểm tra kỹ xem mã của bạn có thực thi chính xác "của chính nó" không

5. 2   Thực thi trong trình thông dịch Python chuyên dụng mới

Chọn Thực thi trong trình thông dịch Python chuyên dụng mới trong phần Chạy -> Cấu hình sẽ bắt đầu một trình thông dịch Python mới mỗi khi chào. chương trình py được thực thi. Ưu điểm chính của chế độ này so với Thực thi trong trình thông dịch Python hoặc IPython hiện tại là chúng ta có thể chắc chắn rằng không có đối tượng toàn cầu nào được xác định trong trình thông dịch này bắt nguồn từ việc gỡ lỗi và thực thi lặp lại mã của chúng ta. mỗi khi chúng tôi chạy mã trong trình chỉnh sửa, trình thông dịch python mà mã chạy trong đó sẽ được khởi động lại.

Đây là một tùy chọn an toàn, nhưng kém linh hoạt hơn và không thể sử dụng trình thông dịch IPyton

5. 3   Cách kiểm tra kỹ xem mã của bạn có tự thực thi chính xác không

Giả sử bạn đã chọn mã của mình để Thực thi trong trình thông dịch Python hoặc IPython hiện tại, thì bạn có hai tùy chọn để kiểm tra xem mã của chúng tôi có tự hoạt động không [i. e. nó không phụ thuộc vào các biến không xác định, các mô-đun và lệnh không được nhập, v.v. ]

  1. Chuyển từ Thực thi trong trình thông dịch Python hoặc IPython hiện tại sang Thực thi trong trình thông dịch Python chuyên dụng mới và thực thi mã trong trình chỉnh sửa trong trình thông dịch Python chuyên dụng này

    Ngoài ra, nếu bạn muốn ở lại với trình thông dịch IPython hiện tại, bạn có thể

  2. Sử dụng lệnh %reset ma thuật của IPython sẽ xóa tất cả các đối tượng [chẳng hạn như i trong ví dụ trên] khỏi không gian tên hiện tại, sau đó thực thi mã trong trình chỉnh sửa

5. 4   Đề xuất

Đề xuất của tôi dành cho người mới bắt đầu là Thực thi trong trình thông dịch Python hoặc IPython hiện tại và chọn trình thông dịch IPython cho việc này [xem thêm Thay đổi cài đặt Spyder để luôn bắt đầu với trình bao IPython]

Khi bạn đã hoàn thành một đoạn mã, hãy kiểm tra kỹ xem nó có thực thi độc lập hay không bằng cách sử dụng một trong các tùy chọn được giải thích trong Cách kiểm tra kỹ xem mã của bạn có tự thực thi chính xác không

6   Các quan sát khác

6. 1   Nhiều cửa sổ

Khi nhiều tệp được mở trong trình chỉnh sửa, các tab tương ứng ở đầu khu vực cửa sổ được sắp xếp theo thứ tự bảng chữ cái của tên tệp từ trái sang phải

Ở bên trái của các tab, có biểu tượng hiển thị Duyệt qua các tab nếu con chuột di chuyển qua nó. Sẽ rất hữu ích khi chuyển trực tiếp đến một tệp cụ thể, nếu nhiều tệp đang mở

6. 2   Biến môi trường

Các biến môi trường có thể được hiển thị từ cửa sổ Bảng điều khiển [cửa sổ dưới cùng bên phải trong bố cục mặc định]. Nhấp vào biểu tượng Tùy chọn [chú giải công cụ là Tùy chọn], sau đó chọn Biến môi trường

6. 3   Đặt lại tất cả tùy chỉnh

Tất cả tùy chỉnh được lưu trên đĩa có thể được đặt lại bằng cách gọi spyder từ dòng lệnh bằng công tắc --reset , i. e. một lệnh như spyder --reset .

6. 4   Các đối tượng trong trình khám phá biến

Nhấp chuột phải vào các mảng trong trình khám phá biến sẽ cung cấp các tùy chọn để vẽ và phân tích thêm các mảng này

Nhấp đúp vào một đối tượng từ điển sẽ mở ra một cửa sổ mới hiển thị từ điển một cách độc đáo

Có lẽ có khả năng 'ẩn' khác đối với một số loại dữ liệu khác

7   Định dạng chuỗi tài liệu

Có một số quy ước được giả định liên quan đến các chuỗi tài liệu được viết bằng văn bản được cấu trúc lại. Nếu tuân theo những nguyên tắc đó, chúng tôi có thể có được các chuỗi tài liệu được định dạng đẹp mắt trong Spyder

Ví dụ: để hàm trung bình [] của chúng ta trông như thế này trong trình khám phá Đối tượng Spyder

Chúng ta cần định dạng chuỗi tài liệu như sau

>>> runfile['/Users/fangohr/Desktop/hello.py', wdir=r'/Users/fangohr/Desktop']
Hello World
>>>
3

Điều quan trọng ở đây là từ Tham số được sử dụng và được gạch chân. dòng một. số cho chúng ta biết rằng loại tham số a là số. Trong dòng tiếp theo, được thụt vào, chúng ta có thể viết giải thích mở rộng hơn về biến này đại diện cho điều gì, các loại được phép phải đáp ứng những điều kiện nào, v.v.

Tương tự cho tất cả các Tham số và cả giá trị được trả về

Thường thì nên bao gồm một ví dụ như được hiển thị

8   Gỡ lỗi trong Trình gỡ lỗi Ipython

8. 1   Việc thực thi mã từng bước một

Kích hoạt chế độ gỡ lỗi [Debug -> Debug] khởi động trình gỡ lỗi IPython [ipdb] trong bảng điều khiển IPython. Điều này được vận hành như bình thường, nhưng cửa sổ hiển thị của trình soạn thảo làm nổi bật dòng sắp được thực thi và trình khám phá biến hiển thị các biến trong ngữ cảnh hiện tại của điểm thực thi chương trình. [Nó chỉ hiển thị các biến 'số', tôi. e. không phải đối tượng chức năng, v.v. ]

Các lệnh chính trong trình gỡ lỗi IPython là các lần nhấn phím riêng lẻ

  • s để Bước vào câu lệnh hiện tại. Nếu đây là một cuộc gọi chức năng, hãy bước vào chức năng đó
  • n chuyển sang câu lệnh Tiếp theo. Nếu câu lệnh hiện tại là một hàm, đừng bước vào hàm đó mà hãy thực hiện nó hoàn toàn trước khi trả lại quyền kiểm soát cho lời nhắc của trình gỡ lỗi tương tác
  • r hoàn thành tất cả các câu lệnh trong chức năng hiện tại và Trả về từ chức năng đó trước khi trả lại quyền kiểm soát
  • p Print cho phép hiển thị giá trị của biến, ví dụ p x sẽ in ra giá trị của biến x

Lưu ý rằng tại ipdb, bạn cũng có thể thay đổi giá trị của biến. Ví dụ: để sửa đổi một biến x, bạn có thể nói ipdb > x = 42 và trình gỡ lỗi sẽ tiếp tục với x bị ràng buộc với 42. Bạn cũng có thể gọi các chức năng và làm nhiều việc khác

Để thoát khỏi chế độ gỡ lỗi, bạn có thể nhập thoát hoặc chọn từ menu Gỡ lỗi -> Kiểm soát gỡ lỗi -> Exit

8. 2   Gỡ lỗi khi đã xảy ra ngoại lệ

Trong bảng điều khiển IPython, chúng ta có thể gọi %debug ngay sau khi một ngoại lệ được đưa ra. điều này sẽ bắt đầu chế độ gỡ lỗi IPython và cho phép kiểm tra các biến cục bộ tại điểm xảy ra ngoại lệ như mô tả ở trên. Điều này hiệu quả hơn nhiều so với việc thêm các câu lệnh in vào mã và chạy lại mã

Nếu bạn sử dụng điều này, bạn cũng có thể muốn sử dụng các lệnh lên và xuống để điều hướng điểm kiểm tra lên và xuống ngăn xếp. [Lên ngăn xếp có nghĩa là các hàm đã gọi hàm hiện tại; xuống là hướng ngược lại. ]

9   Lập kế hoạch

Giả sử chúng ta sử dụng bảng điều khiển IPython với phiên bản >= 1. 0. 0, chúng tôi có thể quyết định xem các số liệu được tạo bằng matplotlib/pylab có hiển thị hay không

  1. nội tuyến, tôi. e. bên trong bảng điều khiển IPython hoặc liệu họ có nên
  2. xuất hiện bên trong một cửa sổ mới

Tùy chọn 1 thuận tiện để lưu bản ghi của phiên tương tác [phần Phím tắt cho các chức năng hữu ích liệt kê một phím tắt để lưu bảng điều khiển IPython vào tệp html]

Tùy chọn 2 cho phép phóng to hình một cách tương tác, thao tác một chút và lưu hình vào các định dạng tệp khác nhau thông qua menu

Lệnh để các số liệu xuất hiện nội tuyến trong bảng điều khiển IPython là %matplotlib inline

Lệnh để các số liệu xuất hiện trong cửa sổ riêng của chúng [về mặt kỹ thuật là cửa sổ QT] là %matplotlib qt

Tùy chọn Spyder có thể được sử dụng để tùy chỉnh hành vi mặc định [cụ thể là Tùy chọn -> Bảng điều khiển IPython -> Graphics -> Activate Support to switch into inline plotting].

10   Ghi chép lịch sử

Hướng dẫn này dựa trên các ghi chú của Hans Fangohr, được sử dụng tại Đại học Southampton để dạy Python về lập mô hình tính toán cho các kỹ sư chưa tốt nghiệp và nghiên cứu sinh sau đại học cho trung tâm đào tạo tiến sĩ Mô hình tính toán thế hệ tiếp theo

11   Phiên bản

11. 1   Phiên bản gián điệp

Các ghi chú trên đã được tạo vào tháng 9 năm 2013 với Spyder 2. 2. 14 trên Mac OS, được cài đặt qua Anaconda

Các bổ sung sau ngày 18 tháng 10 năm 2013 được thử nghiệm với Spyder 2. 2. 4 và IPython 1. 0. 0

11. 2   Thay đổi

22 Tháng chín 2013. Cập nhật vị trí của tùy chọn, thêm ghi chú trên trình gỡ lỗi và trình khám phá biến

23 Tháng chín 2013. Thêm phần vào cài đặt chạy

30 Tháng chín 2013. Đã thêm cách tránh nhập tự động và các phép thuật khác trong bảng điều khiển Python và IPython

18 Tháng mười 2013. Thêm lệnh %matplotlib và các phím tắt để thực thi một ô

21 Tháng mười 2013. Thêm %debug sau ngoại lệ, Thêm phần "bước đầu tiên", thêm số thứ tự của các phần

Python Spyder hoạt động như thế nào?

Spyder cho phép người dùng tạo một dự án có thể chứa nhiều thư mục con hoặc tập lệnh python . Để tạo tệp hoặc dự án, hãy chuyển đến menu tệp trong thanh menu ở đó bạn có thể tìm thấy tùy chọn tạo tệp mới hoặc dự án mới.

Spyder kết nối với Python như thế nào?

Nhấp vào Kết nối với nhân hiện có từ menu Bảng điều khiển hoặc menu “Gear” của khung Bảng điều khiển IPython . Duyệt hoặc nhập đường dẫn đến tệp kết nối từ bước trước. Nếu bạn đang kết nối với nhân cục bộ, hãy nhấp vào Ok và Spyder sẽ kết nối với nhân; .

Spyder có tốt cho Python không?

Spyder chỉ phù hợp nhất với Python và phân tích dữ liệu cũng như tạo báo cáo hoạt động. Vì vậy, nếu bạn muốn làm việc trên Python và những thứ đó thì tôi sẽ đề xuất điều này, nhưng nếu bạn làm việc trong môi trường hợp tác và thích các tính năng của git thì nó không phù hợp để sử dụng làm [một] IDE.

Tại sao Spyder được sử dụng trong Python?

Spyder có thể mở rộng bằng các plugin của bên thứ nhất và bên thứ ba, bao gồm hỗ trợ cho các công cụ tương tác để kiểm tra dữ liệu và nhúng các công cụ nội quan và đảm bảo chất lượng mã dành riêng cho Python, such as Pyflakes, Pylint and Rope.

Chủ Đề