1. Khơi gợi hứng thú

Nếu làm việc nhiều với máy tính, sớm muộn bạn cũng sẽ gặp một tác vụ muốn tự động hoá. Ví dụ: tìm kiếm và thay thế trên một lượng lớn tập tin văn bản, hoặc đổi tên và sắp xếp lại cả đống ảnh theo một quy tắc phức tạp. Có thể bạn muốn viết một cơ sở dữ liệu nhỏ theo ý mình, một ứng dụng GUI chuyên biệt, hay một trò chơi đơn giản.

Nếu bạn là lập trình viên chuyên nghiệp, có thể bạn đang phải làm việc với nhiều thư viện C/C++/Java và thấy chu trình viết/biên dịch/kiểm thử/biên dịch lại thông thường quá chậm. Cũng có thể bạn đang viết một bộ kiểm thử cho một thư viện như vậy và cảm thấy việc viết mã kiểm thử quá nhàm chán. Hoặc giả, bạn đã viết một chương trình muốn gắn thêm một ngôn ngữ mở rộng, nhưng không muốn phải tự thiết kế và hiện thực cả một ngôn ngữ mới cho ứng dụng đó.

Python chính là ngôn ngữ dành cho bạn.

Có thể viết shell script Unix hoặc tập tin batch của Windows cho một số tác vụ này, nhưng shell script mạnh nhất ở việc di chuyển tập tin và xử lý dữ liệu văn bản, không mấy phù hợp với ứng dụng GUI hay trò chơi. Cũng có thể viết một chương trình C/C++/Java, nhưng có khi mất rất nhiều thời gian mới có được bản phác thảo đầu tiên. Python dễ dùng hơn, chạy được trên Windows, macOS và Unix, và sẽ giúp bạn hoàn thành công việc nhanh hơn.

Python dễ dùng, nhưng là một ngôn ngữ lập trình thực thụ, cung cấp nhiều cấu trúc và hỗ trợ cho chương trình lớn hơn hẳn so với shell script hay tập tin batch. Mặt khác, Python cũng kiểm tra lỗi chặt hơn C nhiều, và với tư cách một ngôn ngữ bậc rất cao, Python có sẵn các kiểu dữ liệu bậc cao như mảng và dict linh hoạt. Nhờ các kiểu dữ liệu tổng quát hơn, Python áp dụng được cho nhiều bài toán hơn hẳn so với Awk hay thậm chí Perl, trong khi nhiều việc làm bằng Python cũng dễ không kém các ngôn ngữ đó.

Python cho phép chia chương trình thành các module để tái sử dụng trong các chương trình Python khác. Python đi kèm một bộ module chuẩn đồ sộ, có thể dùng làm nền cho chương trình của bạn --- hoặc làm ví dụ để bắt đầu học lập trình Python. Một số module này cung cấp các khả năng như I/O tập tin, lời gọi hệ thống, socket, và cả giao diện cho các bộ công cụ giao diện đồ hoạ như Tk.

Python là một ngôn ngữ thông dịch, giúp tiết kiệm đáng kể thời gian phát triển vì không cần biên dịch và liên kết. Trình thông dịch có thể chạy ở chế độ tương tác, rất tiện để thử nghiệm các tính năng của ngôn ngữ, viết những chương trình dùng một lần rồi bỏ, hoặc kiểm thử các hàm khi phát triển chương trình theo hướng từ dưới lên. Nó cũng là một chiếc máy tính để bàn khá tiện tay.

Python cho phép viết chương trình vừa gọn vừa dễ đọc. Chương trình viết bằng Python thường ngắn hơn nhiều so với chương trình tương đương viết bằng C, C++ hay Java, vì một số lý do:

  • các kiểu dữ liệu bậc cao cho phép diễn đạt những thao tác phức tạp chỉ trong một câu lệnh;

  • việc nhóm câu lệnh được thực hiện bằng thụt lề thay vì bằng dấu ngoặc mở và đóng;

  • không cần khai báo biến hay đối số.

Python có thể mở rộng được: nếu biết lập trình C, việc thêm một hàm hay module tích hợp sẵn mới vào trình thông dịch là điều dễ dàng, dù để chạy những thao tác then chốt với tốc độ tối đa, hay để liên kết chương trình Python với các thư viện chỉ có ở dạng nhị phân (ví dụ: thư viện đồ hoạ riêng của một hãng). Khi đã thực sự đam mê, bạn có thể nhúng trình thông dịch Python vào một ứng dụng viết bằng C và dùng nó làm ngôn ngữ mở rộng hoặc ngôn ngữ điều khiển cho ứng dụng đó.

Nhân tiện, ngôn ngữ này được đặt theo tên chương trình "Monty Python's Flying Circus" của BBC, không liên quan gì đến loài bò sát. Việc liên hệ đến các tiểu phẩm của Monty Python trong tài liệu không chỉ được cho phép mà còn được khuyến khích!

Giờ khi bạn đã hào hứng với Python, chắc hẳn bạn sẽ muốn tìm hiểu nó chi tiết hơn. Vì cách tốt nhất để học một ngôn ngữ là sử dụng nó, hướng dẫn này mời bạn vừa đọc vừa nghịch thử với trình thông dịch Python.

Chương tiếp theo sẽ giải thích cách dùng trình thông dịch. Đây là thông tin khá khô khan nhưng cần thiết để thử các ví dụ xuất hiện sau đó.

Phần còn lại của hướng dẫn giới thiệu nhiều tính năng khác nhau của ngôn ngữ và hệ thống Python thông qua các ví dụ, bắt đầu từ biểu thức, câu lệnh và kiểu dữ liệu đơn giản, đến hàm và module, và cuối cùng là các khái niệm nâng cao như exception và class do người dùng định nghĩa.