2 cách để thực thi chương trình Python là gì?

Cho đến nay, chúng ta chủ yếu nói về Python như một ngôn ngữ lập trình. Nhưng nó cũng là một gói phần mềm được gọi là trình thông dịch. Trình thông dịch là một loại chương trình thực thi các chương trình khác. Khi bạn viết chương trình Python, trình thông dịch Python sẽ đọc chương trình của bạn và thực hiện các hướng dẫn trong đó. [] Trong phần này, chúng ta khám phá các cách báo cho trình thông dịch Python biết chương trình nào sẽ chạy

Khi gói Python được cài đặt trên máy của bạn, nó sẽ tạo ra một số thành phần. Tùy thuộc vào cách bạn sử dụng, trình thông dịch Python có thể ở dạng một chương trình thực thi hoặc một bộ thư viện được liên kết với một chương trình khác. Nói chung, có ít nhất năm cách để chạy chương trình thông qua trình thông dịch Python

  • tương tác

  • Dưới dạng tệp mô-đun Python

  • Dưới dạng tệp script kiểu Unix

  • Được nhúng trong một hệ thống khác

  • Phương thức khởi chạy dành riêng cho nền tảng

Hãy lần lượt xem xét từng chiến lược này

Dòng lệnh tương tác

Có lẽ cách đơn giản nhất để chạy các chương trình Python là nhập chúng vào dòng lệnh tương tác của Python. Giả sử trình thông dịch được cài đặt dưới dạng một chương trình thực thi trên hệ thống của bạn, gõ ____03 tại dấu nhắc của hệ điều hành mà không có bất kỳ đối số nào sẽ khởi động trình thông dịch tương tác. Ví dụ

% python
>>> print 'Hello world!'
Hello world!
>>> lumberjack = "okay"    
>>>                           # Ctrl-D to exit [Ctrl-Z on some platforms]

Ở đây,

import sys
print sys.argv                  # more on this later
3 được nhập tại dấu nhắc Unix [hoặc MS-DOS] để bắt đầu phiên Python tương tác. Python nhắc nhập liệu với
import sys
print sys.argv                  # more on this later
5 khi nó đang đợi bạn nhập một câu lệnh Python mới. Khi làm việc tương tác, kết quả của các câu lệnh được hiển thị sau dòng
import sys
print sys.argv                  # more on this later
5. Trên hầu hết các máy Unix, tổ hợp hai phím Ctrl-D [nhấn phím Ctrl, sau đó nhấn D trong khi giữ Ctrl] sẽ thoát khỏi dòng lệnh tương tác và đưa bạn trở lại dòng lệnh của hệ điều hành;

Bây giờ, chúng tôi không làm gì nhiều trong ví dụ trước. chúng tôi gõ Python

import sys
print sys.argv                  # more on this later
7 và các câu lệnh gán, chúng tôi sẽ nghiên cứu chi tiết sau. Nhưng lưu ý rằng mã chúng tôi đã nhập được thực thi ngay lập tức bởi trình thông dịch. Chẳng hạn, sau khi gõ một câu lệnh
import sys
print sys.argv                  # more on this later
7 tại dấu nhắc
import sys
print sys.argv                  # more on this later
5, đầu ra [một chuỗi Python] được lặp lại ngay lập tức. Trước tiên, không cần chạy mã thông qua trình biên dịch và trình liên kết, như bạn thường làm khi sử dụng một ngôn ngữ như C hoặc C++

Bởi vì mã được thực thi ngay lập tức, lời nhắc tương tác hóa ra là một nơi thuận tiện để thử nghiệm ngôn ngữ và chúng ta sẽ thường xuyên sử dụng nó trong phần này của cuốn sách để minh họa các ví dụ nhỏ. Trên thực tế, đây là nguyên tắc đầu tiên. nếu bạn từng nghi ngờ về cách thức hoạt động của một đoạn mã Python, hãy kích hoạt dòng lệnh tương tác và dùng thử. Đó là những gì nó ở đó cho

Dấu nhắc tương tác cũng thường được sử dụng làm nơi kiểm tra các thành phần của hệ thống lớn hơn. Như chúng ta sẽ thấy, dòng lệnh tương tác cho phép chúng ta nhập các thành phần một cách tương tác và kiểm tra giao diện của chúng một cách nhanh chóng. Một phần do tính chất tương tác này, Python hỗ trợ phong cách lập trình thử nghiệm và khám phá mà bạn sẽ thấy thuận tiện khi bắt đầu

Ghi chú

Một từ trên lời nhắc. chúng ta sẽ không gặp câu lệnh ghép [nhiều dòng] cho đến Chương 3, nhưng như một bản xem trước, bạn nên biết rằng khi nhập dòng hai trở lên của câu lệnh ghép một cách tương tác, lời nhắc sẽ thay đổi thành

% python spam.py -i eggs -o bacon
['spam.py', '-i', 'eggs', '-o', 'bacon']
0 thay vì
import sys
print sys.argv                  # more on this later
5. Tại dấu nhắc
% python spam.py -i eggs -o bacon
['spam.py', '-i', 'eggs', '-o', 'bacon']
0, một dòng trống [nhấn phím Enter] cho Python biết rằng bạn đã nhập xong câu lệnh. Điều này khác với các câu lệnh ghép được nhập vào tệp, trong đó các dòng trống được bỏ qua đơn giản. Bạn sẽ thấy tại sao điều này lại quan trọng trong Chương 3. Hai lời nhắc này cũng có thể được thay đổi [trong Phần II, chúng ta sẽ thấy rằng chúng là các thuộc tính trong mô-đun
% python spam.py -i eggs -o bacon
['spam.py', '-i', 'eggs', '-o', 'bacon']
3 tích hợp sẵn], nhưng chúng ta sẽ cho rằng chúng không có trong các ví dụ của chúng ta

Mặc dù lời nhắc tương tác rất tốt để thử nghiệm và kiểm tra, nhưng nó có một nhược điểm lớn. các chương trình bạn gõ ở đó sẽ biến mất ngay sau khi trình thông dịch Python thực thi chúng. Mã bạn nhập theo cách tương tác không bao giờ được lưu trữ trong tệp, vì vậy bạn không thể chạy lại mã mà không nhập lại từ đầu. Cắt và dán và gọi lại lệnh có thể giúp một số ở đây, nhưng không nhiều, đặc biệt là khi bạn bắt đầu viết các chương trình lớn hơn

Để lưu chương trình vĩnh viễn, bạn cần tệp mô-đun Python. Các tệp mô-đun chỉ đơn giản là các tệp văn bản chứa các câu lệnh Python. Bạn có thể yêu cầu trình thông dịch Python thực thi một tệp như vậy bằng cách liệt kê tên của nó trong lệnh

import sys
print sys.argv                  # more on this later
3. Ví dụ: giả sử chúng ta khởi động trình soạn thảo văn bản yêu thích của mình và nhập hai câu lệnh Python vào một tệp văn bản có tên là spam. py

import sys
print sys.argv                  # more on this later

Xin nhắc lại, hiện tại chúng tôi đang bỏ qua cú pháp của các câu lệnh trong tệp này, vì vậy đừng lo lắng về các chi tiết; . Khi chúng tôi đã lưu tệp văn bản của mình, chúng tôi có thể yêu cầu Python chạy nó bằng cách liệt kê tên tệp làm đối số trên lệnh

import sys
print sys.argv                  # more on this later
3 trong trình bao hệ điều hành

________số 8

Lưu ý rằng chúng tôi đã gọi tệp mô-đun là thư rác. py; . hậu tố py. Chúng tôi cũng liệt kê bốn đối số dòng lệnh sẽ được chương trình Python sử dụng [các mục sau

import sys
print sys.argv                  # more on this later
3
% python spam.py -i eggs -o bacon
['spam.py', '-i', 'eggs', '-o', 'bacon']
7]; . Nhân tiện, nếu bạn đang làm việc trên nền tảng Windows hoặc MS-DOS, thì ví dụ này cũng hoạt động như vậy, nhưng dấu nhắc hệ thống thường khác

import sys
print sys.argv                  # more on this later
0

Chạy tập lệnh kiểu Unix

Cho đến nay, chúng ta đã biết cách nhập mã tương tác và chạy các tệp mã được tạo bằng trình soạn thảo văn bản [mô-đun]. Nếu bạn định sử dụng Python trên hệ thống tương tự Unix, Linux hoặc Unix, bạn cũng có thể biến các tệp mã Python thành các chương trình có thể thực thi được, giống như cách bạn làm đối với các chương trình được mã hóa bằng ngôn ngữ hệ vỏ như csh hoặc ksh. Các tệp như vậy thường được gọi là tập lệnh;

Dòng đầu tiên của họ là đặc biệt

Các tập lệnh thường bắt đầu bằng dòng đầu tiên bắt đầu bằng ký tự

import sys
print sys.argv                  # more on this later
00, theo sau là đường dẫn đến trình thông dịch Python trên máy của bạn

Họ thường có đặc quyền thực thi

Các tệp tập lệnh thường được đánh dấu là có thể thực thi được, để cho hệ điều hành biết rằng chúng có thể được chạy dưới dạng các chương trình cấp cao nhất. Trên các hệ thống Unix, một lệnh như

import sys
print sys.argv                  # more on this later
01 thường thực hiện thủ thuật

Hãy xem một ví dụ. Giả sử chúng ta sử dụng lại trình soạn thảo văn bản yêu thích của mình để tạo một tệp mã Python có tên là brian

import sys
print sys.argv                  # more on this later
3

Chúng tôi đặt dòng đặc biệt ở đầu tệp để báo cho hệ thống biết nơi trình thông dịch Python sống. Về mặt kỹ thuật, dòng đầu tiên là một nhận xét Python. Tất cả các chú thích trong chương trình Python đều bắt đầu bằng

import sys
print sys.argv                  # more on this later
02 và kéo dài đến cuối dòng; . Nhưng khi một chú thích chẳng hạn như dòng đầu tiên trong tệp này xuất hiện, thì đó là điều đặc biệt, vì hệ điều hành sử dụng chú thích đó để tìm trình thông dịch để chạy mã chương trình trong phần còn lại của tệp

Chúng tôi cũng gọi tệp này đơn giản là brian, không có. py chúng tôi đã sử dụng cho tệp mô-đun trước đó. Thêm một. py vào tên sẽ không gây hại gì [và có thể giúp chúng tôi nhớ rằng đây là tệp chương trình Python]; . Nếu chúng tôi cung cấp các đặc quyền thực thi cho tệp của mình bằng lệnh trình bao

import sys
print sys.argv                  # more on this later
03
import sys
print sys.argv                  # more on this later
04, thì chúng tôi có thể chạy nó từ trình bao hệ điều hành như thể đó là một chương trình nhị phân

import sys
print sys.argv                  # more on this later
7

Lưu ý cho người dùng Windows và MS-DOS. phương pháp được mô tả ở đây là một thủ thuật Unix và có thể không hoạt động trên nền tảng của bạn. không phải lo lắng. chỉ cần sử dụng kỹ thuật tệp mô-đun từ phần trước. Liệt kê tên của tệp trên một dòng lệnh

import sys
print sys.argv                  # more on this later
3 rõ ràng

import sys
print sys.argv                  # more on this later
9

Trong trường hợp này, bạn không cần chú thích đặc biệt

import sys
print sys.argv                  # more on this later
00 ở trên cùng [mặc dù Python sẽ bỏ qua nó nếu có] và tệp không cần được cấp đặc quyền thực thi. Trên thực tế, nếu bạn muốn chạy các tệp di động giữa Unix và MS-Windows, cuộc sống của bạn có thể sẽ đơn giản hơn nếu bạn luôn sử dụng phương pháp tiếp cận tệp mô-đun, không phải tập lệnh kiểu Unix, để khởi chạy chương trình.

Ghi chú

Trên một số hệ thống, bạn có thể tránh mã hóa cứng đường dẫn đến trình thông dịch Python bằng cách viết nhận xét dòng đầu tiên đặc biệt như thế này.

import sys
print sys.argv                  # more on this later
07
import sys
print sys.argv                  # more on this later
3. Khi được mã hóa theo cách này, chương trình
import sys
print sys.argv                  # more on this later
09 định vị trình thông dịch
import sys
print sys.argv                  # more on this later
3 theo cài đặt đường dẫn tìm kiếm hệ thống của bạn [i. e. , trong hầu hết các hệ vỏ Unix, bằng cách xem trong tất cả các thư mục được liệt kê trong biến môi trường
import sys
print sys.argv                  # more on this later
31]. Lược đồ dựa trên
import sys
print sys.argv                  # more on this later
09 này có thể dễ mang theo hơn, vì bạn không cần mã hóa cứng đường dẫn cài đặt Python trong dòng đầu tiên của tất cả các tập lệnh của mình;

Mã nhúng và đối tượng

Chúng ta đã thấy cách chạy mã tương tác và cách khởi chạy tệp mô-đun và tập lệnh kiểu Unix. Điều đó bao gồm hầu hết các trường hợp chúng ta sẽ thấy trong cuốn sách này. Nhưng trong một số lĩnh vực chuyên biệt, mã Python cũng có thể được chạy bởi một hệ thống kèm theo. Trong những trường hợp như vậy, chúng tôi nói rằng các chương trình Python được nhúng trong [i. e. , chạy bởi] một chương trình khác. Bản thân mã Python có thể được nhập vào tệp văn bản, được lưu trữ trong cơ sở dữ liệu, được tìm nạp từ trang HTML, v.v. Nhưng từ góc độ vận hành, một hệ thống khác—không phải bạn—có thể yêu cầu Python chạy mã mà bạn đã tạo

Ví dụ: có thể tạo và chạy các chuỗi mã Python từ chương trình C bằng cách gọi các hàm trong API thời gian chạy Python [một bộ dịch vụ được xuất bởi các thư viện được tạo khi Python được biên dịch trên máy của bạn]

import sys
print sys.argv                  # more on this later
9

Trong đoạn mã này, một chương trình được mã hóa bằng ngôn ngữ C [

import sys
print sys.argv                  # more on this later
35] nhúng trình thông dịch Python bằng cách liên kết trong các thư viện của nó và chuyển cho nó một chuỗi câu lệnh gán Python để chạy. Các chương trình C cũng có thể có quyền truy cập vào các đối tượng Python và xử lý hoặc thực thi chúng bằng các công cụ API Python khác

Cuốn sách này không nói về tích hợp Python/C, vì vậy chúng tôi sẽ không đi vào chi tiết về những gì đang thực sự xảy ra ở đây. [] Nhưng bạn nên lưu ý rằng, tùy thuộc vào cách tổ chức của bạn dự định sử dụng Python, bạn có thể hoặc không phải là người thực sự bắt đầu các chương trình Python mà bạn tạo. Bất chấp điều đó, bạn vẫn có thể sử dụng các kỹ thuật khởi chạy tương tác và dựa trên tệp được mô tả ở đây, để kiểm tra mã độc lập với các hệ thống kèm theo mà cuối cùng có thể sử dụng mã đó

Phương thức khởi động dành riêng cho nền tảng

Cuối cùng, tùy thuộc vào loại máy tính bạn đang sử dụng, có thể có nhiều cách cụ thể hơn để khởi động chương trình Python ngoài các kỹ thuật chung mà chúng tôi đã nêu ở trên. Chẳng hạn, trên một số cổng Windows của Python, bạn có thể chạy mã từ giao diện dòng lệnh giống Unix hoặc bằng cách nhấp đúp vào biểu tượng chương trình Python. Và trên các cổng Macintosh, bạn có thể kéo các biểu tượng chương trình Python vào biểu tượng của trình thông dịch để thực thi các tệp chương trình. Chúng tôi sẽ có nhiều điều để nói về các chi tiết dành riêng cho nền tảng như thế này trong phần phụ lục của cuốn sách này

Những gì bạn gõ và nơi bạn gõ nó

Với tất cả các tùy chọn và lệnh này, người mới bắt đầu dễ bị nhầm lẫn về lệnh nào được nhập tại dấu nhắc nào. Đây là một bản tóm tắt nhanh chóng

Bắt đầu Python tương tác

Trình thông dịch Python thường được bắt đầu từ dòng lệnh của hệ thống

import sys
print sys.argv                  # more on this later
1

Nhập mã tương tác

Các chương trình có thể được gõ tại dòng lệnh trình thông dịch tương tác của Python

import sys
print sys.argv                  # more on this later
2

Nhập mã vào tệp để sử dụng sau

Các chương trình cũng có thể được nhập vào tệp văn bản, sử dụng trình soạn thảo văn bản yêu thích của bạn

import sys
print sys.argv                  # more on this later
0

Bắt đầu tập tin kịch bản

Các tệp script kiểu Unix được bắt đầu từ shell hệ thống

import sys
print sys.argv                  # more on this later
1

Bắt đầu tập tin chương trình [mô-đun]

Các tệp mô-đun được chạy từ vỏ hệ thống

import sys
print sys.argv                  # more on this later
2

Chạy mã nhúng

Khi Python được nhúng, mã Python có thể được nhập theo các cách tùy ý

Ghi chú

Khi nhập các chương trình Python [tương tác hoặc vào một tệp văn bản], hãy đảm bảo bắt đầu tất cả các câu lệnh chưa được lồng của bạn trong cột 1. Nếu không, Python sẽ in thông báo “SyntaxError”. Cho đến giữa Chương 3, tất cả các câu lệnh của chúng ta sẽ không được lồng vào nhau, vì vậy điều này bao gồm mọi thứ vào lúc này. Chúng tôi sẽ giải thích lý do sau—nó liên quan đến các quy tắc thụt lề của Python—nhưng đây có vẻ là một sự nhầm lẫn lặp đi lặp lại trong các lớp Python cơ bản

Có bao nhiêu cách thực hiện trong Python?

hai cách chính bạn có thể hướng dẫn trình thông dịch Python thực thi mã. Bạn có thể thực thi tệp Python dưới dạng tập lệnh bằng dòng lệnh. Bạn có thể nhập mã Python từ tệp này sang tệp khác hoặc vào trình thông dịch tương tác.

Thực thi chương trình Python là gì?

Mã Python được dịch thành mã trung gian, mã này phải được thực thi bởi một máy ảo, được gọi là PVM, Máy ảo Python . Đây là một cách tiếp cận tương tự như cách tiếp cận của Java. Thậm chí còn có cách dịch các chương trình Python thành mã byte Java cho Máy ảo Java [JVM].

Chủ Đề