Python là ngôn ngữ thông dịch hay biên dịch? quá trình thông dịch của python như thế nào?

Trong bài này chúng ta sẽ cùng tìm hiểu về cách sử dụng trình thông dịch Python.

Như đã nói ở phần trước, có 2 cách để chạy các đoạn code Python. Một là dùng trực tiếp trong trình thông dịch, hai là chạy trên file script riêng.

C:\Users\PhoCode\python hello_world.py Hello World!

Ở trên là cách sử dụng bằng cách viết file script.

Trình thông dịch Python

Nhưng trong phần này chúng ta sẽ không viết code trong file riêng mà chúng ta sẽ dùng trình thông dịch Python. Trình thông dịch này rất hữu ích cho việc khám phá thế giới của Python. Mỗi khi chúng ta muốn test một hàm, một module nào đó… cách nhanh nhất là mở trình thông dịch Python lên và test chứ ngồi tạo một file script rồi viết thì mất thời gian quá. Để chạy trình thông dịch Python, bạn mở terminal lên [trong Windows là Command Prompt – cmd] rồi gõ lệnh python.exe.

C:\Users\PhoCode>python.exe Python 3.5.1 [v3.5.1:37a07cee5969, Dec 6 2015, 01:38:48] [MSC v.1900 32 bit [Intel]] on win32 Type "copyright", "credits" or "license[]" for more information. >>>

Python sẽ hiện ra câu giới thiệu với tên, phiên bản… ở đây mình dùng là phiên bản 3.5.1. Sau đó là dấu nhắc lệnh >>> đặc trưng của Python. Nếu muốn thoát Python, bạn gõ lệnh quit[] hoặc exit[].

Bây giờ chúng ta tìm hiểu một số lệnh cơ bản.

>>> credits Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands for supporting Python development. See www.python.org for more information.

Như trong dòng giới thiệu của Python, bạn có thể gõ credits, copyright, hoặc license[] để xem một số thông tin. Như trên mình gõ credits, Python hiện ra thông tin của những tổ chức đã góp phần phát triển nên Python.

>>> copyright Copyright [c] 2001-2011 Python Software Foundation. All Rights Reserved. Copyright [c] 2000 BeOpen.com. All Rights Reserved. Copyright [c] 1995-2001 Corporation for National Research Initiatives. All Rights Reserved. Copyright [c] 1991-1995 Stichting Mathematisch Centrum, Amsterdam. All Rights Reserved.

Lệnh copyright hiện ra thông tin bản quyền của ngôn ngữ Python.

Lệnh license[] hiện ra quy định sử dụng của Python. Khi dùng lệnh này, Python chỉ hiện ra từng đoạn ngắn chứ không hiện hết, bạn bấm Enter để Python hiện ra dần dần hoặc bấm q để thoát.

Lệnh help[]

Lệnh help cung cấp các thông tin trợ giúp cho bạn trong việc sử dụng Python.

>>> help Type help[] for interactive help, or help[object] for help about object. >>>

Có hai cách để dùng trợ giúp. Bạn có thể gõ help[] và Python sẽ chuyển sang chế độ trợ giúp, hoặc gõ help[] để nhận ngay trợ giúp về tên của một thành phần nào đó trong Python.

Ví dụ, gõ help[True] thì Python sẽ hiện ra thông tin về các đối tượng bool.

Help on bool object: class bool[int] | bool[x] -> bool | | Returns True when the argument x is true, False otherwise. | The builtins True and False are the only two instances of the class bool. | The class bool is a subclass of the class int, and cannot be subclassed. | | Method resolution order: | bool | int | object | | Methods defined here: | | __and__[...] | x.__and__[y] x&yhelp[] ...

Nếu phần thông tin trợ giúp quá dài, bạn bấm Enter để python tiếp tục hiện ra. Nếu muốn thoát thì bấm phím q.

Bây giờ chúng ta thử gõ help[] để chuyển sang chế độ trợ giúp.

>>> help[] Welcome to Python 2.7! This is the online help utility. If this is your first time using Python, you should definitely check out the tutorial on the Internet at //docs.python.org/tutorial/. Enter the name of any module, keyword, or topic to get help on writing Python programs and using Python modules. To quit this help utility and return to the interpreter, just type "quit". To get a list of available modules, keywords, or topics, type "modules", "keywords", or "topics". Each module also comes with a one-line summary of what it does; to list the modules whose summaries contain a given word such as "spam", type "modules spam". help>

Đoạn giới thiệu về chế độ trợ giúp của Python hiện ra, nếu muốn thoát thì bạn gõ quit.

Tại đây bạn có thể gõ vào tên của bất kỳ thành phần nào có trong Python và Python sẽ in ra đầy đủ thông tin của thành phần đó. Ngoài ra nếu bạn chưa biết hết tên về các thành phần có trong Python, bạn có thể gõ modules và Python sẽ hiện ra tên các module có trong Python, gõ keywords để Python hiện ra danh sách các từ khóa, gõ topics để Python hiện ra danh sách các chủ đề.

help> keywords Here is a list of the Python keywords. Enter any keyword to get more help. and elif if print as else import raise assert except in return break exec is try class finally lambda while continue for not with def from or yield del global pass

Gõ keywords để hiện ra danh sách các từ khóa trong Python. Sau đó bạn có thể gõ một từ khóa nào đó và Python sẽ cung cấp thông tin của từ khóa đó. Modules và topics cũng tương tự.

help> if The "if" statement ****************** The "if" statement is used for conditional execution: if_stmt ::= "if" expression ":" suite [ "elif" expression ":" suite ]* ["else" ":" suite] It selects exactly one of the suites by evaluating the expressions one by one until one is found to be true [see section *Boolean operations* for the definition of true and false]; then that suite is executed [and no other part of the "if" statement is executed or evaluated]. If all expressions are false, the suite of the "else" clause, if present, is executed. Related help topics: TRUTHVALUE help>

Ở trên mình gõ từ khóa if và Python hiện ra thông tin của từ khóa này.

Viết code trong Python

Đây mới là sự tiện lợi bậc nhất mà Python đem lại.

>>> 2 + 4 6 >>> 5 * 56 280 >>> 5 - 45 -40 >>>

Bạn có thể dùng Python làm một chiếc máy tính. Khi bạn gõ một biểu thức nào đó, Python sẽ tính toán ngay và trả lại kết quả cho bạn.

>>> a = 3 >>> b = 4 >>> a**b 81 >>> a == b False >>> a < b True >>>

Ngoài ra bạn có thể định nghĩa biến và thực hiện tính toán trên chúng. Lưu ý ** là phép lấy lũy thừa nhé.

>>> class Car: ... pass ... >>> def function[]: ... pass ... >>> for i in range[5]: ... print [i] ... 0 1 2 3 4 >>>

Bạn có thể định nghĩa lớp, hàm, các lệnh điều khiển… Lưu ý là bạn phải nhớ bấm Tab để thụt dòng vì Python dùng dấu thụt dòng này để nhận biết các câu lệnh và khối lệnh. Khi muốn thoát khỏi một khối lệnh thì bạn bấm Enter hai lần.

>>> import os >>> os.getcwd[] C:\\Python

Ở trên chúng ta báo với Python là chúng ta sẽ sử dụng module os bằng câu lệnh import, sau đó chúng ta dùng phương thức getcwd[] để lấy đường dẫn thư mục hiện tại.

Cuối cùng, nếu bạn muốn thoát Python, gõ lệnh quit[] hoặc exit[], cái nào cũng được.

Triết lý Python – The Zen of Python

Đây chắc là một bài thơ hay cái gì đó mình cũng không rõ ^^. Để hiện ra đoạn “triết lý” này thì bạn gõ import this.

>>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!

Xin chào các bạn. Hôm nay mình sẽ giới thiệu với các bạn về việc Sử dụng trình thông dịch trong Python

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

Trình thông dịch Python thường được cài đặt tại địa chỉ /usr/local/bin/python3.6 trên các hệ máy Unix/Linux; bạn cần đặt đường dẫn /usr/local/bin vào biến đường dẫn của Unix shell [biến $PATH] để có thể khởi động bằng lệnh:

python3.6

Vì việc lựa chọn thử mục chứa trình thông dịch có thể thực hiện trong quá trình cài đặt, các đường dẫn khác có thể được sử dụng; hãy hỏi quản trị viên hoặc người hướng dẫn để biết chi tiết [v.d., một đường dẫn thay thế hay được dùng là /usr/local/python ]

Trên các máy Windows, Python thường được cài đặt tại C:\Python36, mặc dù vậy bạn cũng có thể thay đổi đường dẫn này trong quá trình cài đặt. Để thêm thư mục này vào đường dẫn, bạn có thể nhập lệnh sau vào hộp lệnh DOS:

set path=%path%;C:\python36

Gõ ký tự kết thúc file [Control-D trên Unix, Control-Z trên Windows] để thoát khỏi trình thông dịch. Nếu không được, bạn có thể thoát bằng câu lệnh: quit[].

Các tính năng line-editing của trình thông dịch bao gồm chỉnh sửa tương tác [interactive editing], lịch sử thay thế và hoàn thành mã nguồn trên các hệ thống hỗ trợ readline. Có lẽ cách nhanh nhất để kiểm tra xem việc chỉnh sửa có được hỗ trợ hay không là nhấn tổ hợp Control-P vào dấu nhắc đầu tiên mà bạn nhận được. Nếu nó kêu beeps, bạn có thể chỉnh sửa dòng lệnh; xem Appendix Interactive Input Editing and History Substitution để đọc giới thiệu về các phím. Nếu không có gì xuất hiện, hoặc nếu ^P được in ra, dòng lệnh chỉnh sửa không có hiệu lực; bạn chỉ có khả năng sử dụng phím backspace để xóa các ký tự ở dòng hiện tại.

Trình thông dịch hoạt động có phần giống với Unix shell: khi được gọi với đầu vào vào chuẩn kết nối với một thiết bị đầu cuối [tty device], trình thông dịch sẽ tương tác để đọc và thực thi các lệnh ; khi được gọi với một đối số là tên tệp hay một tệp đầu vào chuẩn, trình thông dịch đọc và thực thi một kịch bản từ các file ấy.

Cách thứ hai để bắt đầu với trình thông dịch là sử dụng lệnh python -c command [arg] ..., để thực thi các lệnh trong command, tương tự với tuỳ chọn -c của shell. Do các câu lệnh Python thường chứa nhiều khoảng trống hoặc các ký tự đặc biệt, bạn nên đóng trích dẫn toàn bộ các câu lệnh với dấu nháy đơn.

Một số mô-đun Python cũng hữu ích như các mã kịch bản. Các mô-đun này có thể được gọi bằng lệnh python -m module [arg] .... Lệnh này thực thi mã nguồn của mô-đun tương tự như việc viết đầy đủ tên mô-đun trên dòng lệnh.

Khi một tệp mã kịch bản được sử dụng, đôi khi việc chạy và truy cập chế độ tương tác sẽ rất hữu ích. Để vào chế độ tương tác, bạn dùng tuỳ chọn -i đặt trước script.

Tất cả các truỳ chọn cho dòng lệnh trình thông dịch được mô tả tại Command line and environment.

Truyền đối số

Khi được trình thông dịch biết đến, tên script và các đối số bổ sung được chuyển thành một danh sách các chuỗi và được gán cho biến argv trong module sys. Bạn có thể truy cập danh sách này bằng cách import modules sys này import sys. Độ dài tối thiểu của một list; khi không có script và các đối số được truyền, sys.argv[0]là một chuỗi trống. Khi tên của script là '-' [], sys.argv[0] sẽ trở thành '-'. Khi sử dụng command -c, sys.argv[0] được đặt là '-c'. Khi module -m được sử dụng, sys.argv[0] được đặt thành tên vị trí đầy đủ của modules. Các thiết đặt được tìm thấy sau lệnh -c hoặc module -m không được trình thông dịch Python xử lý nhưng còn lại trongsys.argv thì được lệnh hoặc modules xử lý.

Chế độ tương tác

Khi các câu lệnh được đọc từ một tty, trình thông dịch sẽ chuyển sang chế độ tương tác interactive mode. Trong chế độ này, các dấu nhắc cho câu lệnh tiếp theo là primary prompt, thường là 3 dấu lớn hơn [>>>]; các dòng tiếp theo bắt đầu bằng dấu secondary prompt, mặc định là 3 chấm thế này [...]. Trước khi xuất hiện dấu nhắc đầu tiên, trình thông dịch in ra một dòng thông báo chào mừng bắt đầu là số hiệu phiên bản và chứng chỉ bản quyền :

$ python3.6 Python 3.6 [default, Sep 16 2015, 09:25:04] [GCC 4.8.2] on linux Type "help", "copyright", "credits" or "license" for more information. >>>

Các dòng cần được viết liên tục khi bạn muốn thực hiện một cấu trúc gồm nhiều dòng. Ví dụ về cầu lệnh rẽ nhánh if:

>>> the_world_is_flat = True >>> if the_world_is_flat: ... print["Be careful not to fall off!"] ... Be careful not to fall off!

Để xem nhiều hơn về chế độ này, xem Interactive Mode.

Trình thông dịch và môi trường

Mã hóa Source Code

Mặc định, các tệp nguồn Python được định dạng mã hóa UTF-8. Trong mã hóa này, các ký tự của hầu hết ngôn ngữ trên thế giới có thể được sử dụng đồng thời trong chuỗi ký tự, định danh và comments — mặc dù thư viện chuẩn chỉ sử dụng các ký tự ASCII cho các định danh, một quy ước mà bất kỳ portable code nào cũng phải tuân thủ. Để hiển thị đúng tất cả các ký tự, trình soạn thảo của bạn phải nhận ra được các file đó là UTF-8, và nó phải sử dụng phông chữ hỗ trợ tất cả các ký tự trong file.

Để khai báo một mã hóa khác với kiểu mặc định, một comment đặc biệt phải được thêm vào dòng đầu tiên của file. Cú pháp:

# -*- coding: encoding -*-

Trong đó encoding là một trong các codecs được Python hỗ trợ.

Ví dụ, để khai báo mã hóa Windows-1252, dòng đầu tiên trong mã nguồn sẽ là:

# -*- coding: cp1252 -*-

Một ngoại lệ là khi mã nguồn bắt đầu bằng dòng chứa ký tự #![UNIX “shebang” line]. Trong trường hợp này, dòng khai báo được đặt ở dòng thứ 2. Ví dụ:

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

Chú thích

Trên Unix, mặc định trình thông dịch Python 3.x không được cài đặt với tệp thực thi có tên là python, làm vậy để nó không xung đột với Python 2.x đã được cài đặt.

Dưới đây mình đã bước đầu giới thiệu Cách xử dụng Trình Thông Dịch trong Python. Nếu có bất kì thắc mắc gì hãy để lại comment ở phía dưới nhé.

Thao Khảo

//docs.python.org/3/tutorial/interpreter.html

Video liên quan

Chủ Đề