Thứ Hai, 22 tháng 4, 2019

Khóa học lập trình python cơ bản cho người mới bắt đầu - P1

Giới thiệu về khóa học lập trình python

khóa học lập trình python này được viết dành cho các bạn sử dụng python cho các bài toán machine learning. Do đó, ngoài hướng dẫn về học lập trình python ra bạn sẽ học được các kỹ thuật, cách sử dụng một số thư viện phục vụ cho khoa học máy tính.
Nếu bạn chỉ đơn giản muốn học lập trình python, bạn vẫn có thể tham khảo phần hướng dẫn về ngôn ngữ python của khóa học lập trình python này.
Python là một ngôn ngữ lập trình tuyệt vời có thể sử dụng trong nhiều lĩnh vực và nhiều bài toán khác nhau. Với sự trợ giúp đắc lực của nhiều thư viện như numpy, scipy, matplotlib,… Nó trở thành một môi trường lý tưởng và mạnh mẽ của khoa học máy tính.
Chúng tôi vẫn hi vọng rằng các bạn đã có một số kinh nghiệm làm việc với python và numpy. Tuy nhiên, nếu bạn chưa có nhiều kinh nghiệm thì cũng không cần quá lo lắng. Khóa học lập trình python này sẽ cung cấp cho bạn một khóa học nhanh về ngôn ngữ lập trình python và sử dụng python trong trong khoa học máy tính.
Toàn bộ source code của khóa học lập trình python này cũng sẽ có ở bản jupyter notebook tại đây.
Trong quá trình học, tôi mong muốn các bạn tự gõ các ví dụ và tự mình kiểm chứng kết quả. Điều này sẽ giúp bạn học tốt hơn rất nhiều.

Python

Python là một ngôn ngữ lập trình bậc cao, python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động. Đây là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu. Đây là một ví dụ triển khai thuật toán tìm kiếm nhanh – quick sort sử dụng python:

Các phiên bản Python

Hiện nay, có 2 phiên bản python khác nhau đó là python 2 và python 3. Hai phiên bản này có một chút khác nhau về cú pháp. Bạn không thể dùng python 2 để chạy code của phiên bản python 3 và ngược lại. Một lưu ý nữa là hiện nay python 2 đã bị khai tử nên chúng tôi khuyến khích bạn sử dụng python 3. Để thuận lợi cho việc học khóa học lập trình python này, chúng tôi đề nghị bạn sử dụng python phiên bản 3.5 trở lên.
Bạn có thể kiểm tra phiên bản python hiện tại của bạn bằng cách chạy lệnh python -V hoặc python –version trên cửa sổ command line.

Các kiểu dữ liệu cơ bản trong Python

Cũng giống như hầu hết các ngôn ngữ lập trình khác, python cũng có các kiểu dữ liệu cơ bản bao gồm: integers, floats, booleans, và strings. Nhưng những kiểu dữ liệu này có cách sử dụng đơn giản và giảm bớt các ràng buộc so với các ngôn ngữ khác.
Kiểu dữ liệu số: Kiểu dữ liệu số nguyên và số thực trong python đơn giản hơn so với các ngôn ngữ khác. Một biến có kiểu là int hay float sẽ tự được xác định thông qua giá trị mà bạn gán cho biến.
Chú ý rằng python không có toán tử tăng 1 đơn vị(x++) hay giảm đi 1 đơn vị(x--) giống như hầu hết các ngôn ngữ khác.
Python cũng có sẵn kiểu dữ liệu cho số phức, bạn có thể xem mọi thông tin chi tiết về nó trong trong tài liệu này.
Booleans: Python cũng hỗ trợ tất cả các toán tử logic như các ngôn ngữ khác. Nhưng sẽ dùng chữ cái tiếng anh thay vì sử dụng các ký tự(&&, ||, ...)
Strings: Python hỗ trợ rất mạnh cho kiểu dữ liệu string:
Đối tượng kiểu string cũng có rất nhiều hàm hữu ích, ví dụ như:
Bạn có thể tìm danh sách tất cả các hàm của string tại tài liệu này.

Containers

Python đã được xây dựng sẵn một số loại containers: lists, dictionaries, sets, và tuples.

Lists

Lists trong python đóng vai trò tương tự như mảng(arrays). Nhưng lists có khả năng tự động thay đổi kích thước và các phần tử trong 1 list có thể có kiểu dữ liệu khác nhau.
Trượt trên list: Để có thể truy cập tới nhiều phần tử liên tiếp trên list. Python cung cấp cơ chế trượt(slice) cho phép truy cập vào sublist của một list dễ dàng và nó được gọi là slicing:
Lưu ý thêm: Chỉ số âm giống như chỉ số dương nhưng là từ cuối list. Giả sử list a có nphần tử. Thì a[-1] = a[n-1]a[-2] = a[n-2]a[:n-1] = a[:-1].
Chúng ta sẽ tiếp tục nhắc tới slice trong phần học về numpy.
Lặp: Bạn có thể lặp qua tất cả các phần tử của 1 list như sau:
Nếu bạn muốn lấy cả chỉ số để dùng ở bên trong vòng lặp, hãy sử dụng build-in function enumerate và làm như sau:
List comprehensions: Trong nhiều tình huống, bạn có thể sẽ cần sử dụng một list để chuyển đổi sang một list tương đương sử dụng một công thức nào đó. Để dễ hiểu hơn, chúng ta hãy xem xét ví dụ tính toán bình phương của từng phần tử trong list các số nguyên sau:
Bạn có thể làm công việc trên đơn giản hơn rất nhiều với list comprehensions:
List comprehensions cũng có thể kết hợp thêm với điều kiện:

Dictionaries

Một dictionaries chứa các cặp (key,value), nó tương tự với map trong Java và C++. Bạn có thể sử dụng như sau:
Bạn có thể tìm tất cả những gì bạn cần biết về dictionaries tại tài liệu này.
Lặp: Bạn có thể lặp qua từng key của dictionary như sau:
Nếu bạn muốn cả key và value trong khi lặp, sử dụng hàm items:
Dictionary comprehensions: Cái này tương tự như list comprehensions, nhưng thêm nữa là bạn có thể dễ dàng xây dựng từ điển mới. Ví dụ:

Sets

Set là một tập hợp các phần tử không có thứ tự và các phần tử không trùng lặp(distinct). Hãy xem một ví dụ đơn giản sau đây:
Như thường lệ, mọi thứ bạn cần về set có thể xem tại đây.
Lặp: Việc lặp qua từng phần tử trong một set có cú pháp giống như với list. Tuy nhiên, vì set chứa các phần tử không có thứ tự. Nên bạn không thể biết trước thứ tự in ra của các phần tử:
Set comprehensions: Giống như list và dictionaries, chúng ta có thể dễ dàng xây dựng sets sử dụng set comprehensions:

Tuples

Tuple là một kiểu dữ liệu bất biến chứa một danh sách các phần tử có thứ tự. Một tuple trong nhiều trường hợp sẽ tương tự với 1 list. Có một sự khác biệt quan trọng nhất đó là tuple có thể sử dụng giống như key trong dictionaries và có thể như các phần tử trong sets, còn list thì không thể. Đây là ví dụ:
Tài liệu này sẽ cho bạn thêm thông tin về tuples.

Functions

Hàm trong python được định nghĩa sử dụng keyword def. Ví dụ:
Chúng ta cũng thường định nghĩa một hàm có các optional tham số(có thể truyền giá trị cho tham số đó hoặc không truyền). Nếu không truyền thì hàm dùng giá trị mặc định. Ví dụ:
Có rất nhiều thông tin hữu ích về hàm trong python ở đây

Classes

Cú pháp để định nghĩa một class trong python vô cùng đơn giản:
Có rất nhiều điều thú vị về class trong python ở đây.