Skip to content

Commit e366131

Browse files
khanhnnvngitbook-bot
authored andcommittedMay 15, 2018
GitBook: [master] 11 pages modified
1 parent 2ef88e9 commit e366131

10 files changed

+317
-193
lines changed
 

‎10.-brief-tour-of-the-standard-library.md

-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
---
2-
description: khoanguyen07ts@gmail.com
3-
---
4-
51
# 10. Brief Tour of the Standard Library
62

73

‎12.-virtual-environments-and-packages.md

-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
---
2-
description: doanhien4392@gmail.com
3-
---
4-
51
# 12. Virtual Environments and Packages
62

73
### 12.1. Introduction
File renamed without changes.

‎3.-an-informal-introduction-to-python.md

+301-153
Large diffs are not rendered by default.

‎4.-more-control-flow-tools.md

-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
---
2-
description: minh.nguyentri.95@gmail.com
3-
---
4-
51
# 4. More Control Flow Tools
62

73

‎5.-data-structures.md

+15-15
Original file line numberDiff line numberDiff 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
88

99
## 5.1. Nhiều hơn về Lists
1010

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:
1212

1313
`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_\)
1414

@@ -22,7 +22,7 @@ Loại bỏ phần tử có vị trí _i_ và trả về nó. Nếu không có v
2222

2323
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_\]\]\)
2424

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.
2626

2727
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_\)
2828

@@ -61,9 +61,9 @@ Một ví dụ làm rõ các phương thức trên:>>>
6161

6262
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.
6363

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)\)\)
6565

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ụ:>>>
6767

6868
```text
6969
>>> 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
8383
[3, 4]
8484
```
8585

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)\)\)
8787

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\).
8989

9090
Để 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ụ:>>>
9191

@@ -102,9 +102,9 @@ Hoàn toàn khả thi nếu sử dụng Lists như một Hàng đợi(Queues), n
102102
deque(['Michael', 'Terry', 'Graham'])
103103
```
104104

105-
### 5.1.3. Danh sách tổng quát(Comprehensions)
105+
### 5.1.3. Danh sách tổng quát\(Comprehensions\)
106106

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 đó.
108108

109109
Ví dụ, gỉa định chúng ta muốn tạo ra danh sách các số chính phương, như:>>>
110110

@@ -153,7 +153,7 @@ và nó tương tự:>>>
153153

154154
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.
155155

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é.>>>
157157

158158
```text
159159
>>> vec = [-4, -2, 0, 2, 4]
@@ -240,18 +240,18 @@ Nếu phân tích kỹ hơn thì là thế này:>>>
240240
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
241241
```
242242

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:>>>
244244

245245
```text
246246
>>> list(zip(*matrix))
247247
[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]
248248
```
249249

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 \*
251251

252252
## 5.2. Câu lệnh [`del`](https://docs.python.org/3/reference/simple_stmts.html#del)
253253

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ụ:>>>
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ụ:>>>
255255

256256
```text
257257
>>> 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
272272
>>> del a
273273
```
274274

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é.
276276

277277
## 5.3. Tập hợp và chuỗi
278278

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_.
280280

281281
Một tuple chứa một số gía trị ngăn cách bởi dấu phẩy, ví dụ:>>>
282282

@@ -301,7 +301,7 @@ TypeError: 'tuple' object does not support item assignment
301301
([1, 2, 3], [3, 2, 1])
302302
```
303303

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ể.
305305

306306
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.
307307

‎6.-modules.md

-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
---
2-
description: dinhquangphung0306@gmail.com
3-
---
4-
51
# 6. Modules
62

73
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.

‎7.-input-and-output.md

-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
---
2-
description: tuanduy2312@gmail.com
3-
---
4-
51
# 7. Input and Output
62

73
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.

‎8.-errors-and-exceptions.md

-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
---
2-
description: huuthuc997@gmail.com
3-
---
4-
51
# 8. Errors and Exceptions
62

73
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_.

‎SUMMARY.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@
1414
* [10. Brief Tour of the Standard Library](10.-brief-tour-of-the-standard-library.md)
1515
* [11. Brief Tour of the Standard Library — Part II](11.-brief-tour-of-the-standard-library-part-ii.md)
1616
* [12. Virtual Environments and Packages](12.-virtual-environments-and-packages.md)
17-
* [13. What Now?](untitled.md)
17+
* [13. What Now?](13.-what-now.md)
1818

0 commit comments

Comments
 (0)
Please sign in to comment.