Rate this post

Trong hướng dẫn Trình thông dịch Python này, bạn sẽ thấy trình thông dịch Python là gì, cách gọi nó và cách hoạt động của nó.

Các bài viết liên quan:

Hơn nữa, chúng ta sẽ thảo luận về môi trường và các tính năng của Trình thông dịch lập trình Python Langauge .

Trình thông dịch Python là gì?

Trình thông dịch Python là một máy ảo, có nghĩa là nó là phần mềm giả lập một máy tính vật lý. Máy ảo cụ thể này là một stack machine: nó thao tác với một số stack để thực hiện các hoạt động của nó (tương phản với register machine, máy ghi và đọc từ các vị trí bộ nhớ cụ thể).

Trình thông dịch Python & Môi trường

Mã hóa mặc định cho tệp nguồn Python là UTF-8. Đây là bảng mã ký tự có độ rộng biến đổi Tiêu chuẩn Unicode; nó có thể mã hóa 1.112.064 điểm mã hợp lệ bằng Unicode sử dụng tối đa bốn byte 8 bit.

Sử dụng mã hóa này, chúng tôi có thể sử dụng các ký tự của hầu hết các ngôn ngữ – chúng tôi có thể sử dụng chúng trong các ký tự chuỗi, nhận xét và số nhận dạng .

Vì thư viện tiêu chuẩn chỉ sử dụng các ký tự ASCII, bạn phải khai báo việc sử dụng bảng mã này cho trình soạn thảo của mình.

Điều này là để đảm bảo rằng tất cả các ký tự như vậy hiển thị mà không có vấn đề gì. Phông chữ phải hỗ trợ tất cả các ký tự trong tệp.

Chúng tôi thêm nhận xét này làm dòng đầu tiên của tệp mà chúng tôi muốn sử dụng nó trong-

# -*- coding: encoding -*-

Trong điều này, mã hóa là một codec hợp lệ mà Python hỗ trợ.

Tương tự, khi bạn muốn sử dụng mã hóa Windows-1252, bạn có thể sử dụng mã này làm dòng mã đầu tiên:

# -*- coding: cp1252 -*-

Tuy nhiên, khi bạn muốn bắt đầu mã bằng một dòng liên hợp UNIX, bạn có thể đặt chú thích để mã hóa thứ hai-

#!/usr/bin/env python3
# -*- coding: cp1252 -*-

Làm thế nào để gọi Trình thông dịch Python?

Trên máy của mình, bạn có thể tìm thấy thông dịch viên của mình tại một địa chỉ như:

C: \ Python36

Hoặc nó có thể nằm trên vị trí bạn đã chọn tại thời điểm cài đặt. Thêm đường dẫn bằng lệnh này:

set path=%path%;C:\python36

Làm thế nào để gọi Trình thông dịch Python?

Khởi động Trình thông dịch Python

Trên Windows, khi bạn muốn chạy trình thông dịch Python trong shell, bạn có thể nhập như sau:

$ python

Để thoát ra khỏi trình thông dịch trong việc tháo gỡ vỏ Bytecode, bạn có thể nhập:

>>> quit()

Ngoài ra, bạn có thể sử dụng một ký tự cuối tệp tại dấu nhắc.

Trình thông dịch Python thoát với trạng thái không thoát. Bạn có thể sử dụng nó theo kiểu REPL ( Đọc-Đánh giá-In-Vòng lặp ).

Nhưng nếu muốn, bạn có thể lưu mã Python của mình dưới dạng tập lệnh và thực thi nó bằng trình thông dịch:

$python demo.py

Để vào chế độ tương tác sau khi chạy tập lệnh, bạn có thể chuyển –i trước tập lệnh.

Lệnh python -c command [arg]… thực thi các câu lệnh trong lệnh và python -m module [arg]… thực thi tệp nguồn cho mô-đun .

Các tính năng của Trình thông dịch Python

Trình thông dịch Python cung cấp một số tính năng khá thú vị:

  • Chỉnh sửa tương tác
  • Lịch sử thay thế
  • Hoàn thành mã trên các hệ thống có hỗ trợ cho dòng đọc

Trong lời nhắc Python đầu tiên, hãy thử nhấn các phím sau:

Ctrl + P

Điều này cho bạn biết liệu trình thông dịch của bạn có hỗ trợ chỉnh sửa dòng lệnh hay không. Một tiếng bíp cho biết rằng nó có hỗ trợ chỉnh sửa dòng lệnh.

Nếu không, nó sẽ thực hiện không hoạt động hoặc echo ^ p để cho biết nó không khả dụng.

Truyền đối số bằng Python

Khi bạn chuyển một tên tập lệnh và các đối số bổ sung vào trình bao khi gọi trình thông dịch Python, nó sẽ biến chúng thành một danh sách các chuỗi.

Sau đó, nó gán chúng cho biến argv trong mô-đun sys.

Lệnh sau sẽ cung cấp cho chúng ta một danh sách về điều này-

import sys

Không có tập lệnh hoặc đối số, sys.argv [0] biểu thị một chuỗi trống.

Tên tập lệnh của ‘-‘ có nghĩa là nó đặt sys.argv [0] thành ‘-‘ và với ‘ -c ‘, nó được đặt thành ‘ -c ‘. Giá trị ‘ -m ‘ đặt sys.argv [0] thành tên đầy đủ của mô-đun.

Lệnh / mô-đun xử lý các tùy chọn sau ‘ -c ‘ hoặc ‘ -m ‘.

Chế độ tương tác trong Python

Trình thông dịch Python ở chế độ tương tác khi nó đọc lệnh từ một tty.

Lời nhắc chính như sau:

>>>

Khi nó hiển thị lời nhắc này, điều đó có nghĩa là nó sẽ nhắc nhà phát triển lệnh tiếp theo. Đây là REPL.

Trước khi in lời nhắc đầu tiên, trình thông dịch Python in một thông báo chào mừng cũng cho biết số phiên bản của nó và thông báo bản quyền.

Đây là lời nhắc phụ:

Dấu nhắc này biểu thị các dòng tiếp tục.

$ python3.7
Python 3.7 (default, Jul 16 2018, 04:38:07)
[GCC 4.8.2] on Windows
Type "help", "copyright", "credits" or "license" for more information.
>>>

Bạn sẽ tìm thấy các dòng tiếp tục khi làm việc với cấu trúc nhiều dòng:

>>> it_rains =True
>>> if it_rains:
    print("The produce will be good")

Bạn cũng có thể sử dụng trình thông dịch Python làm máy tính:

>>> 2*7
14
>>> 4/2
2.0

Trình thông dịch Python hoạt động như thế nào?

Chà, trong nội bộ, bốn điều xảy ra trong REPL:

i. Lexing- Lexer chia dòng mã thành các mã thông báo.

ii. Phân tích cú pháp- Trình phân tích cú pháp sử dụng các mã thông báo này để tạo ra một cấu trúc, ở đây, Cây cú pháp trừu tượng, để mô tả mối quan hệ giữa các mã thông báo này.

iii. Biên dịch- Trình biên dịch biến AST này thành (các) đối tượng mã.

iv. Thông dịch- Trình thông dịch thực thi từng đối tượng mã

Trình thông dịch Python hoạt động như thế nào?

Đối tượng hàm & đối tượng mã trong Python

Khi chúng ta nói về các đối tượng hàm, chúng ta muốn nói rằng trong Python, các hàm là các đối tượng hạng nhất (các hàm thực sự là các đối tượng).

>>> def bar(a):
  x=3
  return x+a
>>> bar

Vì vậy, chúng tôi kết luận rằng một đối tượng mã là một thuộc tính của một đối tượng chức năng. Hàm dir () sẽ cho chúng ta biết thêm về hàm:

>>> bar.__code__
<code object bar at 0x107eeccb2, file "<stdin>", line 1>

Đầu ra

>>> dir(bar.__code__)

Điều này cung cấp cho chúng ta các thuộc tính của đối tượng mã. Giá trị của một số thuộc tính khác:

>>> bar.__code__.co_varnames
>>> bar.__code__.co_consts
>>> bar.__code__.co_argcount

Bytecode trong Python

Lệnh sau cung cấp cho chúng ta mã bytecode:

>>> bar.__code__.co_code

Đây là một chuỗi các byte, mỗi byte trong số đó trình thông dịch lặp lại và sau đó thực hiện.

Disassembling một Bytecode

Chúng tôi sẽ sử dụng phương thức dis () từ mô-đun dis để hiểu những gì đang xảy ra – đây không phải là một phần của những gì trình thông dịch làm.

>>>import dis
>>> dis.dis(bar.__code__)

Đầu ra

Trong đó, bộ số đầu tiên là số dòng trong mã thực. Cái thứ hai mô tả các hiệu ứng của bytecode.

Sau đó là tập hợp các tên cho các byte- để con người có thể đọc được.

Cột tiếp theo mô tả các đối số và cột cuối cùng liệt kê các hằng số và tên trong cột thứ tư.

>>> bar.__code__.co_consts[1]
>>> bar.__code__.co_varnames[1]

Vì vậy, đây là tất cả về Hướng dẫn thông dịch viên Python. Hy vọng bạn thích giải thích của chúng tôi.

Sự kết luận

Do đó, chúng ta có thể nói rằng trình biên dịch cho Python tạo ra mã bytecode cho trình thông dịch. Trình thông dịch Python sử dụng điều này với máy ảo.

Bytecode giống nhau không phải lúc nào cũng làm những việc giống nhau. Đây là một điều khác làm cho Python năng động.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now