2. Sử dụng trình thông dịch Python¶
2.1. Gọi trình thông dịch¶
Trình thông dịch Python thường được cài đặt dưới dạng /usr/local/bin/python3.14 trên những máy có sẵn Python; đưa /usr/local/bin vào đường dẫn tìm kiếm của Unix shell để có thể khởi động nó bằng lệnh:
python3.14
trong shell. [1] Vì thư mục chứa trình thông dịch là một tuỳ chọn lúc cài đặt nên nó có thể nằm ở nơi khác; hãy hỏi chuyên gia Python tại chỗ hoặc quản trị viên hệ thống của bạn. (Ví dụ: /usr/local/python là một vị trí thay thế phổ biến.)
Trên máy Windows đã cài Python từ Microsoft Store, lệnh python3.14 sẽ khả dụng. Nếu đã cài py.exe launcher, có thể dùng lệnh py. Xem Trình quản lý cài đặt Python để biết các cách khác để khởi chạy Python.
Nhập ký tự cuối tập tin (Control-D trên Unix, Control-Z trên Windows) tại dấu nhắc chính sẽ khiến trình thông dịch thoát với mã trạng thái 0. Nếu cách đó không được, có thể thoát trình thông dịch bằng lệnh sau: quit().
Tính năng chỉnh sửa dòng của trình thông dịch gồm chỉnh sửa tương tác, thay thế theo lịch sử và gợi ý hoàn thành mã trên hầu hết các hệ thống. Cách nhanh nhất để kiểm tra xem dòng lệnh có hỗ trợ chỉnh sửa hay không là gõ một từ tại dấu nhắc Python rồi nhấn phím Mũi tên trái (hoặc Control-b). Nếu con trỏ dịch chuyển, dòng lệnh đang hỗ trợ chỉnh sửa; xem Phụ lục Chỉnh sửa đầu vào tương tác và thay thế lịch sử để làm quen với các phím. Nếu không có gì xảy ra, hoặc xuất hiện chuỗi kiểu ^[[D hay ^B, dòng lệnh không hỗ trợ chỉnh sửa; khi đó chỉ có thể dùng phím xoá lùi để xoá ký tự khỏi dòng hiện tại.
Trình thông dịch hoạt động phần nào giống Unix shell: khi được gọi với stdin nối vào một thiết bị tty, nó đọc và thực thi lệnh theo kiểu tương tác; khi được gọi kèm tên tập tin làm đối số hoặc với một tập tin làm stdin, nó đọc và thực thi script từ tập tin đó.
Cách thứ hai để khởi động trình thông dịch là python -c command [arg] ..., thực thi câu lệnh trong command, tương tự tuỳ chọn -c của shell. Vì câu lệnh Python thường chứa khoảng trắng hoặc các ký tự khác có ý nghĩa đặc biệt với shell, nên thường nên bọc toàn bộ command trong dấu nháy.
Một số module Python cũng hữu ích khi chạy như script. Có thể gọi chúng bằng python -m module [arg] ..., lệnh này thực thi tập tin mã nguồn của module như thể bạn đã gõ đầy đủ tên của nó trên dòng lệnh.
Khi dùng một tập tin script, đôi khi sẽ rất tiện nếu có thể chạy script xong rồi vào chế độ tương tác. Có thể làm việc này bằng cách truyền -i trước script.
Tất cả các tuỳ chọn dòng lệnh được mô tả trong Dòng lệnh và môi trường.
2.1.1. Truyền đối số¶
Khi trình thông dịch đã biết tên script, tên script và các đối số đi kèm phía sau sẽ được chuyển thành một list chuỗi và gán cho biến argv trong module sys. Có thể truy cập list này bằng cách thực thi import sys. Độ dài của list ít nhất là một; khi không có script và không có đối số, sys.argv[0] là chuỗi rỗng. Khi tên script được đưa vào là '-' (nghĩa là stdin), sys.argv[0] được đặt thành '-'. Khi dùng -c command, sys.argv[0] được đặt thành '-c'. Khi dùng -m module, sys.argv[0] được đặt thành tên đầy đủ của module tìm được. Các tuỳ chọn xuất hiện sau -c command hoặc -m module không được quá trình xử lý tuỳ chọn của trình thông dịch Python tiêu thụ, mà được giữ lại trong sys.argv để lệnh hoặc module tự xử lý.
2.1.2. Chế độ tương tác¶
Khi lệnh được đọc từ một tty, trình thông dịch được xem là đang ở chế độ tương tác. Ở chế độ này, nó nhắc nhập lệnh tiếp theo bằng dấu nhắc chính, thường là ba dấu lớn hơn (>>>); với các dòng nối tiếp, nó dùng dấu nhắc phụ, mặc định là ba dấu chấm (...). Trình thông dịch in thông điệp chào mừng cho biết số phiên bản và thông báo bản quyền trước khi in dấu nhắc đầu tiên:
$ python3.14
Python 3.14 (default, April 4 2024, 09:25:04)
[GCC 10.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Cần có dòng nối tiếp khi nhập một cấu trúc nhiều dòng. Ví dụ, xem câu lệnh if sau:
>>> the_world_is_flat = True
>>> if the_world_is_flat:
... print("Be careful not to fall off!")
...
Be careful not to fall off!
Để biết thêm về chế độ tương tác, xem Chế độ tương tác.
2.2. Trình thông dịch và môi trường của nó¶
2.2.1. Mã hoá mã nguồn¶
Mặc định, tập tin mã nguồn Python được xem là mã hoá UTF-8. Với cách mã hoá này, ký tự của hầu hết các ngôn ngữ trên thế giới có thể được dùng đồng thời trong chuỗi literal, định danh và chú thích --- dù thư viện chuẩn chỉ dùng ký tự ASCII cho định danh, một quy ước mà mọi đoạn mã muốn chạy đa nền tảng đều nên tuân theo. Để hiển thị đúng tất cả các ký tự này, trình soạn thảo phải nhận biết tập tin là UTF-8 và phải dùng một phông chữ hỗ trợ mọi ký tự có trong tập tin.
Để khai báo một cách mã hoá khác với mặc định, cần thêm một dòng chú thích đặc biệt làm dòng đầu tiên của tập tin. Cú pháp như sau:
# -*- coding: encoding -*-
trong đó encoding là một trong các codecs hợp lệ được Python hỗ trợ.
Ví dụ, để khai báo rằng sẽ dùng mã hoá Windows-1252, dòng đầu tiên của tập tin mã nguồn phải là:
# -*- coding: cp1252 -*-
Một ngoại lệ đối với quy tắc dòng đầu tiên là khi mã nguồn bắt đầu bằng một dòng "shebang" UNIX. Khi đó, khai báo mã hoá phải được đặt ở dòng thứ hai của tập tin. Ví dụ:
#!/usr/bin/env python3
# -*- coding: cp1252 -*-
Chú thích cuối trang