You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 5.-data-structures.md
+15-15
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ Phần này sẽ mô tả những gì bạn đã học qua và đi sâu hơn, b
8
8
9
9
## 5.1. Nhiều hơn về Lists
10
10
11
-
Kiểu dữ liệu list có khá nhiều phương thức(methods) để xử lý. Sau đây là tất cả các cách ấy:
11
+
Kiểu dữ liệu list có khá nhiều phương thức\(methods\) để xử lý. Sau đây là tất cả các cách ấy:
12
12
13
13
`list.append`\(_x_\) Nối thêm một phần tử vào cuối danh sách. Tương tự như là `a[len(a):] = [x]`.`list.extend`\(_iterable_\)
14
14
@@ -22,7 +22,7 @@ Loại bỏ phần tử có vị trí _i_ và trả về nó. Nếu không có v
22
22
23
23
Loại bỏ tất cả các phần tử trong danh sách. Tương tự với `del a[:]`.`list.index`\(_x_\[, _start_\[, _end_\]\]\)
24
24
25
-
Trả về vị trí zero-based(đếm từ 0) của phần tử đầu tiên có gía trị _x_. Lỗi [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) sẽ phát sinh nếu gía trị chỉ định không được tìm thấy.
25
+
Trả về vị trí zero-based\(đếm từ 0\) của phần tử đầu tiên có gía trị _x_. Lỗi [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) sẽ phát sinh nếu gía trị chỉ định không được tìm thấy.
26
26
27
27
The optional arguments _start_ and _end_ are interpreted as in the slice notation and are used to limit the search to a particular subsequence of the list. The returned index is computed relative to the beginning of the full sequence rather than the _start_ argument.`list.count`\(_x_\)
28
28
@@ -61,9 +61,9 @@ Một ví dụ làm rõ các phương thức trên:>>>
61
61
62
62
You might have noticed that methods like `insert`, `remove` or `sort` that only modify the list have no return value printed – they return the default `None`. [\[1\]](https://docs.python.org/3/tutorial/datastructures.html#id3) This is a design principle for all mutable data structures in Python.
63
63
64
-
### 5.1.1. Sử dụng Lists như Ngăn xếp [`Stacks`](https://en.wikipedia.org/wiki/Stack_(abstract_data_type))
64
+
### 5.1.1. Sử dụng Lists như Ngăn xếp \[`Stacks`\]\([https://en.wikipedia.org/wiki/Stack\_\(abstract\_data\_type](https://en.wikipedia.org/wiki/Stack_%28abstract_data_type)\)\)
65
65
66
-
Các list methods làm cho việc sử dụng list như một ngăn xếp(Stacks) trở nên dễ dàng, ai vào sau thì sẽ ra trước, giống như xếp chồng sách, cuốn nào xêp sau sẽ ở trên cùng và được lấy đầu tiên \(“last-in, first-out”\). Để thêm một phần tử vào stack, sử dụng `append()`. Để lấy ra phần tử đầu tiên(phần tử thêm sau cùng), sử dụng `pop()` không cần thêm vị trí cụ thể nhé. Ví dụ:>>>
66
+
Các list methods làm cho việc sử dụng list như một ngăn xếp\(Stacks\) trở nên dễ dàng, ai vào sau thì sẽ ra trước, giống như xếp chồng sách, cuốn nào xêp sau sẽ ở trên cùng và được lấy đầu tiên \(“last-in, first-out”\). Để thêm một phần tử vào stack, sử dụng `append()`. Để lấy ra phần tử đầu tiên\(phần tử thêm sau cùng\), sử dụng `pop()` không cần thêm vị trí cụ thể nhé. Ví dụ:>>>
67
67
68
68
```text
69
69
>>> stack = [3, 4, 5]
@@ -83,9 +83,9 @@ Các list methods làm cho việc sử dụng list như một ngăn xếp(Stacks
83
83
[3, 4]
84
84
```
85
85
86
-
### 5.1.2. Sử dụng Lists như Hàng đợi [`Queues`](https://en.wikipedia.org/wiki/Queue_(abstract_data_type))
86
+
### 5.1.2. Sử dụng Lists như Hàng đợi \[`Queues`\]\([https://en.wikipedia.org/wiki/Queue\_\(abstract\_data\_type](https://en.wikipedia.org/wiki/Queue_%28abstract_data_type)\)\)
87
87
88
-
Hoàn toàn khả thi nếu sử dụng Lists như một Hàng đợi(Queues), nghĩa là ai vào trước sẽ ra trước \(“first-in, first-out”\); tuy nhiên, sẽ không hiệu quả. Trong khi việc thêm hay lấy ra phần tử cuối cùng của danh sách diễn ra nhanh chóng thì chèn hay lấy phần tử đầu tiên lại khó khăn và chậm chạp hơn \(bởi vì tất cả các thành phần đều phải dịch chuyển một bước\).
88
+
Hoàn toàn khả thi nếu sử dụng Lists như một Hàng đợi\(Queues\), nghĩa là ai vào trước sẽ ra trước \(“first-in, first-out”\); tuy nhiên, sẽ không hiệu quả. Trong khi việc thêm hay lấy ra phần tử cuối cùng của danh sách diễn ra nhanh chóng thì chèn hay lấy phần tử đầu tiên lại khó khăn và chậm chạp hơn \(bởi vì tất cả các thành phần đều phải dịch chuyển một bước\).
89
89
90
90
Để cài một queue, sử dụng [`collections.deque`](https://docs.python.org/3/library/collections.html#collections.deque) được thiết kế để nối hay rút từ cả hai phía. Ví dụ:>>>
91
91
@@ -102,9 +102,9 @@ Hoàn toàn khả thi nếu sử dụng Lists như một Hàng đợi(Queues), n
102
102
deque(['Michael', 'Terry', 'Graham'])
103
103
```
104
104
105
-
### 5.1.3. Danh sách tổng quát(Comprehensions)
105
+
### 5.1.3. Danh sách tổng quát\(Comprehensions\)
106
106
107
-
List comprehensions cung cấp cách tối giản để tạo ra một lists. Ứng dụng cơ bản là tạo ra danh sách mới chứa các phần tử là kết quả của một vài phép tính và được áp dụng cho mỗi thành phần của dãy số hay iterable, hoặc để tạo ra một phân dãy(subsequence) từ các phần tử thỏa mãn điều kiện nào đó.
107
+
List comprehensions cung cấp cách tối giản để tạo ra một lists. Ứng dụng cơ bản là tạo ra danh sách mới chứa các phần tử là kết quả của một vài phép tính và được áp dụng cho mỗi thành phần của dãy số hay iterable, hoặc để tạo ra một phân dãy\(subsequence\) từ các phần tử thỏa mãn điều kiện nào đó.
108
108
109
109
Ví dụ, gỉa định chúng ta muốn tạo ra danh sách các số chính phương, như:>>>
110
110
@@ -153,7 +153,7 @@ và nó tương tự:>>>
153
153
154
154
Chú ý thứ tự giống nhau của các câu lệnh [`for`](https://docs.python.org/3/reference/compound_stmts.html#for) and [`if`](https://docs.python.org/3/reference/compound_stmts.html#if) trong cả hai đoạn trích dẫn trên.
155
155
156
-
If the expression là một tập hợp(tuple) \(vd. the `(x, y)` in the previous example\), thì phải là ngoặc đơn nhé.>>>
156
+
If the expression là một tập hợp\(tuple\)\(vd. the `(x, y)` in the previous example\), thì phải là ngoặc đơn nhé.>>>
157
157
158
158
```text
159
159
>>> vec = [-4, -2, 0, 2, 4]
@@ -240,18 +240,18 @@ Nếu phân tích kỹ hơn thì là thế này:>>>
240
240
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
241
241
```
242
242
243
-
Trong thực tế, bạn nên ưu tiên dùng các hàm dựng sẵn(built-in functions) cho các biểu thức luồng phức tạp. Hàm [`zip()`](https://docs.python.org/3/library/functions.html#zip) trở nên rất đẹp trong trường hợp này:>>>
243
+
Trong thực tế, bạn nên ưu tiên dùng các hàm dựng sẵn\(built-in functions\) cho các biểu thức luồng phức tạp. Hàm [`zip()`](https://docs.python.org/3/library/functions.html#zip) trở nên rất đẹp trong trường hợp này:>>>
244
244
245
245
```text
246
246
>>> list(zip(*matrix))
247
247
[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]
248
248
```
249
249
250
-
Xem [Unpacking Argument Lists](https://docs.python.org/3/tutorial/controlflow.html#tut-unpacking-arguments) để biết thêm chi tiết vể dấu *
250
+
Xem [Unpacking Argument Lists](https://docs.python.org/3/tutorial/controlflow.html#tut-unpacking-arguments) để biết thêm chi tiết vể dấu \*
Có một cách để xóa một phần tử từ một danh sách bằng vị trí của nó thay vì là gía trị: Lệnh [`del`](https://docs.python.org/3/reference/simple_stmts.html#del). Cái này khác với phương thức `pop()` là nó có trả về gía trị của phần tử đó. Lệnh [`del`](https://docs.python.org/3/reference/simple_stmts.html#del) cũng có thể được sử dụng để loại bỏ các mảnh(slices) của danh sách hoặc hay xóa sạch toàn bộ danh sách \(Chúng tôi đã thực hiện việc này trước đó, bằng cách gán cho các slice một danh sách trống \). Ví dụ:>>>
254
+
Có một cách để xóa một phần tử từ một danh sách bằng vị trí của nó thay vì là gía trị: Lệnh [`del`](https://docs.python.org/3/reference/simple_stmts.html#del). Cái này khác với phương thức `pop()` là nó có trả về gía trị của phần tử đó. Lệnh [`del`](https://docs.python.org/3/reference/simple_stmts.html#del) cũng có thể được sử dụng để loại bỏ các mảnh\(slices\) của danh sách hoặc hay xóa sạch toàn bộ danh sách \(Chúng tôi đã thực hiện việc này trước đó, bằng cách gán cho các slice một danh sách trống \). Ví dụ:>>>
255
255
256
256
```text
257
257
>>> a = [-1, 1, 66.25, 333, 333, 1234.5]
@@ -272,11 +272,11 @@ Có một cách để xóa một phần tử từ một danh sách bằng vị t
272
272
>>> del a
273
273
```
274
274
275
-
Tham chiếu `a` sau đây là một sai lầm \(ít nhất cho tới khi nó được gán với một gía trị mới\). Chúng ta sẽ tìm kiếm cơ hội để [`del`](https://docs.python.org/3/reference/simple_stmts.html#del) tỏa sáng sau nhé.
275
+
Tham chiếu `a` sau đây là một sai lầm \(ít nhất cho tới khi nó được gán với một gía trị mới\). Chúng ta sẽ tìm kiếm cơ hội để [`del`](https://docs.python.org/3/reference/simple_stmts.html#del) tỏa sáng sau nhé.
276
276
277
277
## 5.3. Tập hợp và chuỗi
278
278
279
-
Rõ ràng lists và strings có nhiều thuộc tính chung, đơn cử indexing hay slicing operations. Chúng là hai ví dụ của kiểu dữ liệu chuỗi _sequence_\(xem [Sequence Types — list, tuple, range](https://docs.python.org/3/library/stdtypes.html#typesseq)\). Khi Python là một ngôn ngữ phát triển (evolving language), các kiểu sequence khác có thể từng được thêm vào. Ngoài ra còn có một kiểu sequence chuẩn ấy là: the_tuple_.
279
+
Rõ ràng lists và strings có nhiều thuộc tính chung, đơn cử indexing hay slicing operations. Chúng là hai ví dụ của kiểu dữ liệu chuỗi _sequence_\(xem [Sequence Types — list, tuple, range](https://docs.python.org/3/library/stdtypes.html#typesseq)\). Khi Python là một ngôn ngữ phát triển \(evolving language\), các kiểu sequence khác có thể từng được thêm vào. Ngoài ra còn có một kiểu sequence chuẩn ấy là: the_tuple_.
280
280
281
281
Một tuple chứa một số gía trị ngăn cách bởi dấu phẩy, ví dụ:>>>
282
282
@@ -301,7 +301,7 @@ TypeError: 'tuple' object does not support item assignment
301
301
([1, 2, 3], [3, 2, 1])
302
302
```
303
303
304
-
Như bạn đã thấy, khi ra đời, tuple luôn mang theo cặp ngoặc đơn (mình thường liên tưởng tới hình ảnh con rùa), để có thể thông dịch chính xác; chúng có thể có hoặc không có dấu ngoặc đơn khi là đầu vào, dù vậy thường thì chúng ta luôn cần tới đôi ngoặc đơn này \(nếu tuple là một phần của biểu thức lớn hơn\). Không thể gán các thành phần riêng lẻ của tuple, tuy nhiên việc tạo ra một tuple chứa nhiều đối tượng như lists thì là có thể.
304
+
Như bạn đã thấy, khi ra đời, tuple luôn mang theo cặp ngoặc đơn \(mình thường liên tưởng tới hình ảnh con rùa\), để có thể thông dịch chính xác; chúng có thể có hoặc không có dấu ngoặc đơn khi là đầu vào, dù vậy thường thì chúng ta luôn cần tới đôi ngoặc đơn này \(nếu tuple là một phần của biểu thức lớn hơn\). Không thể gán các thành phần riêng lẻ của tuple, tuy nhiên việc tạo ra một tuple chứa nhiều đối tượng như lists thì là có thể.
305
305
306
306
Tuy nhiên tuples có thể gần giống với lists, chúng được sử dụng trong nhiều tình huống khác nhau và cho nhiều mục đích khác nhau. Tuples là [bất biến](https://docs.python.org/3/glossary.html#term-immutable), và thường chứa các thành phần có thứ tự hỗn độn được tuy cập thông qua giải nén \(xem phần này sau\) hoặc indexing \(or even by attribute in the case of [`namedtuples`](https://docs.python.org/3/library/collections.html#collections.namedtuple)\). Lists có thể [biến đổi](https://docs.python.org/3/glossary.html#term-mutable), và các thành phần của chúng thường có trật tự, được truy cập bằng cách lặp qua mảng.
Copy file name to clipboardExpand all lines: 6.-modules.md
-4
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,3 @@
1
-
---
2
-
description: dinhquangphung0306@gmail.com
3
-
---
4
-
5
1
# 6. Modules
6
2
7
3
If you quit from the Python interpreter and enter it again, the definitions you have made \(functions and variables\) are lost. Therefore, if you want to write a somewhat longer program, you are better off using a text editor to prepare the input for the interpreter and running it with that file as input instead. This is known as creating a _script_. As your program gets longer, you may want to split it into several files for easier maintenance. You may also want to use a handy function that you’ve written in several programs without copying its definition into each program.
Copy file name to clipboardExpand all lines: 7.-input-and-output.md
-4
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,3 @@
1
-
---
2
-
description: tuanduy2312@gmail.com
3
-
---
4
-
5
1
# 7. Input and Output
6
2
7
3
There are several ways to present the output of a program; data can be printed in a human-readable form, or written to a file for future use. This chapter will discuss some of the possibilities.
Copy file name to clipboardExpand all lines: 8.-errors-and-exceptions.md
-4
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,3 @@
1
-
---
2
-
description: huuthuc997@gmail.com
3
-
---
4
-
5
1
# 8. Errors and Exceptions
6
2
7
3
Until now error messages haven’t been more than mentioned, but if you have tried out the examples you have probably seen some. There are \(at least\) two distinguishable kinds of errors: _syntax errors_ and _exceptions_.
0 commit comments