Chào mừng quý vị đến với website của Phạm Văn Phúc - Tuy Hòa- Phú Yên
Quý vị chưa đăng nhập hoặc chưa đăng ký làm thành
viên, vì vậy chưa thể tải được các tài liệu của
Thư viện về máy tính của mình.
Nếu chưa đăng ký, hãy nhấn vào chữ ĐK thành viên ở phía bên trái, hoặc xem phim hướng dẫn tại đây
Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay phía bên trái.
Nếu chưa đăng ký, hãy nhấn vào chữ ĐK thành viên ở phía bên trái, hoặc xem phim hướng dẫn tại đây
Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay phía bên trái.
file 1

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn: sưu tầm
Người gửi: phạm văn phúc
Ngày gửi: 07h:33' 01-06-2024
Dung lượng: 3.6 MB
Số lượt tải: 1
Nguồn: sưu tầm
Người gửi: phạm văn phúc
Ngày gửi: 07h:33' 01-06-2024
Dung lượng: 3.6 MB
Số lượt tải: 1
Số lượt thích:
0 người
Lê Trọng Nhân - Nguyễn Trần Hữu Nguyên - Võ Tấn Phương
Nguyễn Thanh Hải - Phạm Văn Vinh
Lê Phương Nam - Băng Ngọc Bảo Tâm
Trang 2
The Dariu Foundation
Mục lục
I
Các câu lệnh Python cơ bản
7
Chương 1. Hướng dẫn cài đặt Python và Pycharm
1
Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Cài đặt Python trên Windows . . . . . . . . . . . . . .
3
Giao diện lập trình Python GUI . . . . . . . . . . . . .
4
Cài đặt PyCharm trên Window . . . . . . . . . . . . . .
5
Hướng dẫn setup và chạy chương trình với PyCharm
6
Chương trình đầu tiên trên PyCharm . . . . . . . . . .
7
Một số thao tác khác trên PyCharm . . . . . . . . . . .
8
Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
10
11
13
14
18
22
23
25
Chương 2. Hiển thị kết quả trên Python
1
Giới thiệu . . . . . . . . . . . . . . .
2
Hiển thị nhiều thông tin . . . . . .
3
In với kí tự phân cách . . . . . . .
4
In với kí tự kết thúc . . . . . . . . .
5
In với số thập phân . . . . . . . . .
6
Câu hỏi ôn tập . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
28
28
28
29
29
30
.
.
.
.
.
.
.
.
.
.
.
.
31
32
32
32
32
33
33
34
34
34
34
35
36
Chương 4. Câu lệnh điều kiện IF
1
Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Câu lệnh if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
40
40
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Chương 3. Nhập dữ liệu và Kiểu dữ liệu
1
Giới thiệu . . . . . . . . . . . . . . . . . . . .
2
Câu lệnh nhập dữ liệu . . . . . . . . . . . .
3
Kiểu số nguyên trên Python . . . . . . . .
3.1
Khai báo một biến kiểu số nguyên
3.2
Nhập số nguyên từ bàn phím . . .
3.3
Các phép toán trên số nguyên . .
4
Kiểu số thực trên Python . . . . . . . . . .
4.1
Khai báo một biến kiểu số thực . .
4.2
Nhập số thực từ bàn phím . . . . .
4.3
Các phép toán trên số thực . . . .
5
Xử lý lỗi nhập liệu . . . . . . . . . . . . . . .
6
Câu hỏi ôn tập . . . . . . . . . . . . . . . . .
Hướng dẫn lập trình Python cơ bản
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Trang 3
3
4
5
6
7
Câu lệnh if else . . .
Câu lệnh if elif else .
Câu lệnh lồng nhau .
Bài tập . . . . . . . . .
Câu hỏi ôn tập . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Chương 5. Mảng một chiều - Cấu trúc lặp FOR
1
Giới thiệu . . . . . . . . . . . . . . . . . . . .
2
Khai báo và truy xuất mảng một chiều . .
3
Cấu trúc lặp for . . . . . . . . . . . . . . . .
4
Nhập mảng từ bàn phím . . . . . . . . . .
5
Bài tập . . . . . . . . . . . . . . . . . . . . . .
6
Câu hỏi ôn tập . . . . . . . . . . . . . . . . .
Chương 6. Mảng nhiều chiều - FOR lồng nhau
1
Giới thiệu . . . . . . . . . . . . . . . . . . . .
2
Thêm một file Python . . . . . . . . . . . .
3
Khai báo và truy xuất mảng nhiều chiều .
4
Duyệt mảng nhiều chiều . . . . . . . . . .
5
Nhập mảng nhiều chiều từ bàn phím . .
6
Bài tập . . . . . . . . . . . . . . . . . . . . . .
7
Câu hỏi ôn tập . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
42
42
43
46
.
.
.
.
.
.
49
50
50
50
52
52
55
.
.
.
.
.
.
.
57
58
58
59
61
61
62
64
Chương 7. Cấu trúc lặp while
1
Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Cú pháp vòng lặp while . . . . . . . . . . . . . . . . . . . . .
2.1
Câu lệnh break và continue trong vòng lặp while
2.1.1
Câu lệnh break . . . . . . . . . . . . . . . .
2.1.2
Câu lệnh continue . . . . . . . . . . . . . .
2.2
Sử dụng while trên một dòng . . . . . . . . . . . . .
3
Cú pháp vòng lặp while-else . . . . . . . . . . . . . . . . . .
4
Bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
67
68
68
69
69
69
69
69
70
72
Chương 8. Các thao tác trên FILE
1
Giới thiệu . . . . . . . . . . . . .
2
Ghi dữ liệu ra File . . . . . . . .
3
Đọc dữ liệu từ File . . . . . . .
4
Đọc mảng 1 chiều từ File . . .
5
Đọc mảng nhiều chiều từ File
6
Bài tập . . . . . . . . . . . . . . .
7
Câu hỏi ôn tập . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
75
76
76
77
78
79
81
82
Chương 9. Hàm và lời gọi hàm
1
Giới thiệu . . . . . . . . .
2
Định nghĩa hàm . . . . .
3
Gọi Hàm . . . . . . . . .
3.1
Đối Số Mặc Định
3.2
Giá Trị Trả Về . .
3.3
Câu lệnh pass . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
85
86
86
86
87
87
88
Trang 4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
The Dariu Foundation
4
5
6
Viết hàm để tính giai thừa . . . . . . . .
4.1
Viết hàm sử dụng vòng lặp for
4.2
Viết hàm sử dụng đệ quy . . . .
Bài tập . . . . . . . . . . . . . . . . . . . .
Câu hỏi ôn tập . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
89
89
89
90
91
Chương 10. Cấu trúc dữ liệu nâng cao trên Python
95
1
Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
2
Chuỗi (string) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
2.1
Nối chuỗi, thay đổi hoặc xóa chuỗi . . . . . . . . . . . . . . . . 96
2.2
Phương thức dùng với biến kiểu chuỗi . . . . . . . . . . . . . . 97
3
Cấu trúc dữ liệu Tuple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.1
Khởi tạo và truy xuất các phần tử trong Tuple . . . . . . . . . . 97
3.2
Các thao tác với Tuple . . . . . . . . . . . . . . . . . . . . . . . . 98
3.3
Khi nào sử dụng Tuple . . . . . . . . . . . . . . . . . . . . . . . . 98
4
Cấu trúc dữ liệu tập hợp (Set) . . . . . . . . . . . . . . . . . . . . . . . . 99
4.1
Khởi tạo và truy xuất các phần tử trong tập hợp . . . . . . . . . 99
4.2
Thay đổi tập hợp . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.3
Các phép toán trong tập hợp . . . . . . . . . . . . . . . . . . . . 100
4.3.1
Phép hợp (Union) . . . . . . . . . . . . . . . . . . . . . 100
4.3.2
Phép giao (Intersection) . . . . . . . . . . . . . . . . . 100
4.3.3
Phép hiệu (Difference) . . . . . . . . . . . . . . . . . . 100
4.3.4
Hiệu đối xứng của hai tập hợp (Symmetric difference)101
4.4
Khi nào sử dụng tập hợp . . . . . . . . . . . . . . . . . . . . . . . 101
5
Cấu trúc dữ liệu từ điển (Dictionary) . . . . . . . . . . . . . . . . . . . . 101
5.1
Khởi tạo và truy xuất các phần tử trong từ điển . . . . . . . . . 101
5.2
Thêm và cập nhật phần tử trong từ điển . . . . . . . . . . . . . 102
5.3
Xóa phần tử khỏi từ điển . . . . . . . . . . . . . . . . . . . . . . . 102
5.4
Một số phương thức hay dùng trong từ điển . . . . . . . . . . . 103
5.5
Khi nào sử dụng từ điển . . . . . . . . . . . . . . . . . . . . . . . 103
6
Bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7
Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
II
Dự án ứng dụng
107
Chương 11. Trợ lý ảo trên Python - Văn bản thành Giọng nói
1
Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Tạo mới một ứng dụng . . . . . . . . . . . . . . . . . . . .
3
Cài đặt thư viện . . . . . . . . . . . . . . . . . . . . . . . .
4
Hiện thực chương trình . . . . . . . . . . . . . . . . . . .
5
Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . .
Chương 12. Trợ lý ảo trên Python - Nhận diện giọng nói
1
Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . .
2
Cài đặt thư viện . . . . . . . . . . . . . . . . . . . . .
3
Hiện thực chương trình . . . . . . . . . . . . . . . .
4
Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . .
Hướng dẫn lập trình Python cơ bản
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
109
110
110
111
112
113
.
.
.
.
115
116
116
117
119
Trang 5
Chương 13. Trợ lý ảo trên Python - Xây dựng trí thông minh
1
Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Truy xuất ngày hiện tại . . . . . . . . . . . . . . . . . . . .
3
Hoàn thiện chương trình . . . . . . . . . . . . . . . . . .
4
Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
121
122
122
122
124
Chương 14. Lập trình giao diện trên Python
1
Giới thiệu . . . . . . . . . . . . . . . . .
2
Thiết kế giao diện . . . . . . . . . . . .
3
Thêm đối tượng giao diện vào cửa sổ
4
Câu hỏi ôn tập . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
125
126
126
127
130
.
.
.
.
.
131
132
132
133
133
134
Chương 15. Tạo hàm xử lý cho nút nhấn
1
Giới thiệu . . . . . . . . . . . . . . . .
2
Khai báo hàm xử lý . . . . . . . . . .
3
Hiện thực hàm xử lý cho nút nhấn
4
Bài tập . . . . . . . . . . . . . . . . . .
5
Câu hỏi ôn tập . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Chương 16. Xử lý lỗi trên giao diện
135
1
Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
2
Xử lý lỗi nhập liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
3
Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Trang 6
The Dariu Foundation
Phần I
Các câu lệnh Python cơ bản
Hướng dẫn lập trình Python cơ bản
Trang 7
CHƯƠNG 1
Hướng dẫn cài đặt Python và
Pycharm
1
Giới thiệu
Python là một ngôn ngữ lập trình cấp cao và dễ tiếp cận hơn đối với những người
mới bắt đầu học ngôn ngữ lập trình. Nếu so sánh Python với các ngôn ngữ truyền
thống như Pascal hay C thì mức độ phức tạp của Python là thấp hơn. Một số ưu
điểm của ngôn ngữ lập trình Python có thể kể ra như sau:
• Python có cú pháp rất đơn giản. Nó dễ đọc và viết hơn rất nhiều khi so sánh
với những ngôn ngữ lập trình khác như Pascal hay C. Mặc dù đôi lúc sự đơn
giản này có thể gây ra một số phiền phức trong việc quản lý chương trình.
Tuy nhiên Python làm cho việc lập trình trở đơn giản hơn, đặc biệt là các
tác vụ nhập xuất (input và output), cho phép bạn tập trung vào những giải
pháp chứ không phải cú pháp của ngôn ngữ lập trình. Một cách so sánh trừu
tượng, Python tạo điều kiện cho bạn "giao tiếp ngôn ngữ", hơn là việc phải
"học ngôn ngữ" một cách truyền thống.
• Mã nguồn mở rộng rãi: Đây là yếu tố hết sức quan trọng dành cho người mới
bắt đầu. Vì là mã nguồn mở, bạn không những có thể sử dụng các phần mềm,
chương trình được viết trong Python mà còn có thể thay đổi mã nguồn của
nó. Python có một cộng đồng rộng lớn, không ngừng cải thiện nó mỗi lần cập
nhật. Rất nhiều mã nguồn mở liên quan đến trí tuệ nhân tạo hay nhận diện
giọng nói đang có sẵn trên Python, để người dùng có thể phát triển những
ứng dụng rất cao cấp.
• Tương thích đa nền tảng: Rất nhiều hệ thống, từ máy tính cho đến các bo
mạch nhúng, thậm chí là các bo mạch có tài nguyên thấp như MicroBit, cũng
hỗ trợ ngôn ngữ lập trình Python. Do đó, bạn có thể hình dung rằng, phần
mềm có thể chỉ cần phát triển một lần là có thể sử dụng cho rất nhiều nền
tảng khác nhau. Chỉ với những thay đổi rất nhỏ, một phần mềm đang chạy
trên máy tính cũng có thể chạy trên một bo mạch mini.
Như vậy, có thể thấy rằng, ngôn ngữ lập trình Python là một khái niệm rất rộng.
Tùy vào việc phát triển ứng dụng trên nền tảng nào, mà phần mềm đi kèm phù hợp
sẽ được sử dụng, như minh họa ở Hình 1.1. Phần mềm ở đây không chỉ đóng vai
trò là chương trình để chúng ta soạn thảo chương trình (hay còn gọi là lập trình),
mà nó còn đóng vai trò biên dịch từ ngôn ngữ lập trình sang ngôn ngữ thực thi.
Như minh họa ở Hình 1.1, khi lập trình Python trên máy tính, chúng ta sẽ cần 1
chương trình dịch từ ngôn ngữ Python sang ngôn ngữ mà máy tính có thể hiểu
được. Và chương trình này, thông dụng nhất hiện tại là Python3. Tuy nhiên, nếu
chúng ta muốn lập trình bằng ngôn ngữ Python nhưng cho mạch MicroBit, chúng
ta sẽ cần một chương trình khác, chẳng hạn như là Mu. Chương trình này sẽ dịch
từ ngôn ngữ Python sang ngôn ngữ mà mạch MicroBit có thể hiểu được. Trong
hình Hình 1.1, chúng tôi gọi Máy tính hoặc mạch MicroBit là nền tảng thực thi.
Cuối cùng, là phương thức dịch từ ngôn ngữ Python sang ngôn ngữ mà nền tảng
thực thi có thể hiểu được, gọi là thông dịch (interpreter). Như một thông dịch viên,
phần mềm sẽ dịch câu lệnh python đầu tiên, rồi thực thi nó. Sau đó, lại dịch tiếp
câu lệnh thứ 2, và thực thi cho đến khi kết thúc chương trình. Đây là điểm vô cùng
khác biệt so với ngôn ngữ Pascal, trình biên dịch sẽ dịch hết chương trình rồi mới
Trang 10
The Dariu Foundation
Hình 1.1: Ngôn ngữ lập trình và Trình biên dịch
thực thi. Cũng vì lý do này, mà Python tương thích với nhiều nền tảng thực thi, vì
bản chất chương trình Python chỉ là một file văn bản. Chỉ khi thực thi, nó mới được
dịch sang ngôn ngữ mà nền tảng phần cứng hiểu được.
Hướng dẫn bên dưới sẽ hướng dẫn chi tiết các bước cài đặt trình thông dịch Python3.
Thực ra, sau khi cài đặt trình thông dịch này, chúng ta đã có một giao diện để
lập trình bằng ngôn ngữ Python. Tuy nhiên, giao diện này khá nghèo nàn, nên
chúng tôi khuyến khích bạn cài thêm PyCharm, một phần mềm rất được cộng
đồng Python khuyên dùng.
2
Cài đặt Python trên Windows
• Bước 1: Bạn cần truy cập vào trang chủ của Python là http://www.python.org/,
chọn tiếp vào mục Downloads, và lựa chọn phiên bản Python muốn cài. Tại
thời điểm của bài hướng dẫn này, Python bản mới nhất đang là 3.8.5
Hình 1.2: Tải phần mềm Python từ trang chủ http://www.python.org/
• Bước 2: Khi tải xong, bạn tiến hành chạy file cài đặt có đuôi .exe vừa tải ở
bước 1. Nhấp vào Install Now để cài đặt. Bạn cần phải chọn vào 2 tùy chọn
cuối cùng (Install for all user và Add Python to PATH), như minh họa ở hình
bên dưới.
• Bước 3: Bạn có thể nhìn thấy tiến trình cài đặt Python lên máy.
Hướng dẫn lập trình Python cơ bản
Trang 11
Hình 1.3: Chọn cả 2 tùy chọn, trước khi nhấn vào Install Now để cài đặt
Hình 1.4: Đợi chương trình cài đặt Python
Trang 12
The Dariu Foundation
• Bước 4: Khi cài đặt hoàn tất, bạn sẽ nhìn thấy một màn hình thông báo như
dưới đây. Khi đó hãy click “Close” (ở góc dưới bên phải) để hoàn tất cài đặt.
Hình 1.5: Quá trình cài đặt Python thành công
3
Giao diện lập trình Python GUI
Ngay sau khi cài đặt xong Python, bạn đã có thể bắt đầu lập trình. Từ nút khởi động
Windows, bạn tìm kiếm với từ khóa Python GUI là thấy ứng dụng này, như minh
họa ở Hình 14.1.
Hình 1.6: Chương trình Python GUI
Giao diện Python Shell hiện ra, từ menu File, bạn chọn tiếp New Window, như
Hướng dẫn lập trình Python cơ bản
Trang 13
minh họa ở Hình 14.3.
Hình 1.7 : Mở một cửa sổ để lập trình trên Python IDE
Chương trình đầu tiên rất đơn giản, chỉ có 1 câu lệnh là print("Xin chao"). Để chạy
chương trình, bạn chọn vào Run, chọn tiếp Run mode hoặc nhấn F5. Kết quả của
chương trình sẽ được hiển thị trên Python Shell. Rõ ràng, giao diện lập trình này
khá nghèo nàn và không có nhiều hỗ trợ khi viết câu lệnh, điều mà bạn sẽ thấy rõ
ràng trên phần mềm PyCharm. Tuy nhiên phần mềm này cũng có thể dùng tạm
khi bạn chưa cài đặt PyCharm thành công. Trong phần hướng dẫn tiếp theo, chúng
tôi sẽ hướng dẫn bạn cách cài đặt và viết chương trình trên PyCharm.
4
Cài đặt PyCharm trên Window
• Bước 1: Từ trang chủ www.jetbrains.com/pycharm/download/, nhấn vào nút
“Download”, và chọn phiên bản miễn phí Community, như hướng dẫn ở
hình bên dưới.
Hình 1.8: Tải Pycharm từ trang chủ
• Bước 2: Khi tải hoàn tất, tiến hành chạy để cài đặt PyCharm. Một cửa sổ cài
đặt sẽ hiện ra, hãy nhấp vào “Next”.
Trang 14
The Dariu Foundation
Hình 1.9: Ấn "Next" để tiếp tục
• Bước 3: Ở màn hình tiếp theo, bạn có thể thay đổi đường dẫn để cài đặt Py-
Charm hoặc để mặc định. Sau đó nhấp vào “Next”.
Hình 1.10: Ấn "Next" để tiếp tục
Hướng dẫn lập trình Python cơ bản
Trang 15
• Bước 4: Bạn sẽ thấy một màn hình có một vài lựa chọn, bạn chọn vào các ô
như hình (chọn tương tự nếu như máy bạn chỉ hiện 32-bit thay vì 64-bit). Sau
đó ấn vào “Next”.
Hình 1.11: Ấn "Next" để tiếp tục
• Bên cạnh đó, nếu như trong bước này, trong khung cài đặt bạn có thêm lựa
chọn như hình bên dưới. Điều đó có nghĩa là bạn chưa cài thư viện Java, bạn
hãy chọn để cài đặt thư viện Java tự động nhé.
Hình 1.12: Đánh dấu cho 2 lựa chọn
Trang 16
The Dariu Foundation
• Bước 5: Chọn thư mục trong start menu của Windows. Hãy để mặc định là
thư mục JetBrains vào nhấp vào “Install”.
Hình 1.13: Nhấn vô "Install" để tiến hành cài đặt
• Bước 6: Chờ quá trình cài đặt hoàn tất.
Hình 1.14: Đợi chương trình cài đặt Pycharm
Hướng dẫn lập trình Python cơ bản
Trang 17
• Bước 7: Khi cài đặt hoàn thành, bạn sẽ nhìn thấy màn hình thông báo như
dưới đây. PyCharm hỏi ta có muốn khởi động lại máy luôn hay không. Ta có
thể chọn RebootNow để khởi động lại máy tính nhằm hoàn tất quá trình cài
đặt.
Hình 1.15: Ấn "Finish" để hoàn thành cài đặt
5
Hướng dẫn setup và chạy chương trình với PyCharm
Như vậy là về cơ bản chúng ta đã cài đặt xong PyCharm. Nhưng để biết bạn đã cài
đúng chưa thì chúng ta cần phải thử xem chương trình python của bạn có chạy
được với PyCharm vừa cài không.
• Bước 1: Mở chương trình PyCharm vừa cài đặt thành công trên máy tính của
bạn.
• Bước 2: Ta sẽ được hỏi "Có muốn Import các thiết lập đã có từ trước hay
không?". Nếu cài mới hoàn toàn, ta chọn mục Do not import settings, rồi
nhấn OK, như hướng dẫn ở Hình 1.16
Hình 1.16: Không import những setting cũ khi cài mới
Trang 18
The Dariu Foundation
Trong phần chính sách bảo mật (nếu có), ta nhấn xác nhận và nhấn Continue
để tiếp tục.
Hình 1.17 : Đồng ý với cách chính sách của PyCharm
• Bước 3: Trong màn hình tùy biến PyCharm, ta chọn Skip Remaining and Set
Defaults để lựa chọn các thiết lập mặc định.
Hình 1.18: Chọn cấu hình mặc định cho phần mềm PyCharm
Hướng dẫn lập trình Python cơ bản
Trang 19
• Bước 4: Sau đó là màn hình chào hỏi của PyCharm, ta chọn mục Create New
Project để tạo một Project mới.
Hình 1.19: Tạo mới một dự án bằng cách nhấn vào New Project
• Bước 5: Ta chọn thư mục để lưu project tại mục Location. Đồng thời, bạn
kiểm tra các thông tin môi trường bên dưới, xem có giống với hình hướng
dẫn hay không. Thông thường các giá trị mặc định sẽ chính xác và chúng ta
không phải chỉnh sửa gì cả. Cuối cùng, chúng ta nhấn vào nút Create.
Hình 1.20: Chọn đường dẫn cho dự án và kiểm tra thông tin môi trường
Trang 20
The Dariu Foundation
• Bước 6: Sau khi quá trình trên được hoàn tất, hộp thoại hướng dẫn như hình
bên dưới có thể sẽ xuất hiện, và nếu bạn không thích nó hiện ra nữa. Bạn có
thể chọn vào ô không hiển thị các mẹo ở góc dưới bên trái và chọn close để
thoát.
Hình 1.21: Tắt hộp hoại thoại hướng dẫn các mẹo lập trình
Project mới sẽ được tạo ra trên PyCharm như hình bên dưới.
Hình 1.22: Dự án mới được tạo ra thành công trên PyCharm
• Bước 7: Để xem nội dung đoạn code được tạo sẵn khi ta tạo project ta bấm
chọn vào phần project (vùng khoanh tròn màu đỏ) chúng ta vừa tạo để xem
tất cả các files trong project và chọn vào file main.py. Sau đó chúng ta được
kết quả như hình bên dưới.
• Bước 8: Để hiển thị thêm các nút bấm hữu ích như chạy chương trình, chúng
ta vào phần View -> Appearance -> chọn vào Toolbar.
Hướng dẫn lập trình Python cơ bản
Trang 21
Hình 1.23: Bấm chọn phần Project trong vùng khoanh màu đỏ
Hình 1.24: Hiển thị thanh công cụ Toolbar trên PyCharm
• Bước 9: Sau khi đã hiển thị thanh công cụ, chúng ta chọn vào dấu mũi tên
màu xanh. Sau đó chương trình sẽ được thực thi và kết quả sẽ được hiện thị
phía bên dưới như hình.
Hình 1.25: Nhấn nút Run để chạy thử chương trình mặc định trên PyCharm
Như vậy là chúng ta đã cài đặt xong và chạy thử thành công một chương trình trên
PyCharm.
6
Chương trình đầu tiên trên PyCharm
Khi tạo mới một dự án (project) trên PyCharm, phần mềm tự tạo cho chúng ta file
mặc định là main.py cùng với một số đoạn chương trình mẫu. Chúng ta có thể
Trang 22
The Dariu Foundation
nhấp đôi vào file này, xóa hết nội dung và bắt đầu bằng chương trình của mình.
Ở chương trình đầu tiên này, chúng ta cũng chỉ đơn giản in ra màn hình một câu.
Chương trình của chúng ta chỉ có một lệnh là print("Hello World"). Và đây là kết
quả sau khi chạy chương trình:
Hình 1.26: Kết quả in ra màn hình cho chương trình đầu tiên trên PyCharm
7
Một số thao tác khác trên PyCharm
Tông màu mặc định của PyCharm là màu tối (nền đen chữ trắng). Trong trường
hợp bạn muốn đổi tông màu hiển thị, có thể vào File, Settings. Với cửa sổ mới hiện
ra, bạn chọn tiếp vào Appearance và lựa chọn tông màu ưa thích, như hướng dẫn
ở Hình 1.27
Hình 1.27 : Thay đổi tông màu hiển thị trên PyCharm
Hướng dẫn lập trình Python cơ bản
Trang 23
Trong trường hợp muốn thay đổi kích thước của trình soạn thảo, để việc lập trình
được dễ nhìn, từ giao diện Settings ở Hình 1.27, chúng ta chọn tiếp qua Editor, và
chọn Font và thay đổi thông số Size của nó, như minh họa ở Hình 1.28 là 30.
Hình 1.28: Thay đổi kích thước chữ khi lập trình
Trang 24
The Dariu Foundation
8
Câu hỏi ôn tập
1. Phát biểu nào là đúng về ngôn ngữ Python?
A. Ngôn ngữ lập trình cấp thấp
B. Ngôn ngữ lập trình cấp cao
C. Ngôn ngữ máy
D. Ngôn ngữ MicroBit
2. Các lợi thế của ngôn ngữ Python so với Pascal là gì?
A. Đơn giản dễ tiếp cận
B. Tương thích với nhiều nền tảng
C. Mã nguồn mở với nhiều thư viện hỗ trợ
D. Tất cả đều đúng
3. Để chuyển từ ngôn ngữ Python sang ngôn ngữ mà máy tính hiểu được, chúng
ta cần:
A. Trình biên dịch Python3
B. Trình thông dịch Python3
C. Cả 2 chương trình trên
D. Tất cả đều sai
4. Đặc điểm nào là đúng cho trình thông dịch?
A. Dịch từng lệnh và thực thi lệnh đó
B. Dịch toàn bộ chương trình và thực thi
C. Tùy trường hợp mà 1 trong 2 phương pháp trên sẽ được chọn lựa
D. Tất cả đều đúng
5. Đặc điểm nào là đúng cho trình biên dịch?
A. Dịch từng lệnh và thực thi lệnh đó
B. Dịch toàn bộ chương trình và thực thi
C. Tùy trường hợp mà 1 trong 2 phương pháp trên sẽ được chọn lựa
D. Tất cả đều đúng
6. Ngôn ngữ lập trình Python là:
A. Ngôn ngữ biên dịch
B. Ngôn ngữ thông dịch
C. Tất cả đều đúng
D. Tất cả đều sai
7. Ngôn ngữ lập trình Pascal là:
A. Ngôn ngữ biên dịch
B. Ngôn ngữ thông dịch
C. Tất cả đều đúng
D. Tất cả đều sai
Đáp án
1. B
2. D
3. B
4. A
5. B
6. B
7. A
Hướng dẫn lập trình Python cơ bản
Trang 25
Trang 26
The Dariu Foundation
CHƯƠNG 2
Hiển thị kết quả trên Python
1
Giới thiệu
Để tìm hiểu một ngôn ngữ lập trình nói chung và python nói riêng, thông thường
chúng ta sẽ bắt đầu bằng câu lệnh hiển thị để in kết quả ra màn hình. Thực ra,
trong một hệ thống máy tính với 3 thành phần đặc trưng là Dữ liệu đầu vào - Xử
lý - Kết quả đầu ra, thì bước cuối cùng lại là bước đơn giản nhất, tiếp theo là phần
dữ liệu đầu vào và cuối cùng sẽ là xử lý. Cũng vì lý do đó, mà chúng ta thường tìm
hiểu câu lệnh hiển thị trước, câu lệnh đơn giản nhất thuộc nhóm xuất kết quả đầu
ra (Output).
Ở bài trước, thực ra chúng ta đã xài câu lệnh hiển thị print để in chữ "Xin chao" ra
màn hình. Trong bài này, chúng tôi sẽ trình bày chi tiết hơn các tùy chọn của câu
lệnh print.
Các câu lệnh trong hướng dẫn bên dưới sẽ được nhập trực tiếp vào file mặc định
main.py. Sau đó, khi chạy chương trình, kết quả sẽ được in ra ở khung cửa sổ ngay
bên dưới chương trình.
2
Hiển thị nhiều thông tin
Bên cạnh việc in ra 1 chuỗi như bài trước, hàm print có thể in nhiều thông tin, mỗi
thông tin cách nhau bằng dấu phẩy (,), như ví dụ ở chương trình sau đây:
1
print ( " Xin chao " , 10 , 12.1 , " Ket thuc " )
Chương trình 2.1: In nhiều thông tin
Bên cạnh chuỗi kí tự, hàm print cũng có thể in số nguyên lẫn số thập phân. Python
sẽ tự động thêm dấu khoảng trắng vào giữa các thông tin cần in. Một biến số cũng
được xem là một thông tin, và hoàn toàn có thể ghép vào câu lệnh print theo cách
như trên. Một ví dụ như sau:
1
2
x = 20
print ( " Xin chao " , 10 , 12.1 , " Ket thuc " , x )
Chương trình 2.2: In ra giá trị của biến số
Ở ví dụ trên, x là một biến số. Tuy nhiên trên Python, việc khai báo một biến số đã
được lược giản đi rất nhiều. Thậm chí, chúng ta không cần phải chỉ định kiểu dữ
liệu cho biến số. Chi tiết của việc khai báo biến và kiểu dữ liệu sẽ được trình bài cụ
thể ở những bài sau.
3
In với kí tự phân cách
Thay vì mỗi thông tin in ra được cách nhau bằng khoảng trắng như ở trên, chúng
ta cũng có thể tùy chỉnh bằng chuỗi kí tự khác, dựa vào tùy chọn sep như ví dụ bên
dưới:
1
print ( " Xin chao " , " Ket thuc " , sep = " ---" )
Chương trình 2.3: In kết quả với kí tự phân cách
Trang 28
The Dariu Foundation
4
In với kí tự kết thúc
Cuối cùng, chúng ta cũng có thể thêm tùy chọn end để định nghĩa kí tự kết thúc
của chuỗi cần in, như ví dụ sau:
1
print ( " Xin chao " , " Ket thuc " , sep = " ---" , end = " !! " )
Chương trình 2.4: In kết quả với tùy chọn end
Tất nhiên, vì là tùy chọn, sep và end có thể có hoặc không, hoặc thậm chí xuất hiện
cùng nhau trong câu lệnh print. Yêu cầu duy nhất là các tùy chọn này phải cách
nhau bằng dấu phẩy và không có ràng buộc về thứ tự. Chương trình ?? cũng sẽ in
ra kết quả tương tự như Chương trình ??
1
print ( " Xin chao " , " Ket thuc " , end = " !! " , sep = " ---" )
Chương trình 2.5: Các tùy chọn không cần có thứ tự trước sau
5
In với số thập phân
Một trong những thao tác quan trọng khi tính toán, kết quả có thể là số thập phân
với rất nhiều kí số sau dấy phẩy. Trong một số trường hợp, chúng ta chỉ cần in 2 kí
số sau dấu phẩy mà thôi. Câu lệnh print hỗ trợ trong trường hợp này sẽ như ví dụ
bên dưới:
1
2
a = 3.14165
print ( " Ket qua la %.2 f " % a )
Chương trình 2.6: Tùy chỉnh số kí số sau dấu thập phân
Ở đây, %.2 f là định dạng của dữ liệu cần in. Kết quả in ra màn hình sẽ chỉ lấy 2
chữ số thập phân của biến a mà thôi. Một lưu ý quan trọng là kết quả sẽ được làm
tròn.
Hướng dẫn lập trình Python cơ bản
Trang 29
6
Câu hỏi ôn tập
1. Câu lệnh để in kết quả ra màn hình trên Python là gì?
A. print
B. Log
C. Out
D. Tất cả đều đúng
2. Kết quả in ra màn hình của lệnh print("Xin chao", "123") là gì?
A. Xin chao
B. 123
C. Xin chao 123
D. Lệnh sai cú pháp
3. Kết quả in ra màn hình của lệnh print("Xin chao", "123", sep="*") là gì?
A. Xin chao 123 *
B. Xin chao * 123
C. Xin chao * 123 *
D. Lệnh sai cú pháp
4. Kết quả in ra màn hình của lệnh print("Xin chao", "123", end="*") là gì?
A. Xin chao 123 *
B. Xin chao * 123
C. Xin chao * 123 *
D. Lệnh sai cú pháp
5. Kết quả in ra màn hình của lệnh print("Xin chao", "123", sep = "*", end="*")
là gì?
A. Xin chao 123 *
B. Xin chao * 123
C. Xin chao * 123 *
D. Lệnh sai cú pháp
6. Kết quả in ra màn hình của lệnh print("Xin chao", "123", end = "*", sep="*")
là gì?
A. Xin chao 123 *
B. Xin chao * 123
C. Xin chao * 123 *
D. Lệnh sai cú pháp
7. Kết quả in ra màn hình của lệnh print("Vi du %.2f", % 3.14999) là gì?
A. Vi du 3.14
B. Vi du 3.15
C. Vi du 3.14999
D. Lệnh sai cú pháp
Đáp án
1. A
2. C
Trang 30
3. B
4. A
5. C
6. C
7. B
The Dariu Foundation
CHƯƠNG 3
Nhập dữ liệu và Kiểu dữ liệu
1
Giới thiệu
Trước khi bắt đầu vào việc xử lý giải thuật, chúng ta phải thực hiện qua bước nhập
dữ liệu đầu vào cho bài toán. Mặc dù là quy trình đầu tiên của một hệ thống, độ
phức tạp của nó lại cao hơn nhiều so với việc xuất dữ liệu. Một trong những khó
khăn cho quy trình này, là người dùng có thể nhập sai, hoặc không tuân theo cú
pháp dữ liệu của chương trình. Điều này có thể dẫn tới việc xử lý dữ liệu bị lỗi,
nặng hơn có thể làm thoát chương trình của chúng ta. Vì vậy, khi làm các chương
trình lớn, luôn luôn đi kèm với quá trình nhập liệu, là quá trình xử lý lỗi dữ liệu
đầu vào.
Trong hướng dẫn này, chúng tôi tập trung hướng dẫn việc nhập dữ liệu từ bàn
phím, và chỉ tập trung vào dữ liệu số, cũng như các phép toán cho dữ liệu số. Một
kĩ thuật đơn giản nhưng hiệu quả để xử lý lỗi dữ liệu đầu vào cũng sẽ được giới
thiệu....
Nguyễn Thanh Hải - Phạm Văn Vinh
Lê Phương Nam - Băng Ngọc Bảo Tâm
Trang 2
The Dariu Foundation
Mục lục
I
Các câu lệnh Python cơ bản
7
Chương 1. Hướng dẫn cài đặt Python và Pycharm
1
Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Cài đặt Python trên Windows . . . . . . . . . . . . . .
3
Giao diện lập trình Python GUI . . . . . . . . . . . . .
4
Cài đặt PyCharm trên Window . . . . . . . . . . . . . .
5
Hướng dẫn setup và chạy chương trình với PyCharm
6
Chương trình đầu tiên trên PyCharm . . . . . . . . . .
7
Một số thao tác khác trên PyCharm . . . . . . . . . . .
8
Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
10
11
13
14
18
22
23
25
Chương 2. Hiển thị kết quả trên Python
1
Giới thiệu . . . . . . . . . . . . . . .
2
Hiển thị nhiều thông tin . . . . . .
3
In với kí tự phân cách . . . . . . .
4
In với kí tự kết thúc . . . . . . . . .
5
In với số thập phân . . . . . . . . .
6
Câu hỏi ôn tập . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
28
28
28
29
29
30
.
.
.
.
.
.
.
.
.
.
.
.
31
32
32
32
32
33
33
34
34
34
34
35
36
Chương 4. Câu lệnh điều kiện IF
1
Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Câu lệnh if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
40
40
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Chương 3. Nhập dữ liệu và Kiểu dữ liệu
1
Giới thiệu . . . . . . . . . . . . . . . . . . . .
2
Câu lệnh nhập dữ liệu . . . . . . . . . . . .
3
Kiểu số nguyên trên Python . . . . . . . .
3.1
Khai báo một biến kiểu số nguyên
3.2
Nhập số nguyên từ bàn phím . . .
3.3
Các phép toán trên số nguyên . .
4
Kiểu số thực trên Python . . . . . . . . . .
4.1
Khai báo một biến kiểu số thực . .
4.2
Nhập số thực từ bàn phím . . . . .
4.3
Các phép toán trên số thực . . . .
5
Xử lý lỗi nhập liệu . . . . . . . . . . . . . . .
6
Câu hỏi ôn tập . . . . . . . . . . . . . . . . .
Hướng dẫn lập trình Python cơ bản
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Trang 3
3
4
5
6
7
Câu lệnh if else . . .
Câu lệnh if elif else .
Câu lệnh lồng nhau .
Bài tập . . . . . . . . .
Câu hỏi ôn tập . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Chương 5. Mảng một chiều - Cấu trúc lặp FOR
1
Giới thiệu . . . . . . . . . . . . . . . . . . . .
2
Khai báo và truy xuất mảng một chiều . .
3
Cấu trúc lặp for . . . . . . . . . . . . . . . .
4
Nhập mảng từ bàn phím . . . . . . . . . .
5
Bài tập . . . . . . . . . . . . . . . . . . . . . .
6
Câu hỏi ôn tập . . . . . . . . . . . . . . . . .
Chương 6. Mảng nhiều chiều - FOR lồng nhau
1
Giới thiệu . . . . . . . . . . . . . . . . . . . .
2
Thêm một file Python . . . . . . . . . . . .
3
Khai báo và truy xuất mảng nhiều chiều .
4
Duyệt mảng nhiều chiều . . . . . . . . . .
5
Nhập mảng nhiều chiều từ bàn phím . .
6
Bài tập . . . . . . . . . . . . . . . . . . . . . .
7
Câu hỏi ôn tập . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
42
42
43
46
.
.
.
.
.
.
49
50
50
50
52
52
55
.
.
.
.
.
.
.
57
58
58
59
61
61
62
64
Chương 7. Cấu trúc lặp while
1
Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Cú pháp vòng lặp while . . . . . . . . . . . . . . . . . . . . .
2.1
Câu lệnh break và continue trong vòng lặp while
2.1.1
Câu lệnh break . . . . . . . . . . . . . . . .
2.1.2
Câu lệnh continue . . . . . . . . . . . . . .
2.2
Sử dụng while trên một dòng . . . . . . . . . . . . .
3
Cú pháp vòng lặp while-else . . . . . . . . . . . . . . . . . .
4
Bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
67
68
68
69
69
69
69
69
70
72
Chương 8. Các thao tác trên FILE
1
Giới thiệu . . . . . . . . . . . . .
2
Ghi dữ liệu ra File . . . . . . . .
3
Đọc dữ liệu từ File . . . . . . .
4
Đọc mảng 1 chiều từ File . . .
5
Đọc mảng nhiều chiều từ File
6
Bài tập . . . . . . . . . . . . . . .
7
Câu hỏi ôn tập . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
75
76
76
77
78
79
81
82
Chương 9. Hàm và lời gọi hàm
1
Giới thiệu . . . . . . . . .
2
Định nghĩa hàm . . . . .
3
Gọi Hàm . . . . . . . . .
3.1
Đối Số Mặc Định
3.2
Giá Trị Trả Về . .
3.3
Câu lệnh pass . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
85
86
86
86
87
87
88
Trang 4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
The Dariu Foundation
4
5
6
Viết hàm để tính giai thừa . . . . . . . .
4.1
Viết hàm sử dụng vòng lặp for
4.2
Viết hàm sử dụng đệ quy . . . .
Bài tập . . . . . . . . . . . . . . . . . . . .
Câu hỏi ôn tập . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
89
89
89
90
91
Chương 10. Cấu trúc dữ liệu nâng cao trên Python
95
1
Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
2
Chuỗi (string) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
2.1
Nối chuỗi, thay đổi hoặc xóa chuỗi . . . . . . . . . . . . . . . . 96
2.2
Phương thức dùng với biến kiểu chuỗi . . . . . . . . . . . . . . 97
3
Cấu trúc dữ liệu Tuple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.1
Khởi tạo và truy xuất các phần tử trong Tuple . . . . . . . . . . 97
3.2
Các thao tác với Tuple . . . . . . . . . . . . . . . . . . . . . . . . 98
3.3
Khi nào sử dụng Tuple . . . . . . . . . . . . . . . . . . . . . . . . 98
4
Cấu trúc dữ liệu tập hợp (Set) . . . . . . . . . . . . . . . . . . . . . . . . 99
4.1
Khởi tạo và truy xuất các phần tử trong tập hợp . . . . . . . . . 99
4.2
Thay đổi tập hợp . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.3
Các phép toán trong tập hợp . . . . . . . . . . . . . . . . . . . . 100
4.3.1
Phép hợp (Union) . . . . . . . . . . . . . . . . . . . . . 100
4.3.2
Phép giao (Intersection) . . . . . . . . . . . . . . . . . 100
4.3.3
Phép hiệu (Difference) . . . . . . . . . . . . . . . . . . 100
4.3.4
Hiệu đối xứng của hai tập hợp (Symmetric difference)101
4.4
Khi nào sử dụng tập hợp . . . . . . . . . . . . . . . . . . . . . . . 101
5
Cấu trúc dữ liệu từ điển (Dictionary) . . . . . . . . . . . . . . . . . . . . 101
5.1
Khởi tạo và truy xuất các phần tử trong từ điển . . . . . . . . . 101
5.2
Thêm và cập nhật phần tử trong từ điển . . . . . . . . . . . . . 102
5.3
Xóa phần tử khỏi từ điển . . . . . . . . . . . . . . . . . . . . . . . 102
5.4
Một số phương thức hay dùng trong từ điển . . . . . . . . . . . 103
5.5
Khi nào sử dụng từ điển . . . . . . . . . . . . . . . . . . . . . . . 103
6
Bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7
Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
II
Dự án ứng dụng
107
Chương 11. Trợ lý ảo trên Python - Văn bản thành Giọng nói
1
Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Tạo mới một ứng dụng . . . . . . . . . . . . . . . . . . . .
3
Cài đặt thư viện . . . . . . . . . . . . . . . . . . . . . . . .
4
Hiện thực chương trình . . . . . . . . . . . . . . . . . . .
5
Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . .
Chương 12. Trợ lý ảo trên Python - Nhận diện giọng nói
1
Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . .
2
Cài đặt thư viện . . . . . . . . . . . . . . . . . . . . .
3
Hiện thực chương trình . . . . . . . . . . . . . . . .
4
Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . .
Hướng dẫn lập trình Python cơ bản
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
109
110
110
111
112
113
.
.
.
.
115
116
116
117
119
Trang 5
Chương 13. Trợ lý ảo trên Python - Xây dựng trí thông minh
1
Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Truy xuất ngày hiện tại . . . . . . . . . . . . . . . . . . . .
3
Hoàn thiện chương trình . . . . . . . . . . . . . . . . . .
4
Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
121
122
122
122
124
Chương 14. Lập trình giao diện trên Python
1
Giới thiệu . . . . . . . . . . . . . . . . .
2
Thiết kế giao diện . . . . . . . . . . . .
3
Thêm đối tượng giao diện vào cửa sổ
4
Câu hỏi ôn tập . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
125
126
126
127
130
.
.
.
.
.
131
132
132
133
133
134
Chương 15. Tạo hàm xử lý cho nút nhấn
1
Giới thiệu . . . . . . . . . . . . . . . .
2
Khai báo hàm xử lý . . . . . . . . . .
3
Hiện thực hàm xử lý cho nút nhấn
4
Bài tập . . . . . . . . . . . . . . . . . .
5
Câu hỏi ôn tập . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Chương 16. Xử lý lỗi trên giao diện
135
1
Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
2
Xử lý lỗi nhập liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
3
Câu hỏi ôn tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Trang 6
The Dariu Foundation
Phần I
Các câu lệnh Python cơ bản
Hướng dẫn lập trình Python cơ bản
Trang 7
CHƯƠNG 1
Hướng dẫn cài đặt Python và
Pycharm
1
Giới thiệu
Python là một ngôn ngữ lập trình cấp cao và dễ tiếp cận hơn đối với những người
mới bắt đầu học ngôn ngữ lập trình. Nếu so sánh Python với các ngôn ngữ truyền
thống như Pascal hay C thì mức độ phức tạp của Python là thấp hơn. Một số ưu
điểm của ngôn ngữ lập trình Python có thể kể ra như sau:
• Python có cú pháp rất đơn giản. Nó dễ đọc và viết hơn rất nhiều khi so sánh
với những ngôn ngữ lập trình khác như Pascal hay C. Mặc dù đôi lúc sự đơn
giản này có thể gây ra một số phiền phức trong việc quản lý chương trình.
Tuy nhiên Python làm cho việc lập trình trở đơn giản hơn, đặc biệt là các
tác vụ nhập xuất (input và output), cho phép bạn tập trung vào những giải
pháp chứ không phải cú pháp của ngôn ngữ lập trình. Một cách so sánh trừu
tượng, Python tạo điều kiện cho bạn "giao tiếp ngôn ngữ", hơn là việc phải
"học ngôn ngữ" một cách truyền thống.
• Mã nguồn mở rộng rãi: Đây là yếu tố hết sức quan trọng dành cho người mới
bắt đầu. Vì là mã nguồn mở, bạn không những có thể sử dụng các phần mềm,
chương trình được viết trong Python mà còn có thể thay đổi mã nguồn của
nó. Python có một cộng đồng rộng lớn, không ngừng cải thiện nó mỗi lần cập
nhật. Rất nhiều mã nguồn mở liên quan đến trí tuệ nhân tạo hay nhận diện
giọng nói đang có sẵn trên Python, để người dùng có thể phát triển những
ứng dụng rất cao cấp.
• Tương thích đa nền tảng: Rất nhiều hệ thống, từ máy tính cho đến các bo
mạch nhúng, thậm chí là các bo mạch có tài nguyên thấp như MicroBit, cũng
hỗ trợ ngôn ngữ lập trình Python. Do đó, bạn có thể hình dung rằng, phần
mềm có thể chỉ cần phát triển một lần là có thể sử dụng cho rất nhiều nền
tảng khác nhau. Chỉ với những thay đổi rất nhỏ, một phần mềm đang chạy
trên máy tính cũng có thể chạy trên một bo mạch mini.
Như vậy, có thể thấy rằng, ngôn ngữ lập trình Python là một khái niệm rất rộng.
Tùy vào việc phát triển ứng dụng trên nền tảng nào, mà phần mềm đi kèm phù hợp
sẽ được sử dụng, như minh họa ở Hình 1.1. Phần mềm ở đây không chỉ đóng vai
trò là chương trình để chúng ta soạn thảo chương trình (hay còn gọi là lập trình),
mà nó còn đóng vai trò biên dịch từ ngôn ngữ lập trình sang ngôn ngữ thực thi.
Như minh họa ở Hình 1.1, khi lập trình Python trên máy tính, chúng ta sẽ cần 1
chương trình dịch từ ngôn ngữ Python sang ngôn ngữ mà máy tính có thể hiểu
được. Và chương trình này, thông dụng nhất hiện tại là Python3. Tuy nhiên, nếu
chúng ta muốn lập trình bằng ngôn ngữ Python nhưng cho mạch MicroBit, chúng
ta sẽ cần một chương trình khác, chẳng hạn như là Mu. Chương trình này sẽ dịch
từ ngôn ngữ Python sang ngôn ngữ mà mạch MicroBit có thể hiểu được. Trong
hình Hình 1.1, chúng tôi gọi Máy tính hoặc mạch MicroBit là nền tảng thực thi.
Cuối cùng, là phương thức dịch từ ngôn ngữ Python sang ngôn ngữ mà nền tảng
thực thi có thể hiểu được, gọi là thông dịch (interpreter). Như một thông dịch viên,
phần mềm sẽ dịch câu lệnh python đầu tiên, rồi thực thi nó. Sau đó, lại dịch tiếp
câu lệnh thứ 2, và thực thi cho đến khi kết thúc chương trình. Đây là điểm vô cùng
khác biệt so với ngôn ngữ Pascal, trình biên dịch sẽ dịch hết chương trình rồi mới
Trang 10
The Dariu Foundation
Hình 1.1: Ngôn ngữ lập trình và Trình biên dịch
thực thi. Cũng vì lý do này, mà Python tương thích với nhiều nền tảng thực thi, vì
bản chất chương trình Python chỉ là một file văn bản. Chỉ khi thực thi, nó mới được
dịch sang ngôn ngữ mà nền tảng phần cứng hiểu được.
Hướng dẫn bên dưới sẽ hướng dẫn chi tiết các bước cài đặt trình thông dịch Python3.
Thực ra, sau khi cài đặt trình thông dịch này, chúng ta đã có một giao diện để
lập trình bằng ngôn ngữ Python. Tuy nhiên, giao diện này khá nghèo nàn, nên
chúng tôi khuyến khích bạn cài thêm PyCharm, một phần mềm rất được cộng
đồng Python khuyên dùng.
2
Cài đặt Python trên Windows
• Bước 1: Bạn cần truy cập vào trang chủ của Python là http://www.python.org/,
chọn tiếp vào mục Downloads, và lựa chọn phiên bản Python muốn cài. Tại
thời điểm của bài hướng dẫn này, Python bản mới nhất đang là 3.8.5
Hình 1.2: Tải phần mềm Python từ trang chủ http://www.python.org/
• Bước 2: Khi tải xong, bạn tiến hành chạy file cài đặt có đuôi .exe vừa tải ở
bước 1. Nhấp vào Install Now để cài đặt. Bạn cần phải chọn vào 2 tùy chọn
cuối cùng (Install for all user và Add Python to PATH), như minh họa ở hình
bên dưới.
• Bước 3: Bạn có thể nhìn thấy tiến trình cài đặt Python lên máy.
Hướng dẫn lập trình Python cơ bản
Trang 11
Hình 1.3: Chọn cả 2 tùy chọn, trước khi nhấn vào Install Now để cài đặt
Hình 1.4: Đợi chương trình cài đặt Python
Trang 12
The Dariu Foundation
• Bước 4: Khi cài đặt hoàn tất, bạn sẽ nhìn thấy một màn hình thông báo như
dưới đây. Khi đó hãy click “Close” (ở góc dưới bên phải) để hoàn tất cài đặt.
Hình 1.5: Quá trình cài đặt Python thành công
3
Giao diện lập trình Python GUI
Ngay sau khi cài đặt xong Python, bạn đã có thể bắt đầu lập trình. Từ nút khởi động
Windows, bạn tìm kiếm với từ khóa Python GUI là thấy ứng dụng này, như minh
họa ở Hình 14.1.
Hình 1.6: Chương trình Python GUI
Giao diện Python Shell hiện ra, từ menu File, bạn chọn tiếp New Window, như
Hướng dẫn lập trình Python cơ bản
Trang 13
minh họa ở Hình 14.3.
Hình 1.7 : Mở một cửa sổ để lập trình trên Python IDE
Chương trình đầu tiên rất đơn giản, chỉ có 1 câu lệnh là print("Xin chao"). Để chạy
chương trình, bạn chọn vào Run, chọn tiếp Run mode hoặc nhấn F5. Kết quả của
chương trình sẽ được hiển thị trên Python Shell. Rõ ràng, giao diện lập trình này
khá nghèo nàn và không có nhiều hỗ trợ khi viết câu lệnh, điều mà bạn sẽ thấy rõ
ràng trên phần mềm PyCharm. Tuy nhiên phần mềm này cũng có thể dùng tạm
khi bạn chưa cài đặt PyCharm thành công. Trong phần hướng dẫn tiếp theo, chúng
tôi sẽ hướng dẫn bạn cách cài đặt và viết chương trình trên PyCharm.
4
Cài đặt PyCharm trên Window
• Bước 1: Từ trang chủ www.jetbrains.com/pycharm/download/, nhấn vào nút
“Download”, và chọn phiên bản miễn phí Community, như hướng dẫn ở
hình bên dưới.
Hình 1.8: Tải Pycharm từ trang chủ
• Bước 2: Khi tải hoàn tất, tiến hành chạy để cài đặt PyCharm. Một cửa sổ cài
đặt sẽ hiện ra, hãy nhấp vào “Next”.
Trang 14
The Dariu Foundation
Hình 1.9: Ấn "Next" để tiếp tục
• Bước 3: Ở màn hình tiếp theo, bạn có thể thay đổi đường dẫn để cài đặt Py-
Charm hoặc để mặc định. Sau đó nhấp vào “Next”.
Hình 1.10: Ấn "Next" để tiếp tục
Hướng dẫn lập trình Python cơ bản
Trang 15
• Bước 4: Bạn sẽ thấy một màn hình có một vài lựa chọn, bạn chọn vào các ô
như hình (chọn tương tự nếu như máy bạn chỉ hiện 32-bit thay vì 64-bit). Sau
đó ấn vào “Next”.
Hình 1.11: Ấn "Next" để tiếp tục
• Bên cạnh đó, nếu như trong bước này, trong khung cài đặt bạn có thêm lựa
chọn như hình bên dưới. Điều đó có nghĩa là bạn chưa cài thư viện Java, bạn
hãy chọn để cài đặt thư viện Java tự động nhé.
Hình 1.12: Đánh dấu cho 2 lựa chọn
Trang 16
The Dariu Foundation
• Bước 5: Chọn thư mục trong start menu của Windows. Hãy để mặc định là
thư mục JetBrains vào nhấp vào “Install”.
Hình 1.13: Nhấn vô "Install" để tiến hành cài đặt
• Bước 6: Chờ quá trình cài đặt hoàn tất.
Hình 1.14: Đợi chương trình cài đặt Pycharm
Hướng dẫn lập trình Python cơ bản
Trang 17
• Bước 7: Khi cài đặt hoàn thành, bạn sẽ nhìn thấy màn hình thông báo như
dưới đây. PyCharm hỏi ta có muốn khởi động lại máy luôn hay không. Ta có
thể chọn RebootNow để khởi động lại máy tính nhằm hoàn tất quá trình cài
đặt.
Hình 1.15: Ấn "Finish" để hoàn thành cài đặt
5
Hướng dẫn setup và chạy chương trình với PyCharm
Như vậy là về cơ bản chúng ta đã cài đặt xong PyCharm. Nhưng để biết bạn đã cài
đúng chưa thì chúng ta cần phải thử xem chương trình python của bạn có chạy
được với PyCharm vừa cài không.
• Bước 1: Mở chương trình PyCharm vừa cài đặt thành công trên máy tính của
bạn.
• Bước 2: Ta sẽ được hỏi "Có muốn Import các thiết lập đã có từ trước hay
không?". Nếu cài mới hoàn toàn, ta chọn mục Do not import settings, rồi
nhấn OK, như hướng dẫn ở Hình 1.16
Hình 1.16: Không import những setting cũ khi cài mới
Trang 18
The Dariu Foundation
Trong phần chính sách bảo mật (nếu có), ta nhấn xác nhận và nhấn Continue
để tiếp tục.
Hình 1.17 : Đồng ý với cách chính sách của PyCharm
• Bước 3: Trong màn hình tùy biến PyCharm, ta chọn Skip Remaining and Set
Defaults để lựa chọn các thiết lập mặc định.
Hình 1.18: Chọn cấu hình mặc định cho phần mềm PyCharm
Hướng dẫn lập trình Python cơ bản
Trang 19
• Bước 4: Sau đó là màn hình chào hỏi của PyCharm, ta chọn mục Create New
Project để tạo một Project mới.
Hình 1.19: Tạo mới một dự án bằng cách nhấn vào New Project
• Bước 5: Ta chọn thư mục để lưu project tại mục Location. Đồng thời, bạn
kiểm tra các thông tin môi trường bên dưới, xem có giống với hình hướng
dẫn hay không. Thông thường các giá trị mặc định sẽ chính xác và chúng ta
không phải chỉnh sửa gì cả. Cuối cùng, chúng ta nhấn vào nút Create.
Hình 1.20: Chọn đường dẫn cho dự án và kiểm tra thông tin môi trường
Trang 20
The Dariu Foundation
• Bước 6: Sau khi quá trình trên được hoàn tất, hộp thoại hướng dẫn như hình
bên dưới có thể sẽ xuất hiện, và nếu bạn không thích nó hiện ra nữa. Bạn có
thể chọn vào ô không hiển thị các mẹo ở góc dưới bên trái và chọn close để
thoát.
Hình 1.21: Tắt hộp hoại thoại hướng dẫn các mẹo lập trình
Project mới sẽ được tạo ra trên PyCharm như hình bên dưới.
Hình 1.22: Dự án mới được tạo ra thành công trên PyCharm
• Bước 7: Để xem nội dung đoạn code được tạo sẵn khi ta tạo project ta bấm
chọn vào phần project (vùng khoanh tròn màu đỏ) chúng ta vừa tạo để xem
tất cả các files trong project và chọn vào file main.py. Sau đó chúng ta được
kết quả như hình bên dưới.
• Bước 8: Để hiển thị thêm các nút bấm hữu ích như chạy chương trình, chúng
ta vào phần View -> Appearance -> chọn vào Toolbar.
Hướng dẫn lập trình Python cơ bản
Trang 21
Hình 1.23: Bấm chọn phần Project trong vùng khoanh màu đỏ
Hình 1.24: Hiển thị thanh công cụ Toolbar trên PyCharm
• Bước 9: Sau khi đã hiển thị thanh công cụ, chúng ta chọn vào dấu mũi tên
màu xanh. Sau đó chương trình sẽ được thực thi và kết quả sẽ được hiện thị
phía bên dưới như hình.
Hình 1.25: Nhấn nút Run để chạy thử chương trình mặc định trên PyCharm
Như vậy là chúng ta đã cài đặt xong và chạy thử thành công một chương trình trên
PyCharm.
6
Chương trình đầu tiên trên PyCharm
Khi tạo mới một dự án (project) trên PyCharm, phần mềm tự tạo cho chúng ta file
mặc định là main.py cùng với một số đoạn chương trình mẫu. Chúng ta có thể
Trang 22
The Dariu Foundation
nhấp đôi vào file này, xóa hết nội dung và bắt đầu bằng chương trình của mình.
Ở chương trình đầu tiên này, chúng ta cũng chỉ đơn giản in ra màn hình một câu.
Chương trình của chúng ta chỉ có một lệnh là print("Hello World"). Và đây là kết
quả sau khi chạy chương trình:
Hình 1.26: Kết quả in ra màn hình cho chương trình đầu tiên trên PyCharm
7
Một số thao tác khác trên PyCharm
Tông màu mặc định của PyCharm là màu tối (nền đen chữ trắng). Trong trường
hợp bạn muốn đổi tông màu hiển thị, có thể vào File, Settings. Với cửa sổ mới hiện
ra, bạn chọn tiếp vào Appearance và lựa chọn tông màu ưa thích, như hướng dẫn
ở Hình 1.27
Hình 1.27 : Thay đổi tông màu hiển thị trên PyCharm
Hướng dẫn lập trình Python cơ bản
Trang 23
Trong trường hợp muốn thay đổi kích thước của trình soạn thảo, để việc lập trình
được dễ nhìn, từ giao diện Settings ở Hình 1.27, chúng ta chọn tiếp qua Editor, và
chọn Font và thay đổi thông số Size của nó, như minh họa ở Hình 1.28 là 30.
Hình 1.28: Thay đổi kích thước chữ khi lập trình
Trang 24
The Dariu Foundation
8
Câu hỏi ôn tập
1. Phát biểu nào là đúng về ngôn ngữ Python?
A. Ngôn ngữ lập trình cấp thấp
B. Ngôn ngữ lập trình cấp cao
C. Ngôn ngữ máy
D. Ngôn ngữ MicroBit
2. Các lợi thế của ngôn ngữ Python so với Pascal là gì?
A. Đơn giản dễ tiếp cận
B. Tương thích với nhiều nền tảng
C. Mã nguồn mở với nhiều thư viện hỗ trợ
D. Tất cả đều đúng
3. Để chuyển từ ngôn ngữ Python sang ngôn ngữ mà máy tính hiểu được, chúng
ta cần:
A. Trình biên dịch Python3
B. Trình thông dịch Python3
C. Cả 2 chương trình trên
D. Tất cả đều sai
4. Đặc điểm nào là đúng cho trình thông dịch?
A. Dịch từng lệnh và thực thi lệnh đó
B. Dịch toàn bộ chương trình và thực thi
C. Tùy trường hợp mà 1 trong 2 phương pháp trên sẽ được chọn lựa
D. Tất cả đều đúng
5. Đặc điểm nào là đúng cho trình biên dịch?
A. Dịch từng lệnh và thực thi lệnh đó
B. Dịch toàn bộ chương trình và thực thi
C. Tùy trường hợp mà 1 trong 2 phương pháp trên sẽ được chọn lựa
D. Tất cả đều đúng
6. Ngôn ngữ lập trình Python là:
A. Ngôn ngữ biên dịch
B. Ngôn ngữ thông dịch
C. Tất cả đều đúng
D. Tất cả đều sai
7. Ngôn ngữ lập trình Pascal là:
A. Ngôn ngữ biên dịch
B. Ngôn ngữ thông dịch
C. Tất cả đều đúng
D. Tất cả đều sai
Đáp án
1. B
2. D
3. B
4. A
5. B
6. B
7. A
Hướng dẫn lập trình Python cơ bản
Trang 25
Trang 26
The Dariu Foundation
CHƯƠNG 2
Hiển thị kết quả trên Python
1
Giới thiệu
Để tìm hiểu một ngôn ngữ lập trình nói chung và python nói riêng, thông thường
chúng ta sẽ bắt đầu bằng câu lệnh hiển thị để in kết quả ra màn hình. Thực ra,
trong một hệ thống máy tính với 3 thành phần đặc trưng là Dữ liệu đầu vào - Xử
lý - Kết quả đầu ra, thì bước cuối cùng lại là bước đơn giản nhất, tiếp theo là phần
dữ liệu đầu vào và cuối cùng sẽ là xử lý. Cũng vì lý do đó, mà chúng ta thường tìm
hiểu câu lệnh hiển thị trước, câu lệnh đơn giản nhất thuộc nhóm xuất kết quả đầu
ra (Output).
Ở bài trước, thực ra chúng ta đã xài câu lệnh hiển thị print để in chữ "Xin chao" ra
màn hình. Trong bài này, chúng tôi sẽ trình bày chi tiết hơn các tùy chọn của câu
lệnh print.
Các câu lệnh trong hướng dẫn bên dưới sẽ được nhập trực tiếp vào file mặc định
main.py. Sau đó, khi chạy chương trình, kết quả sẽ được in ra ở khung cửa sổ ngay
bên dưới chương trình.
2
Hiển thị nhiều thông tin
Bên cạnh việc in ra 1 chuỗi như bài trước, hàm print có thể in nhiều thông tin, mỗi
thông tin cách nhau bằng dấu phẩy (,), như ví dụ ở chương trình sau đây:
1
print ( " Xin chao " , 10 , 12.1 , " Ket thuc " )
Chương trình 2.1: In nhiều thông tin
Bên cạnh chuỗi kí tự, hàm print cũng có thể in số nguyên lẫn số thập phân. Python
sẽ tự động thêm dấu khoảng trắng vào giữa các thông tin cần in. Một biến số cũng
được xem là một thông tin, và hoàn toàn có thể ghép vào câu lệnh print theo cách
như trên. Một ví dụ như sau:
1
2
x = 20
print ( " Xin chao " , 10 , 12.1 , " Ket thuc " , x )
Chương trình 2.2: In ra giá trị của biến số
Ở ví dụ trên, x là một biến số. Tuy nhiên trên Python, việc khai báo một biến số đã
được lược giản đi rất nhiều. Thậm chí, chúng ta không cần phải chỉ định kiểu dữ
liệu cho biến số. Chi tiết của việc khai báo biến và kiểu dữ liệu sẽ được trình bài cụ
thể ở những bài sau.
3
In với kí tự phân cách
Thay vì mỗi thông tin in ra được cách nhau bằng khoảng trắng như ở trên, chúng
ta cũng có thể tùy chỉnh bằng chuỗi kí tự khác, dựa vào tùy chọn sep như ví dụ bên
dưới:
1
print ( " Xin chao " , " Ket thuc " , sep = " ---" )
Chương trình 2.3: In kết quả với kí tự phân cách
Trang 28
The Dariu Foundation
4
In với kí tự kết thúc
Cuối cùng, chúng ta cũng có thể thêm tùy chọn end để định nghĩa kí tự kết thúc
của chuỗi cần in, như ví dụ sau:
1
print ( " Xin chao " , " Ket thuc " , sep = " ---" , end = " !! " )
Chương trình 2.4: In kết quả với tùy chọn end
Tất nhiên, vì là tùy chọn, sep và end có thể có hoặc không, hoặc thậm chí xuất hiện
cùng nhau trong câu lệnh print. Yêu cầu duy nhất là các tùy chọn này phải cách
nhau bằng dấu phẩy và không có ràng buộc về thứ tự. Chương trình ?? cũng sẽ in
ra kết quả tương tự như Chương trình ??
1
print ( " Xin chao " , " Ket thuc " , end = " !! " , sep = " ---" )
Chương trình 2.5: Các tùy chọn không cần có thứ tự trước sau
5
In với số thập phân
Một trong những thao tác quan trọng khi tính toán, kết quả có thể là số thập phân
với rất nhiều kí số sau dấy phẩy. Trong một số trường hợp, chúng ta chỉ cần in 2 kí
số sau dấu phẩy mà thôi. Câu lệnh print hỗ trợ trong trường hợp này sẽ như ví dụ
bên dưới:
1
2
a = 3.14165
print ( " Ket qua la %.2 f " % a )
Chương trình 2.6: Tùy chỉnh số kí số sau dấu thập phân
Ở đây, %.2 f là định dạng của dữ liệu cần in. Kết quả in ra màn hình sẽ chỉ lấy 2
chữ số thập phân của biến a mà thôi. Một lưu ý quan trọng là kết quả sẽ được làm
tròn.
Hướng dẫn lập trình Python cơ bản
Trang 29
6
Câu hỏi ôn tập
1. Câu lệnh để in kết quả ra màn hình trên Python là gì?
A. print
B. Log
C. Out
D. Tất cả đều đúng
2. Kết quả in ra màn hình của lệnh print("Xin chao", "123") là gì?
A. Xin chao
B. 123
C. Xin chao 123
D. Lệnh sai cú pháp
3. Kết quả in ra màn hình của lệnh print("Xin chao", "123", sep="*") là gì?
A. Xin chao 123 *
B. Xin chao * 123
C. Xin chao * 123 *
D. Lệnh sai cú pháp
4. Kết quả in ra màn hình của lệnh print("Xin chao", "123", end="*") là gì?
A. Xin chao 123 *
B. Xin chao * 123
C. Xin chao * 123 *
D. Lệnh sai cú pháp
5. Kết quả in ra màn hình của lệnh print("Xin chao", "123", sep = "*", end="*")
là gì?
A. Xin chao 123 *
B. Xin chao * 123
C. Xin chao * 123 *
D. Lệnh sai cú pháp
6. Kết quả in ra màn hình của lệnh print("Xin chao", "123", end = "*", sep="*")
là gì?
A. Xin chao 123 *
B. Xin chao * 123
C. Xin chao * 123 *
D. Lệnh sai cú pháp
7. Kết quả in ra màn hình của lệnh print("Vi du %.2f", % 3.14999) là gì?
A. Vi du 3.14
B. Vi du 3.15
C. Vi du 3.14999
D. Lệnh sai cú pháp
Đáp án
1. A
2. C
Trang 30
3. B
4. A
5. C
6. C
7. B
The Dariu Foundation
CHƯƠNG 3
Nhập dữ liệu và Kiểu dữ liệu
1
Giới thiệu
Trước khi bắt đầu vào việc xử lý giải thuật, chúng ta phải thực hiện qua bước nhập
dữ liệu đầu vào cho bài toán. Mặc dù là quy trình đầu tiên của một hệ thống, độ
phức tạp của nó lại cao hơn nhiều so với việc xuất dữ liệu. Một trong những khó
khăn cho quy trình này, là người dùng có thể nhập sai, hoặc không tuân theo cú
pháp dữ liệu của chương trình. Điều này có thể dẫn tới việc xử lý dữ liệu bị lỗi,
nặng hơn có thể làm thoát chương trình của chúng ta. Vì vậy, khi làm các chương
trình lớn, luôn luôn đi kèm với quá trình nhập liệu, là quá trình xử lý lỗi dữ liệu
đầu vào.
Trong hướng dẫn này, chúng tôi tập trung hướng dẫn việc nhập dữ liệu từ bàn
phím, và chỉ tập trung vào dữ liệu số, cũng như các phép toán cho dữ liệu số. Một
kĩ thuật đơn giản nhưng hiệu quả để xử lý lỗi dữ liệu đầu vào cũng sẽ được giới
thiệu....
 





