-
Tuần 1 - Ngày 10 tháng 7 năm 2019
- Giới thiệu về khóa học
- Hướng dẫn viết chương trình Python trên web
- Hướng dẫn sử dụng PyCharm
- Tổng quan về Python
- Kỹ năng sử dụng Google search
- Viết tài liệu kỹ thuật dùng Markdown
- Hàm xây dựng sẵn trong Python – math và random
- Cài đặt các công thức toán cơ bản
- Xây dựng hàm trong python
- Điều kiện if-else
- Những lỗi thường gặp trong Python
- Reading assignment
-
Tuần 2 - Ngày 17 tháng 7 năm 2019
-
Tuần 3 - Ngày 24 tháng 7 năm 2019
-
Tuần 4 - Ngày 31 tháng 7 năm 2019
-
Tuần 5 - Ngày 7 tháng 8 năm 2019
-
Advanced Python
-
Tuần 6 - Ngày 14 tháng 8 năm 2019
-
Tuần 7 - Ngày 28 tháng 8 năm 2019
-
Tuần 8
-
Tuần 9
Tổng quan về Python
I. Tại sao học Python
Python là một trong những ngôn ngữ được sử dụng rộng rãi trong AI, machine learning và data science. Python có nhiều tính năng vượt trội so với C++ và Java. Một trong số đó là việc hỗ trợ rất nhiều thư viện hữu ích để xử lý data. Cụ thể, thư viện Pandas, Scikit-learn và Pybrain được dùng cho machine learning. OpenCV được dùng phổ biến cho image processing và computer vision. TensorFlow và Pytorch được dùng cho deep learning, và Scipy được dùng cho việc tính toán khoa học.
Theo khảo sát của Kaggle 2018, Python được dùng nhiều nhất cho machine learning và data science.
Theo lý thuyết thì chúng ta có thể hoàn thành công việc bằng việc dùng bất kỳ ngôn ngữ nào như C++. Tuy nhiên, việc dùng ngôn ngữ phù hợp giúp chúng ta hoàn thành công việc nhanh hơn và dễ dàng hơn.
II. Biến và kiểu dữ liệu
Cú pháp để khai báo một biến trong python như sau ten_bien = giá_trị_của_biến
. Thông thường, chúng ta dùng tiếng Anh để đặt tên cho biến. Điều này có nhiều lý do, và lý do quan trọng nhất là chúng ta viết code không phải chỉ cho mình đọc, mà còn cho người khác đọc.
Do đó, việc đặt tên biến cần đảm bảo ít nhất những thành viên trong nhóm có thể hiểu dễ dàng và tên biến cũng cần thể hiện rõ ý nghĩa của nó. Ví dụ, chúng ta muốn tạo 2 biến chứa thông tin về mã số sinh viên và tên của sinh viên. Tên biến phù hợp có thể là student_id
và student_name
. Chúng ta không nên dùng những tên vô nghĩa như `a1` và `a2` để đặt tên biến trong trường hợp này.
giá_trị_của_biến
trong python có thể là số nguyên (integer
), số thực (float
), dạng chuỗi (string
), hay kiểu boolean
– True/False
.
Kiểu số nguyên: Chữ số hoặc số đếm. Ví dụ 1, 2, 3, 0, -1, -2,….
– Số người đang ngồi trong phòng
– Ngày trong tháng
Kiểu số thực: Số có chứa dấu ‘.’, dấu phân cách giữa phần số nguyên và phần số lẻ. Ví dụ : 1.5, 0.5, -3.21, 1.0, 0.0.
– Điểm trung bình của lớp
– Giá của món hàng
– Số pi
Kiểu chuỗi: Ví dụ 'Joe', 'Schmoe', "Joe", "Schmoe"
– Tên
– Tựa sách
– Câu văn
Kiểu đúng/sai: Trả về 1/yes/true khi biểu thức được gọi thực hiện đúng logic, và trả về 0/no/false khi biểu thức sai.
– Trạng thái bóng đèn : 1/yes/true là mở, 0/no/false là tắt
– Môt người còn sống hay tử vong: 1/yes/true là sống, 0/no/false là tử vong.
Chúng ta quan sát ví dụ tạo các biến number_of_days
, distance
, greeting
, và
is_student
với giá trị có kiểu dữ liệu khác nhau.
# tạo biến number_of_days có giá trị là 10 number_of_days = 10 # tạo biến số distance có giá trị là 20.5 distance = 20.5 # tạo biến chuỗi greeting có giá trị là "Hello AI-VIET-NAM" greeting = "Hello AI-VIET-NAM" # tạo biến boolean is_student có giá trị là True is_student = True
Ký hiệu #
ở ví dụ trên có tác dụng chú thích để việc đọc hiểu code trở nên dễ dàng. Những chú thích này không phải là yêu cầu bắt buộc khi lập trình. Tuy nhiên, việc chú thích code chi tiết là thói quen tốt để giúp bản thân người tạo code và người khác đọc code nhanh hiểu hơn.
Có một điểm cần lưu ý khi đặt tên biến là chúng ta không được dùng từ khóa (keyword) trong python để đặt tên cho biến. Keyword có thể là True
, False
, import
. Bảng sau liệt kê các từ khóa trong python mà chúng ta không được dùng để đặt tên cho biến.
Nếu chúng ta dùng keyword để đặt tên cho biến, chương trình sẽ báo lỗi như sau
return = 5
Kết quả
File "/tmp/sessions/90e4ade1bc0a8087/main.py", line 1 return = 5 ^ SyntaxError: invalid syntax
Ở đây, return
là keyword trong python. Vì thế, chúng ta không thể dùng nó để đặt tên cho biến được.
III. Hàm có sẵn trong python
Cú pháp của một hàm trong python bao gồm tên hàm, cặp ngoặc tròn và tham số: là tên_hàm(tham_số)
. Ví dụ, chúng ta xét hàm print
Một trong các tác dụng của hàm này in ra màn hình giá trị tham số.
# tạo biến number_of_days có giá trị là 10 number_of_days = 10 print(number_of_days) # tạo biến số distance có giá trị là 20.5 distance = 20.5 print(distance) # tạo biến chuỗi greeting có giá trị là "Hello AI-VIET-NAM" greeting = "Hello AI-VIET-NAM" print(greeting) # tạo biến boolean is_student có giá trị là True is_student = True print(is_student)
Kết quả
10 20.5 Hello AI-VIET-NAM True
Một hàm được dùng phổ biến để xác định kiểu dữ liệu của một biến là hàm type(tên_biến)
.
# tạo biến number_of_days có giá trị là 10 number_of_days = 10 data_type_of_number_of_days = type(number_of_days) print(data_type_of_number_of_days) # tạo biến số distance có giá trị là 20.5 distance = 20.5 data_type_of_distance = type(distance) print(data_type_of_distance) # tạo biến chuỗi greeting có giá trị là "Hello AI-VIET-NAM" greeting = "Hello AI-VIET-NAM" data_type_of_greeting = type(greeting) print(data_type_of_greeting) # tạo biến boolean is_student có giá trị là True is_student = True data_type_of_is_student = type(is_student) print(data_type_of_is_student)
Kết quả
<class 'int'> <class 'float'> <class 'str'> <class 'bool'>
trong đó int
, str
, bool
viết tắt cho integer
, string
, và boolean
.
Hàm input([câu_thông_báo])
cho phép user đưa dữ liệu vào chương trình python từ bàn phím. Cặp ngoặc vuông []
có ý nghĩa là việc yêu câu biến câu_thông_báo
cho hàm input
là tùy chọn; có hay không có cũng được. Chúng ta cùng xem ba ví dụ dùng hàm input
để yêu cầu user nhập thông tin tên, tuổi và cân nặng.
# yêu câu user nhập thông tin từ bàn phím input_data = input("Hãy nhập tên của bạn!") # lấy kiểu dữ liệu của input_data data_type_input_data = type(input_data) print("--------------------------------------") print(data_type_input_data) print(input_data)
Kết quả khi nhập dữ liệu kiểu string
Hãy nhập tên của bạn! AIVIETNAM -------------------------------------- <class 'str'> AIVIETNAM
Kết quả khi nhập dữ liệu kiểu int
Hãy nhập tên của bạn! 32 -------------------------------------- <class 'str'> 32
Kết quả khi nhập dữ liệu kiểu float
Hãy nhập tên của bạn! 70.5 -------------------------------------- <class 'str'> 70.5
Ở ba ví dụ trên, thông tin tên, tuổi và cân nặng nhập từ bàn phím lần lượt là AIVIETNAM
, 30
, và 70.5
. Do hàm input
luôn trả về giá trị kiểu string, nên trong cả ba ví dụ trên, kiểu dữ liệu của input_data
là string
. Chúng ta có thể đổi (hay ép) kiểu dữ liệu từ string
về int
hay float
bằng hàm int()
và float()
như sau:
# ép kiểu dữ liệu từ string về int input_data_int = int(input_data) # ép kiểu dữ liệu từ string về float input_data_float = float(input_data)
Áp dụng vào ví dụ trên, yêu cầu user nhập thông tin tuổi và cân nặng và để ép kiểu dữ liệu của biến input_data
như sau:
# yêu câu user nhập thông tin từ bàn phím input_data = input("Hãy nhập tuổi của bạn!") # ép kiểu dữ liệu từ string về int input_data_int = int(input_data) # lấy kiểu dữ liệu của input_data data_type = type(input_data_int) print("--------------------------------------") print(data_type) print(input_data_int)
và
# yêu câu user nhập thông tin từ bàn phím input_data = input("Hãy nhập cân nặng của bạn!") # ép kiểu dữ liệu từ string về float input_data_float = float(input_data) # lấy kiểu dữ liệu của input_data data_type = type(input_data_float) print("--------------------------------------") print(data_type) print(input_data_float)
IV. Các phép tính đơn giản
Các phép toán cơ bản được trình bày và giải thích trong bảng sau:
Ví dụ dưới đây thực hiện một số phép toán đơn giản cho 2 biến số x
và y
.
Phần đọc thêm
Về hàm bool()
tại https://docs.python.org/3/library/functions.html#bool
Về hàm int()
tại https://docs.python.org/3/library/functions.html#int
Về hàm float()
tại https://docs.python.org/3/library/functions.html#float
Về hàm str()
tại https://docs.python.org/3/library/functions.html#func-str
Về hàm input()
tại https://docs.python.org/3/library/functions.html#input