Chào mừng bạn đến với Vimentor!

Published by

Vimentor

Chúng ta đã cùng nhau khám phá lộ trình học Python cho kỹ sư backend và kỹ sư hệ thống trước đây. Nhưng lộ trình này đã thu hút được sự quan tâm lớn từ các bạn đang mới bắt đầu học Python và tìm hiểu về backend systems. Vì vậy, tôi đã quyết định viết lại từ đầu cả những phần cơ bản để đáp ứng nhu cầu của mọi người.

Trong quá trình phát triển phần mềm, khá nhiều lỗi thường xuất phát từ những kiến thức cơ bản nhất. Bài viết này không chỉ dành cho những người mới bắt đầu, mà còn là nơi mà các kỹ sư có kinh nghiệm có thể tìm lại kiến thức cần thiết.

Nội dung

Trong bài viết này, chúng ta sẽ tìm hiểu về các khái niệm sau:

1. Cách chạy một chương trình Python qua dòng lệnh

Trước tiên, chúng ta sẽ xem xét đoạn code sau:

# Kieu du lieu co ban trong python
# 3 loai lon
# 1. Kieu du lieu so hoc
# a) Interger
# b) Float
# c) Complex
# 2. Kieu chuoi
# 3. Kieu boolean
# Cac kieu du lieu tap hop
# 1. List
# 2. Tuple
# 3. Set
# 4. Dictionary

# Voi Python, khong can khai bao kieu du lieu khi khai bao bien
a = 1
b = 2.1
c = 10 + 5j
d = 'Python Backend Learning Path Facebook Group'
e = True
f = [1, 2, 4, 6]
g = ('1', 1, 1.0)
h = {1, 'set'}
i = {"key1": 1, "key2": "python dict"}

# De kiem tra kieu du lieu trong python, su dung ham built-in type()
# De hien thi du lieu ra console, su dung ham print
print(type(a))
print(type(b))
print(type(c))
print(type(d))
print(type(e))
print(type(f))
print(type(g))
print(type(h))
print(type(i))

Để chạy chương trình này, hãy tạo một file có tên là myfirstprogram.py.

Hãy kiểm tra xem máy đã cài đặt Python 3 chưa bằng cách sử dụng lệnh sau:

python3 --version

Để chạy một chương trình Python, chúng ta có hai cách:

Cách 1: Sử dụng lệnh python3 <đường dẫn tới file Python muốn chạy>

Kết quả khi chạy chương trình với lệnh “python3 myfirstprogram.py”:

<class 'int'>
<class 'float'>
<class 'complex'>
<class 'str'>
<class 'bool'>
<class 'list'>
<class 'tuple'>
<class 'set'>
<class 'dict'>

Cách 2: Biến file Python thành một script có thể thực thi bằng cách thêm #!/usr/bin/env python3 vào đầu chương trình và cấp quyền thực thi cho script. Sau đó, chúng ta có thể chạy script bằng lệnh ./<đường dẫn tới script>

Kết quả khi chạy script với lệnh ./myfirstprogram.py:

<class 'int'>
<class 'float'>
<class 'complex'>
<class 'str'>
<class 'bool'>
<class 'list'>
<class 'tuple'>
<class 'set'>
<class 'dict'>

Kết quả của chương trình khi chạy với hai cách khác nhau là hoàn toàn giống nhau.

2. Hoạt động của trình thông dịch Python khi chạy chương trình

Hoạt động của trình biên dịch và trình thông dịch thực tế là rất phức tạp. Để nghiên cứu sâu về nó, chúng ta cần dành rất nhiều thời gian, thậm chí nhiều năm.

Với trình thông dịch Python cũng vậy. Tuy nhiên, những người lập trình Python không cần phải đi sâu vào các vấn đề kỹ thuật của trình thông dịch.

Tôi sẽ chỉ ra các bước chính mà trình biên dịch thực hiện sau khi nhấn Enter với lệnh “python3 myfirstprogram.py”.

Bước 1: Parser (Trình phân tích cú pháp)

Trong bước này, mã nguồn của chúng ta được phân tích và so sánh với các quy tắc về cú pháp. Nếu mã nguồn có lỗi cú pháp, lỗi sẽ được báo cáo ở bước này.

Ví dụ về lỗi cú pháp:

Đúng:

print('hello vimentor')

Sai:

prin('hello vimentor)

Bước 2: Semantic analysis (Phân tích ngữ cảnh)

Trong bước này, mã nguồn của chúng ta sẽ được phân tích để xem nó có hợp lệ hay không. Bước trước đó kiểm tra lỗi cú pháp, nhưng bước này kiểm tra mã nguồn ngay cả khi không có lỗi cú pháp. Ví dụ, khi gọi một hàm và truyền vào hàm đó 3 tham số, trong khi hàm chỉ nhận một tham số.

Bước 3: Biên dịch

Trong bước này, mã nguồn Python (file .py) sẽ được biên dịch thành mã byte. Mã byte này thường được lưu trữ trong các file có đuôi .pyc và nó được tạo mới sau mỗi lần cập nhật mã nguồn. Để phân phối mã nguồn cho bên thứ ba, chúng ta có thể cung cấp cả file .py và .pyc.

Mã byte (file .pyc) được tải vào máy ảo Python (Python Virtual Machine – PVM) khi chạy chương trình. PVM là một chương trình con của hệ thống Python mà chúng ta đã cài đặt, nó đọc các chỉ thị trong mã byte và thực thi chúng.

Ngoài ra, còn có các bước tối ưu và lưu cache để cải thiện hiệu suất biên dịch, những bước này được thực hiện bởi trình biên dịch Python.

Mỗi lần chạy chương trình, trình thông dịch phải chuyển đổi mã nguồn thành mã máy và tải các thư viện runtime (runtime library). Quá trình này làm cho chương trình Python chạy chậm hơn so với các chương trình được viết bằng các ngôn ngữ biên dịch khác (C/C++/Java…). Tuy nhiên, những người phát triển Python đã hiểu rõ điểm yếu này của ngôn ngữ thông dịch, nên họ đã đưa ra cách biên dịch mã nguồn Python thành file .pyc trong lần chạy đầu tiên. Điều này giúp cải thiện hiệu suất thực thi mã nguồn từ lần chạy thứ hai trở đi.

Kết luận

Trong bài viết này, tôi đã giới thiệu sơ qua về các kiểu dữ liệu và hoạt động của trình thông dịch Python.

Ở cơ bản, Python có hai nhóm dữ liệu:

  • Nhóm kiểu dữ liệu đơn:

    1. Kiểu dữ liệu số học:
    • Kiểu dữ liệu số nguyên (int)
    • Kiểu dữ liệu số thực (float)
    • Kiểu dữ liệu số phức (complex)
    1. Kiểu chuỗi (str)
    2. Kiểu boolean (bool)
  • Nhóm kiểu dữ liệu tập hợp:

    1. Kiểu danh sách (list)
    2. Kiểu tuple (tuple)
    3. Kiểu tập hợp (set)
    4. Kiểu từ điển (dict)

Bài viết đã khá dài, nên tôi không thể giới thiệu chi tiết về các kiểu dữ liệu, cách hoạt động và cách sử dụng chúng trong bài viết này. Tuy nhiên, tôi sẽ viết tiếp chi tiết này trong bài viết tiếp theo.

Tài liệu tham khảo:

  1. Compile and linking python
  2. How does the Python Runtime actually work?
  3. [Introduction to Python – Chen lin/Guido van Rossum/Mark Hammond/John Zelle]

This post was last modified on Tháng Năm 8, 2024 10:02 sáng

Đinh Thái Hoàng

Đinh Thái Hoàng - tác giả của Laptrinhc.edu.vn, chuyên sâu trong lĩnh vực lập trình. Trang web chia sẻ kiến thức, hướng dẫn và tin tức về lập trình, giúp bạn khám phá thế giới mã nguồn và nâng cao kỹ năng coder.

Published by

Bài đăng mới nhất

Tổng hợp app bán hàng online uy tín nhất tại Việt Nam

Khám phá và tận dụng tiềm năng kinh doanh trên nhiều nền tảng là điều…

3 ngày ago

HỌC THIẾT KẾ MOBILE APP Ở ĐÂU UY TÍN?

Mobile App đang trở thành một phần thiết yếu trong cuộc sống hiện đại. Với…

3 ngày ago

Cách phá mật khẩu Windows bằng DLC Boot

Bạn đã bao giờ quên mật khẩu máy tính và không biết phải làm sao?…

3 ngày ago

Cách kiểm tra và cài đặt Driver cho Windows 10 chuẩn nhất

Driver chính là phần mềm giúp hệ điều hành nhận diện phần cứng trên máy…

3 ngày ago

Top 10 công cụ viết phần mềm tốt nhất

Hiện nay, lập trình viên không cần phải thực hiện toàn bộ công việc lập…

3 ngày ago

Những Công Ty Lập Trình Ứng Dụng Cho IOS Hàng Đầu Việt Nam

Lập trình ứng dụng cho iOS không chỉ đơn thuần là một quyết định khó…

3 ngày ago