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 Show 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
Hãy lần lượt xem xét từng chiến lược này Dòng lệnh tương tácCó 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ụ % Ở đây, import sys print sys.argv # more on this later3 đượ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 later5 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 later5. 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 later7 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 later7 tại dấu nhắc import sys print sys.argv # more on this later5, đầ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 % 0 thay vì import sys print sys.argv # more on this later5. Tại dấu nhắc % 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 % 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 taMặ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 later3. 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 later3 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 later3 % 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ácimport sys print sys.argv # more on this later0 Chạy tập lệnh kiểu UnixCho đế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 later00, theo sau là đường dẫn đến trình thông dịch Python trên máy của bạnHọ 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 later01 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 later3 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 later02 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 later03 import sys print sys.argv # more on this later04, 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 later7 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 later3 rõ ràng import sys print sys.argv # more on this later9 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 later00 ở 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 later07 import sys print sys.argv # more on this later3. Khi được mã hóa theo cách này, chương trình import sys print sys.argv # more on this later09 định vị trình thông dịch import sys print sys.argv # more on this later3 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 later31). Lược đồ dựa trên import sys print sys.argv # more on this later09 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ượngChú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 later9 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 later35) 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ảngCuố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 later1 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 later2 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 later0 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 later1 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 later2 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?Có 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). |