Lập trình Python trên VSCode

Giới thiệu

Nhiều bạn chắc hay tự hỏi bản thân, nếu code Python thì code bằng tool gì. Lập trình Python không đòi hỏi các bạn phải sử dụng IDE đặc thù nào đó để code. Bạn có thể sử dụng VSCode, Sublime Text, thậm chí cả Notepad cũng có thể lập trình được. Nhưng hôm nay mình sẽ giới thiệu các bạn VSCode, tên đầy đủ là Visual Studio Code, một text editor miễn phí, chạy được trên mọi hệ điều hành. VSCode tuy nhẹ hơn người đàn anh Visual Studio, nhưng ta vẫn có thể compile, debug code không thua kém gì IDE xịn.

Mình rất thích sử dụng VSCode, hầu như mình chỉ lập trình trên VSCode. Nó còn có rất nhiều điều thú vị hỗ trợ lập trình Python mà mình sẽ kể ở dưới đây. Để bắt đầu, các bạn vào đây để tải nha https://code.visualstudio.com.

image1

Cài đặt Extension

Lập trình Python trên VSCode, thì không thể thiếu Microsoft Python extension rồi. Nó rất là đơn giản, nhiều tính năng hay ho. Extension này cung cấp cho VSCode những tính năng như auto complete, IntelliSense, linting, debugging, và unit testing, thậm chí việc sử dụng và chuyển đổi nhiều môi trường ảo hay môi trường conda rất dễ dàng.

Chạy thử code Python

Hãy thử bắt đầu viết một chương trình đơn giản trên VSCode để kiểm tra xem extension Python đã hoạt động tốt chưa nhé. Bạn hãy tạo một file hello.py với đoạn code sau:

print("Hello ICON")

Extension Python cung cấp nhiều shortcut để chạy code Python trên trình thông dịch hiện tại của bạn:

Sau đó file Python của bạn sẽ được chạy dưới Terminal. Ngoài ra còn có một số shortcut như chạy một dòng code, chạy nhiều dòng code được tô đen, các bạn có thể tìm hiểu thêm.

Autocomplete và IntelliSense

Hai tính năng không thể thiếu đó là auto complete và IntelliSense. Auto complete thì đúng theo tên gọi của nó, VSCode sẽ tự điền hoàn chỉnh code cho bạn. Việc bạn cần chỉ là chọn gợi ý, nhấn tab và BÙM. Còn IntelliSense, hiểu nôm na thì nó sẽ đưa ra các gợi ý như method, class, variable, hiện document hỗ trợ.

Ngoài ra thì còn một extension khác tên TabNine mà bạn có thể đã thấy quảng cáo nhiều trên Facebook và Youtube. Dùng khá hay tuy nhiên bị giới hạn thời gian sử dụng. Đối với mình, mình dùng bộ extension Python là đủ.

image2

Linting

Linting sẽ thống kê lỗi code của các bạn, có thể là lỗi cú pháp, lỗi logic, thậm chí là format code. Có rất nhiều linting mà bạn có thể tìm hiểu như Pylint, pycodestyle, Flake8, mypy, pydocstyle, prospector và pylama.

Debugging

Đến đây thì mình chỉ muốn nói một câu, đừng debug bằng print nữa. Việc của bạn bây giờ chỉ là đặt breakpoint, và dùng debugger để kiểm tra và dò lỗi. Tin mình đi, bạn sẽ cần đến nó ở bài toán hóc búa đấy. Mình sẽ có một bài viết nữa để trình bày sâu hơn về Debug trên VSCode ở nhiều ngôn ngữ.

Environments

Nếu bạn có thói quen sử dụng môi trường ảo hay môi trường conda cho nhiều project khác nhau, thì VSCode là trợ thủ đắc lực đấy. Bây giờ bạn có thể dễ dàng chọn môi trường mà bạn muốn làm việc, mà không cần phải chỉnh bằng command-line nữa.

Nếu bạn chưa chọn môi trường thì nó sẽ hiện thế này ở dưới góc trái. Giờ hãy nhấn vào và chọn môi trường bạn muốn làm việc nào. image3

Nếu hiện như này thì bạn đã chọn môi trường thành công rồi nhé. image4

Jupyter notebooks

Điểm ăn tiền của VSCode khi lập trình Python đây rồi. Nếu bạn là một lập trình viên Data Science, Học máy, Trí tuệ nhân tạo,… Chắc hẳn bạn đã quen với Jupyter notebook, bây giờ bạn có thể sử dụng nó trên VSCode rồi, chỉ cần mở file .ipynb thôi là bạn có thể làm việc không khác gì Jupyter notebook trên bản web. Còn nhiều thứ hay ho của Jupyter notebook mà VSCode có thể hỗ trợ nữa, mình sẽ có bài chia sẻ riêng ở bài viết sau.

image5

Testing

Lại thêm một phần nữa, mình lại hẹn các bạn ở bài viết sau đó là chức năng testing, có rất nhiều framework được hỗ trợ như unittest, pytest và nose test. Bạn có thể lựa chọn một trong các framework, sau khi lựa chọn thì bên thanh Side bar sẽ xuất hiện một tab Test Explorer.

image6

Tạm kết

Bài viết cũng khá dài rồi. Qua bài này mình đã giới thiệu sơ qua VSCode, extension và một số chức năng bá đạo mà bạn sẽ dùng khi lập trình Python. Ở bài viết sau mình sẽ đi chi tiết hơn, và chia sẻ một số kỹ năng lập trình Python trên VSCode mà mình đúc kết được hơn 3 năm ăn ngủ với code.

@hieunguyen1053

Discussion and feedback