Sử dụng tuple ở đâu

Một phần của tài liệu Bài giảng ngôn ngữ pỵton (Trang 53)

Chương 6 Tuples

6.5. Sử dụng tuple ở đâu

Sử dụng tuple thay vì list được sử dụng trong kịch bản sau đây.

1. Sử dụng tuple thay vì list cho chúng ta một ý tưởng rõ ràng rằng dữ liệu tuple là hằng số và không được thay đổi.

2. Tuple có thể mơ phỏng từ điển mà khơng cần khóa. Hãy xem xét cấu trúc lồng nhau sau đây có thể được sử dụng như một từ điển.

[(101, "John", 22), (102, "Mike", 28), (103, "Dustin", 30)]

3. Tuple có thể được sử dụng làm chìa khóa trong từ điển do tính chất bất biến của nó.

6.6. List và Tuple

SN List Tuple

1 Sử dụng [] để chứa các phần tử.

Sử dụng () để chứa các phần tử.

2 Có thể thay đổi phần tử Không thể thay đổi phần tử 3 Độ dài thay đổi. Độ dài không thay đổi. 4 List này cung cấp nhiều chức

năng hơn tuple.

Tuple cung cấp ít chức năng hơn list.

5 List được sử dụng trong kịch bản mà chúng ta cần lưu trữ các bộ sưu tập đơn giản mà khơng có ràng buộc nào trong đó giá trị của các mục có thể được thay đổi.

Tuple được sử dụng trong trường hợp chúng ta cần lưu trữ các bộ sưu tập chỉ đọc, tức là, giá trị của các mục khơng thể thay đổi. Nó có thể được sử dụng làm chìa khóa trong từ điển.

6.7. Lồng List và Tuple

Chúng ta có thể lưu trữ listt bên trong tuple hoặc tuple bên trong list cho đến bất kỳ số cấp nào.

Ths. Nguyễn Văn Duy Trường đại học Cơng nghiệp Tp. Hồ Chí Minh

50

Bài giảng: Ngôn ngữ Python

1. Employees = [(101, "Ayush", 22), (102, "john", 29), (103, "james", 45), (104, "Ben ", 34)] 2. print("----Printing list----"); 3. for i in Employees: 4. print(i) 5. Employees[0] = (110, "David",22) 6. print();

7. print("----Printing list after modification----");

8. for i in Employees: 9. print(i) Output: ----Printing list---- (101, 'Ayush', 22) (102, 'john', 29) (103, 'james', 45) (104, 'Ben', 34)

----Printing list after modification---- (110, 'David', 22) (102, 'john', 29) (103, 'james', 45) (104, 'Ben', 34) 6.8. Một số ví dụ tubple 6.8.1. Ly mt phn t trong tuple >>> #create a tuple

>>> tuplex = ("w", 3, "r", "e", "s", "o", "u", "r", "c", "e") >>> print(tuplex)

('w', 3, 'r', 'e', 's', 'o', 'u', 'r', 'c', 'e') >>> #get item (4th element)of the tuple by index >>> item = tuplex[3]

>>> print(item)

e

>>> #get item (4th element from last)by index negative >>> item1 = tuplex[-4]

>>> print(item1)

u

>>>

6.8.2. Kim tra phn t có tn ti trong tuple

>>> #create a tuple

>>> tuplex = ("w", 3, "r", "e", "s", "o", "u", "r", "c", "e") >>> print(tuplex)

Ths. Nguyễn Văn Duy Trường đại học Cơng nghiệp Tp. Hồ Chí Minh

51

Bài giảng: Ngơn ngữ Python

('w', 3, 'r', 'e', 's', 'o', 'u', 'r', 'c', 'e') >>> #use in statement >>> print("r" in tuplex) True >>> print(5 in tuplex) False >>>

6.8.3. Chuyn List ti Tuple

>>> #create list

>>> listx = [5, 10, 7, 4, 15, 3] >>> print(listx)

[5, 10, 7, 4, 15, 3]

>>> #use the tuple() function built-in Python, passing as parameter the list

>>> tuplex = tuple(listx) >>> print(tuplex) (5, 10, 7, 4, 15, 3) >>> 6.8.4. Gii nén mt tuple trong mt s biến >>> #create a tuple >>> tuplex = 4, 8, 3 >>> print(tuplex) (4, 8, 3) >>> n1, n2, n3 = tuplex

>>> #unpack a tuple in variables >>> print(n1 + n2 + n3)

15

>>> #the number of variables must be equal to the number of items of the tuple

>>> n1, n2, n3, n4 = tuplex

Traceback (most recent call last): File "<stdin>", line 1, in <module>

ValueError: need more than 3 values to unpack

>>>

6.8.5. Thêm phần tử vào Tuple

>>> #create a tuple

>>> tuplex = (4, 6, 2, 8, 3, 1) >>> print(tuplex)

(4, 6, 2, 8, 3, 1)

>>> #tuples are immutable, so you can not add new elements >>> #using merge of tuples with the + operator you can add an element and it will create a new tuple

>>> tuplex = tuplex + (9,) >>> print(tuplex)

Ths. Nguyễn Văn Duy Trường đại học Cơng nghiệp Tp. Hồ Chí Minh

52

Bài giảng: Ngôn ngữ Python

(4, 6, 2, 8, 3, 1, 9)

>>> #adding items in a specific index

>>> tuplex = tuplex[:5] + (15, 20, 25) + tuplex[:5] >>> print(tuplex)

(4, 6, 2, 8, 3, 15, 20, 25, 4, 6, 2, 8, 3) >>> #converting the tuple to list

>>> listx = list(tuplex)

>>> #use different ways to add items in list >>> listx.append(30) >>> tuplex = tuple(listx) >>> print(tuplex) (4, 6, 2, 8, 3, 15, 20, 25, 4, 6, 2, 8, 3, 30) >>> 6.8.6. Clone mt Tuple

>>> from copy import deepcopy >>> #create a tuple

>>> tuplex = ("HELLO", 5, [], True) >>> print(tuplex)

('HELLO', 5, [], True)

>>> #make a copy of a tuple using deepcopy() function >>> tuplex_clone = deepcopy(tuplex) >>> tuplex_clone[2].append(50) >>> print(tuplex_clone) ('HELLO', 5, [50], True) >>> print(tuplex) ('HELLO', 5, [], True) >>> 6.8.9. Kim tra s ln lp li ca phn t >>> #create a tuple >>> tuplex = 2, 4, 5, 6, 2, 3, 4, 4, 7 >>> print(tuplex) (2, 4, 5, 6, 2, 3, 4, 4, 7)

>>> #return the number of times it appears in the tuple. >>> count = tuplex.count(4) >>> print(count) 3 >>> count = tuplex.count(7) >>> print(count) 1 >>> count = tuplex.count(5) >>> print (count) 1 >>>

Ths. Nguyễn Văn Duy Trường đại học Cơng nghiệp Tp. Hồ Chí Minh

53

Bài giảng: Ngôn ngữ Python

>>> #create a tuple

>>> tuplex = "w", 3, "d", "r", "e", "s", "l" >>> print(tuplex)

('w', 3, 'd', 'r', 'e', 's', 'l')

>>> #tuples are immutable, so you can not remove elements

>>> #using merge of tuples with the + operator you can remove an item and it will create a new tuple

>>> tuplex = tuplex[:2] + tuplex[3:] >>> print(tuplex)

('w', 3, 'r', 'e', 's', 'l') >>> #converting the tuple to list >>> listx = list(tuplex)

>>> #use different ways to remove an item of the list >>> listx.remove("l")

>>> #converting the tuple to list >>> tuplex = tuple(listx) >>> print(tuplex) ('w', 3, 'r', 'e', 's') >>> 6.8.11. Slice mt Tuple >>> #create a tuple >>> tuplex = (2, 4, 3, 5, 4, 6, 7, 8, 6, 1)

>>> #used tuple[start:stop] the start index is inclusive and the stop index

>>> _slice = tuplex[3:5] #is exclusive.

>>> print(_slice) (5, 4)

>>> #if the start index isn't defined, is taken from the beg inning of the tuple.

>>> _slice = tuplex[:6] >>> print(_slice)

(2, 4, 3, 5, 4, 6)

>>> #if the end index isn't defined, is taken until the end of the tuple

>>> _slice = tuplex[5:] >>> print(_slice)

(6, 7, 8, 6, 1)

>>> #if neither is defined, returns the full tuple >>> _slice = tuplex[:]

>>> print(_slice)

(2, 4, 3, 5, 4, 6, 7, 8, 6, 1)

>>> #The indexes can be defined with negative values >>> _slice = tuplex[-8:-4]

Ths. Nguyễn Văn Duy Trường đại học Cơng nghiệp Tp. Hồ Chí Minh

54

Bài giảng: Ngơn ngữ Python

(3, 5, 4, 6) >>>

6.8.12. Tìm chỉ mục của một phần tử

>>> #create a tuple

>>> tuplex = tuple("index tuple") >>> print(tuplex)

('i', 'n', 'd', 'e', 'x', ' ', 't', 'u', 'p', 'l', 'e') >>> #get index of the first item whose value is passed as parameter

>>> index = tuplex.index("p") >>> print(index)

8

>>> #define the index from which you want to search >>> index = tuplex.index("p", 5)

>>> print(index) 8

>>> #define the segment of the tuple to be searched >>> index = tuplex.index("e", 3, 6)

>>> print(index) 3

>>> #if item not exists in the tuple return ValueError Exception >>> index = tuplex.index("y")

Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: tuple.index(x): x not in tuple

>>>

6.8.13. Kích thước ca mt tuple

>>> tuplex = tuple("w3resource") #create a tuple >>> print(tuplex)

('w', '3', 'r', 'e', 's', 'o', 'u', 'r', 'c', 'e')

>>> #use the len() function to known the length of tuple. >>> print(len(tuplex))

10 >>>

6.8.14. Các toán t + và * trong tuple

>>> #create a tuple

>>> tuplex = 5, #create a tuple

>>> #The * operator allow repeat the items in the tuple >>> print(tuplex * 6)

(5, 5, 5, 5, 5, 5)

>>> #create a tuple with repeated items. >>> tuplex = (5, 10, 15) * 4

>>> print(tuplex)

Ths. Nguyễn Văn Duy Trường đại học Cơng nghiệp Tp. Hồ Chí Minh

55

Bài giảng: Ngôn ngữ Python

>>> #create three tuples

>>> tuplex1 = (3, 6, 9, 12, 15)

>>> tuplex2 = ("w", 3, "r", "s", "o", "u", "r", "c", "e") >>> tuplex3 = (True, False)

>>> #The + operator allow create a tuple joining two or more tuples

>>> tuplex = tuplex1 + tuplex2 + tuplex3 >>> print(tuplex)

(3, 6, 9, 12, 15, 'w', 3, 'r', 's', 'o', 'u', 'r', 'c', 'e', True, False)

>>>

6.8.15. Slice mt Tuple s dng tahm s step

>>> #create a tuple

>>> tuplex = tuple("HELLO WORLD") >>> print(tuplex)

('H', 'E', 'L', 'L', 'O', ' ', 'W', 'O', 'R', 'L', 'D')

>>> #step specify an increment between the elements to cut of the tuple.

>>> _slice = tuplex[2:9:2] #tuple[start:stop:step] >>> print(_slice)

('L', 'O', 'W', 'R')

>>> #returns a tuple with a jump every 3 items. >>> _slice = tuplex[::4]

>>> print(_slice) ('H', 'O', 'R')

>>> #when step is negative the jump is made back >>> _slice = tuplex[9:2:-4]

>>> print(_slice) ('L', ' ')

>>> #when step is negative the jump is made back >>> _slice = tuplex[9:2:-3] >>> print(_slice) ('L', 'W', 'L') >>> 6.8.16. Sa phn t trong Tuple >>> #create a tuple >>> tuplex = ("w", 3, "r", [], False) >>> print(tuplex) ('w', 3, 'r', [], False)

>>> # Tuple là bất biến, vì vậy bạn khơng thể sửa đổi các mục cũng là bất biến, như str, boolean, số, v.v.

>>> tuplex[3].append(200) >>> print(tuplex)

('w', 3, 'r', [200], False) >>>

Ths. Nguyễn Văn Duy Trường đại học Cơng nghiệp Tp. Hồ Chí Minh

56

Bài giảng: Ngơn ngữ Python

6.9. Bài tập

Ths. Nguyễn Văn Duy Trường đại học Cơng nghiệp Tp. Hồ Chí Minh

57

Bài giảng: Ngôn ngữ Python

Chương 7. Set 7.1. Khái niệm set trong Python

Một set là một bộ sưu tập khơng có thứ tự và khơng có chỉ mục. Trong Python, set được viết với dấu ngoặc nhọn.

Một số câu lệnh phổ biến:

<set> = set() <set>.add(<el>)

# Or: <set> |= {<el>}

<set>.update(<collection>) # Or: <set> |= <set>

<set> = <set>.union(<coll.>) # Or: <set> | <set>

<set> = <set>.intersection(<coll.>) # Or: <set> & <set>

<set> = <set>.difference(<coll.>) # Or: <set> - <set>

<set> = <set>.symmetric_difference(<coll.>) # Or: <set> ^ <set>

<bool> = <set>.issubset(<coll.>) # Or: <set> <= <set>

<bool> = <set>.issuperset(<coll.>) # Or: <set> >= <set>

<el> = <set>.pop()

# Raises KeyError if empty. <set>.remove(<el>)

# Raises KeyError if missing. <set>.discard(<el>)

# Doesn't raise an error.

7.2. Tạo set trong Python

Tạo set sử dụng dấu {}

1. Days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Su nday"}

2. print(Days)

3. print(type(Days))

4. print("looping through the set elements ... ")

5. for i in Days:

6. print(i) Output:

{'Friday', 'Tuesday', 'Monday', 'Saturday', 'Thursday', 'Sunday', 'Wednesday'}

<class 'set'>

looping through the set elements ... Friday

Ths. Nguyễn Văn Duy Trường đại học Cơng nghiệp Tp. Hồ Chí Minh

58

Bài giảng: Ngơn ngữ Python

Monday Saturday Thursday Sunday Wednesday

Tạo set sử dụng phương thức set()

1. Days = set(["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"])

2. print(Days)

3. print(type(Days))

4. print("looping through the set elements ... ")

5. for i in Days:

6. print(i) Output:

{'Friday', 'Wednesday', 'Thursday', 'Saturday', 'Monday', 'Tuesday', 'Sunday'}

<class 'set'>

looping through the set elements ... Friday Wednesday Thursday Saturday Monday Tuesday Sunday

7.3. Thao tác trên set trong Python

7.3.1. Thêm phn t

Python cung cấp phương thức add () có thể được sử dụng để thêm một số phần tử cụ thể vào set. Hãy xem xét ví dụ sau.

1. Months = set(["January","February", "March", "April", "May", "June"]) 2. print("\nprinting the original set ... ")

3. print(Months)

4. print("\nAdding other months to the set...");

5. Months.add("July"); 6. Months.add("August");

7. print("\nPrinting the modified set...");

8. print(Months)

9. print("\nlooping through the set elements ... ")

10. for i in Months:

11. print(i) Output:

printing the original set ...

{'February', 'May', 'April', 'March', 'June', 'January'} Adding other months to the set...

Ths. Nguyễn Văn Duy Trường đại học Cơng nghiệp Tp. Hồ Chí Minh

59

Bài giảng: Ngơn ngữ Python

{'February', 'July', 'May', 'April', 'March', 'August', 'June', 'January'}

looping through the set elements ... February July May April March August June January

Để thêm nhiều mục trong tập hợp, Python cung cấp phương thức update (). Hãy xem xét ví dụ sau.

1. Months = set(["January","February", "March", "April", "May", "June"]) 2. print("\nprinting the original set ... ")

3. print(Months)

4. print("\nupdating the original set ... ")

5. Months.update(["July","August","September","October"]); 6. print("\nprinting the modified set ... ")

7. print(Months);

Output:

printing the original set ...

{'January', 'February', 'April', 'May', 'June', 'March'} updating the original set ...

printing the modified set ...

{'January', 'February', 'April', 'August', 'October', 'May', 'June', 'July', 'September', 'March'}

7.3.2. Xóa phn t trong set

Python cung cấp phương thức disard () có thể được sử dụng để xóa các mục khỏi tập hợp. Hãy xem xét ví dụ sau.

1. Months = set(["January","February", "March", "April", "May", "June"]) 2. print("\nprinting the original set ... ")

3. print(Months)

4. print("\nRemoving some months from the set...");

5. Months.discard("January"); 6. Months.discard("May");

7. print("\nPrinting the modified set...");

8. print(Months)

9. print("\nlooping through the set elements ... ")

10. for i in Months:

11. print(i) Output:

Ths. Nguyễn Văn Duy Trường đại học Công nghiệp Tp. Hồ Chí Minh

60

Bài giảng: Ngơn ngữ Python

printing the original set ...

{'February', 'January', 'March', 'April', 'June', 'May'} Removing some months from the set...

Printing the modified set...

{'February', 'March', 'April', 'June'} looping through the set elements ... February

March April June

Python cũng cung cấp phương thức remove () để xóa các phần tử khỏi set. Xem xét ví dụ sau để loại bỏ các phần tử bằng phương thức remove ().

1. Months = set(["January","February", "March", "April", "May", "June"]) 2. print("\nprinting the original set ... ")

3. print(Months)

4. print("\nRemoving some months from the set...");

5. Months.remove("January"); 6. Months.remove("May");

7. print("\nPrinting the modified set...");

8. print(Months)

Output:

printing the original set ...

{'February', 'June', 'April', 'May', 'January', 'March'} Removing some months from the set...

Printing the modified set...

{'February', 'June', 'April', 'March'}

Chúng ta cũng có thể sử dụng phương thứcpop () để xóa phần tử này. Tuy nhiên, phương pháp này sẽ luôn loại bỏ phần tử cuối cùng. Xem xét ví dụ sau để xóa phần tử cuối cùng khỏi set.

1. Months = set(["January","February", "March", "April", "May", "June"]) 2. print("\nprinting the original set ... ")

3. print(Months)

4. print("\nRemoving some months from the set...");

5. Months.pop(); 6. Months.pop();

7. print("\nPrinting the modified set...");

8. print(Months)

Ths. Nguyễn Văn Duy Trường đại học Cơng nghiệp Tp. Hồ Chí Minh

61

Bài giảng: Ngôn ngữ Python

printing the original set ...

{'June', 'January', 'May', 'April', 'February', 'March'} Removing some months from the set...

Printing the modified set...

{'May', 'April', 'February', 'March'}

Python cung cấp phương thức clear () để xóa tất cả các phần tử khỏi set. Hãy xem xét ví dụ sau.

1. Months = set(["January","February", "March", "April", "May", "June"]) 2. print("\nprinting the original set ... ")

3. print(Months)

4. print("\nRemoving all the items from the set...");

5. Months.clear()

6. print("\nPrinting the modified set...")

7. print(Months)

Output:

printing the original set ...

{'January', 'May', 'June', 'April', 'March', 'February'} Removing all the items from the set...

Printing the modified set... set()

7.4. Sự khác biệt giữa discard() và remove()

Mặc dù thực tế là cả hai phương thức discard() và remove() cùng làm một nhiệm vụ. Tuy nhiên, chúng có sự khác biệt.

Nếu khóa bị xóa khỏi set mà khơng tồn tại trong tập hợp sử dụng disard (), python sẽ khơng đưa ra lỗi. Chương trình duy trì dịng điều khiển của nó.

Mặt khác, nếu phần tử bị xóa khỏi tập hợp mà khơng tồn tại trong tập hợp sử dụng remove (), python sẽ đưa ra lỗi.

Ví dụ:

1. Months = set(["January","February", "March", "April", "May", "June"]) 2. print("\nprinting the original set ... ")

3. print(Months)

4. print("\nRemoving items through discard() method...");

5. Months.discard("Feb"); #will not give an error although the key feb is not available i n the set

6. print("\nprinting the modified set...")

7. print(Months)

Ths. Nguyễn Văn Duy Trường đại học Cơng nghiệp Tp. Hồ Chí Minh

62

Bài giảng: Ngôn ngữ Python

9. Months.remove("Jan") #will give an error as the key jan is not available in the set.

10. print("\nPrinting the modified set...")

11. print(Months)

Output:

printing the original set ...

{'March', 'January', 'April', 'June', 'February', 'May'} Removing items through discard() method...

printing the modified set...

{'March', 'January', 'April', 'June', 'February', 'May'} Removing items through remove() method...

Traceback (most recent call last): File "set.py", line 9, in

Months.remove("Jan") KeyError: 'Jan'

7.5. Hợp của hai set

Hợp của hai set được tính bằng cách sử dụngtoán tử hoặc (|). Sự kết hợp của hai bộ chứa tất cả các phần tử có trong cả hai set. Xem xét ví dụ sau để tính liên kết của hai set.

Ví dụ 1:

1. Days1 = {"Monday","Tuesday","Wednesday","Thursday"} 2. Days2 = {"Friday","Saturday","Sunday"}

3. print(Days1|Days2) #printing the union of the sets

Output:

{'Friday', 'Sunday', 'Saturday', 'Tuesday', 'Wednesday', 'Monday', 'Thursday'}

Python cũng cung cấp phương thức union ()có thể được sử dụng để tính tốn kết hợp của hai set. Hãy xem xét ví dụ sau.

1. Days1 = {"Monday","Tuesday","Wednesday","Thursday"} 2. Days2 = {"Friday","Saturday","Sunday"}

3. print(Days1.union(Days2)) #printing the union of the sets

Output:

{'Friday', 'Monday', 'Tuesday', 'Thursday', 'Wednesday', 'Sunday', 'Saturday'}

7.6. Giao của hai set

Toán tử & (giao điểm) được sử dụng để tính tốn giao điểm của hai set trong

python. Giao điểm của hai set được đưa ra dưới dạng tập hợp các phần tử phổ biến trong cả hai bộ. Hãy xem xét ví dụ sau.

Ví dụ 1: sử dụng tốn tử &

1. set1 = {"Ayush","John", "David", "Martin"} 2. set2 = {"Steve","Milan","David", "Martin"}

Ths. Nguyễn Văn Duy Trường đại học Cơng nghiệp Tp. Hồ Chí Minh

63

Bài giảng: Ngơn ngữ Python

Output:

{'Martin', 'David'}

Ví dụ 2: sử dụng phương thức intersection() 1. set1 = {"Ayush","John", "David", "Martin"} 2. set2 = {"Steave","Milan","David", "Martin"}

3. print(set1.intersection(set2)) #prints the intersection of the two sets

Output:

{'Martin', 'David'}

7.7. Phương thức intersection_update()

Phương thức interection_update () sẽ loại bỏ các phần tử khỏi set ban đầu. Các phần tử giữ lại khơng có trong các set được chỉ định.

Phương thức intersection_update () khác với phương thức intersection() vì nó sửa đổi tập gốc bằng cách loại bỏ các phần tử không mong muốn, mặt khác, phương thức intersection() trả về một tập mới.

Hãy xem xét ví dụ sau. 1. a = {"ayush", "bob", "castle"} 2. b = {"castle", "dude", "emyway"} 3. c = {"fuson", "gaurav", "castle"} 4. a.intersection_update(b, c) 5. print(a)

Output: {'castle'}

7.8. Sự khác biệt giữa hai set

Sự khác biệt của hai set có thể được tính bằng cách sử dụng tốn tử phép trừ (-). Tập kết quả sẽ thu được bằng cách loại bỏ tất cả các phần tử khỏi tập 1 có trong tập 2.

Hãy xem xét ví dụ sau.

Ví dụ 1 sử dụng tốn tử subtraction ( - )

1. Days1 = {"Monday", "Tuesday", "Wednesday", "Thursday"} 2. Days2 = {"Monday", "Tuesday", "Sunday"}

3. print(Days1-Days2) #{"Wednesday", "Thursday" will be printed}

Output:

{'Thursday', 'Wednesday'}

Ví dụ 2 sử dụng phương thức difference()

1. Days1 = {"Monday", "Tuesday", "Wednesday", "Thursday"} 2. Days2 = {"Monday", "Tuesday", "Sunday"}

3. print(Days1.difference(Days2)) # prints the difference of the two sets Days1 and D

ays2 Output:

Ths. Nguyễn Văn Duy Trường đại học Cơng nghiệp Tp. Hồ Chí Minh

64

Bài giảng: Ngơn ngữ Python

7.9. So sánh hai set

Python cho phép chúng ta sử dụng các tốn tử so sánh ( ví dụ: <,>, <=,> =, == ) với các set. Chúng ta có thể kiểm tra xem một set là tập hợp con, tập hợp con hay tương đương với tập hợp khác.

Một phần của tài liệu Bài giảng ngôn ngữ pỵton (Trang 53)

Tải bản đầy đủ (PDF)

(72 trang)