Tuple trong Python là gì? [Hướng dẫn cho Người mới bắt đầu + Ví dụ] – trăn tuple là gì

Một bộ giá trị trong Python là một cấu trúc dữ liệu lưu trữ một nhóm các giá trị. Một tuple là bất biến. Nói cách khác, bạn không thể thay đổi các giá trị của nó.

Bạn đang xem : tuple python là gì

Trong Pyhton, một tuple có thể được sử dụng để lưu trữ một nhóm giá trị.

Bộ tuple là tập hợp các giá trị không thể thay đổi .

Điều này có nghĩa là không thể thêm, xóa hoặc cập nhật giá trị sau khi tạo.

Sử dụng các bộ giá trị nếu bạn muốn tạo một nhóm các giá trị không bao giờ thay đổi.

Để tạo một bộ giá trị bằng Python, hãy phân tách các giá trị bằng dấu phẩy.

Ví dụ:

 number = 1, 2, 3, 4, 5 

Tùy thuộc vào ngữ cảnh, đôi khi dấu ngoặc đơn được sử dụng xung quanh các bộ giá trị.

Ví dụ:

 số = (1, 2, 3, 4, 5) 

Việc truy cập giá trị của một bộ giá trị hoạt động giống như cách truy cập các giá trị của danh sách .

Ví dụ:

 số = 1, 2, 3, 4, 5
first_number = số [0]

print (first_number) 

Vòng qua một bộ tuple cũng hoạt động giống như cách lặp qua một danh sách:

 số = 1, 2, 3, 4, 5

cho số trong các số:
    in (số) 

Trong hướng dẫn này, bạn tìm hiểu mọi thứ bạn cần biết về các bộ giá trị trong Python. Lý thuyết được hỗ trợ với các ví dụ minh họa và tuyệt vời.

Hiểu về Tuples trong Python

Tuple là một trong những kiểu dữ liệu chính trong Python.

Một bộ tuple là một tập hợp dữ liệu bất biến và có thứ tự. Bạn không thể sửa đổi các mục của tuple sau khi tạo tuple.

Một bộ tuple có thể lưu trữ bất kỳ loại dữ liệu nào. Có thể lưu trữ các loại dữ liệu khác nhau vào cùng một bộ dữ liệu.

Để bắt đầu với các bộ giá trị trong Python, trước tiên chúng ta hãy tìm hiểu cách tạo một bộ giá trị.

Cách tạo Tuple trong Python

< / h3>

Trong Python, một tuple là một tập hợp các mục được phân tách bằng dấu phẩy.

Do đó, để tạo một bộ giá trị, hãy phân tách một nhóm giá trị bằng dấu phẩy.

Ví dụ: hãy tạo nhiều tên động vật:

 pet = "Cat", "Dog", "Hamster" 

Đôi khi, việc sử dụng dấu ngoặc đơn để tạo một bộ giá trị đôi khi rất hữu ích hoặc thậm chí được yêu cầu.

Ví dụ: hãy tạo cùng một bộ giá trị với dấu ngoặc đơn xung quanh nó:

 động vật = ("Lợn", "Voi", "Chuột túi") 

Tuples tương tự như danh sách khi nói đến việc truy cập các phần tử.

Nhưng có một số điểm khác biệt chính giữa danh sách và bộ giá trị.

Điểm khác biệt chính là bạn không thể sửa đổi một bộ tuple sau khi được tạo.

Điều này đưa chúng ta đến một điểm quan trọng: Sử dụng bộ giá trị khi xử lý dữ liệu được cho là giữ nguyên.

Nếu bạn thấy mình đang cố gắng sửa đổi một bộ giá trị theo bất kỳ cách nào, bạn nên sử dụng một danh sách để thay thế.

Tiếp theo, hãy xem xét kỹ hơn một trường hợp mà bạn nên sử dụng dấu ngoặc đơn khi tạo các bộ giá trị trong Python.

Tuple có dấu ngoặc đơn trong Python

Đối với hầu hết các phần, bạn không cần sử dụng dấu ngoặc đơn xung quanh một bộ giá trị trong Python.

Tuy nhiên, bạn có thể sử dụng dấu ngoặc đơn để tách bộ mã khỏi mã xung quanh nếu cần.

Ngoài ra, nếu bạn có một hàm sử dụng một tuple làm đối số, bạn cần sử dụng dấu ngoặc đơn.

Điều này là do nếu không, hàm nghĩ rằng bạn đã cung cấp cho nó n đối số, thay vì một đối số là một bộ giá trị n .

Để chứng minh, hãy tạo một hàm in một điểm 3D được biểu thị bằng một bộ tuple và gọi nó bằng một bộ tọa độ:

 def show (tọa độ):
    x, y, z = tọa độ
    print (f "Điểm nằm tại ({x}, {y}, {z})")

# Gọi hàm bằng một bộ
hiển thị ((4, 2, 7)) 

Đầu ra:

 Điểm ở (4, 2, 7) 

Nếu bạn gọi hàm này mà không có dấu ngoặc đơn, trình thông dịch Python sẽ nghĩ rằng bạn đang chuyển nó 3 đối số riêng biệt:

 hiển thị (4, 2, 7) 

Điều này dẫn đến lỗi sau:

 TypeError: show () nhận 1 đối số vị trí nhưng 3 đối số đã được đưa ra 

Lỗi nói lên tất cả. Bạn đang cố cung cấp cho hàm 3 đối số riêng biệt, mặc dù hàm chỉ chấp nhận một đối số.

Đây là một ví dụ về trường hợp bắt buộc phải sử dụng dấu ngoặc đơn với một bộ giá trị.

Tại thời điểm này, bạn đã biết cách tạo bộ mã có và không có dấu ngoặc đơn.

Hơn nữa, bạn hiểu tại sao đôi khi cần sử dụng dấu ngoặc đơn xung quanh một bộ giá trị.

Tiếp theo, hãy chuyển sang xử lý các bộ giá trị.

Chúng ta sẽ bắt đầu bằng cách xem xét cách truy cập các phần tử của một bộ tuple.

Cách truy cập các phần tử của Tuple

< / h3>

Khi bạn lưu trữ các phần tử ở đâu đó, bạn đương nhiên muốn có thể truy cập chúng một cách dễ dàng.

Nếu bạn đã làm việc với danh sách trước đây, bạn biết rằng tất cả những gì bạn cần làm là biết chỉ mục của phần tử và sử dụng toán tử dấu ngoặc vuông:

 items [0] # trả về phần tử đầu tiên trong danh sách 

Việc truy cập các giá trị tuple giống với điều này.

Tương tự như danh sách, mỗi mục có một chỉ mục duy nhất bắt đầu từ số không.

Để truy cập một mặt hàng ở một chỉ mục cụ thể của một bộ, bạn cần biết chỉ mục của mặt hàng đó.

Điều này hoạt động giống hệt như cách truy cập các phần tử danh sách.

  • Chỉ định chỉ mục của phần tử.
  • Sử dụng toán tử dấu ngoặc vuông và chuyển chỉ mục làm đối số.

Ví dụ: hãy tạo một bộ số và truy cập vào số đầu tiên của nó:

 số = 1, 2, 3, 4, 5

# Số đầu tiên ở chỉ số 0.
first_number = số [0]

print (first_number) 

Đầu ra:

 1 

Đây là cách tiếp cận cơ bản nhất để truy cập các phần tử tuple.

Tuy nhiên, các bộ giá trị cũng hỗ trợ lập chỉ mục phủ định, trong đó chỉ mục bắt đầu từ -1 từ phía bên phải.

Lập chỉ mục phủ định của Tuples

Ngoài chỉ mục thông thường, mỗi mục có một chỉ mục phủ định được liên kết với nó.

Điều này giúp việc truy cập bộ tuple từ “đầu bên kia” trở nên thuận tiện hơn.

Tính năng này cũng hoạt động theo cách tương tự đối với danh sách.

Ví dụ: để truy cập phần tử cuối cùng của bộ tuple, bạn có thể sử dụng chỉ mục phủ định:

 số = 1, 2, 3, 4, 5
last_number = số [-1]

print (last_number) 

Và đầu ra là số cuối cùng trong bộ tuple:

 5 

Giờ bạn đã hiểu cách truy cập các phần tử tuple, hãy xem những loại phần tử nào bạn có thể chèn vào một tuple.

Tuples hỗ trợ loại dữ liệu nào trong Python

< / h3>

Tuples hỗ trợ bất kỳ loại dữ liệu nào.

Nói cách khác, bạn có thể chèn bất kỳ đối tượng Python nào vào một bộ tuple.

Hơn nữa, bạn có thể lưu trữ nhiều loại dữ liệu khác nhau vào cùng một bộ dữ liệu nếu bạn muốn.

Ví dụ:

 t1 = 1, 2, 3
t2 = "Mèo", 2, 3, "Chó"
t3 = lambda x: x ** 2, print, "Something", 2,41 

Mặc dù có thể lưu trữ các loại dữ liệu khác nhau trong cùng một bộ dữ liệu, nhưng điều này không thực tế.

Thông thường, bạn muốn tạo một bộ giá trị để lưu trữ các giá trị liên quan sẽ được giữ nguyên.

Do đó, có thể gây ra nhiều nhầm lẫn nếu bạn lưu trữ các loại dữ liệu khác nhau vào cùng một bộ dữ liệu.

Vì vậy, hãy tránh xa nó.

Bây giờ bạn đã hiểu cơ bản về các bộ giá trị trong Python.

Tiếp theo, hãy quay lại truy cập các phần tử tuple để xem một cách sử dụng nâng cao hơn bao giờ hết được gọi là cắt.

Tuple Slicing trong Python

Việc cắt lát cho phép bạn truy cập vào một tập hợp con của một bộ tuple.

Việc cắt lát tuân theo một trong các cú pháp sau:

 [start: stop]
[start: stop: stepize] 

Ở đâu:

  • start chỉ định chỉ mục bắt đầu.
  • dừng chỉ định chỉ mục của phần tử cuối cùng trong phạm vi (không bao gồm chỉ mục kết thúc) .
  • kích thước bước là số bước cần bước qua trong phạm vi.

Để tìm hướng dẫn đầy đủ về cách cắt, vui lòng đọc hướng dẫn toàn diện này .

Ví dụ: hãy tạo một bộ số và truy cập vào 3 số đầu tiên:

 số = 1, 2, 3, 4, 5

phần = số [0: 3]
in (một phần) 

Đầu ra:

 (1, 2, 3) 

Bạn cũng có thể sử dụng lập chỉ mục phủ định để nhận một loạt giá trị từ một bộ giá trị.

Ví dụ: hãy lấy hai số cuối cùng từ một bộ giá trị:

 số = 1, 2, 3, 4, 5

phần = số [-2:]
in (một phần) 

Đầu ra:

 (4, 5) 

Tiếp theo, hãy chuyển sang các tác vụ phổ biến hơn liên quan đến các bộ giá trị trong Python.

Cách sắp xếp Tuple trong Python

< / h3>

Vì bộ tuple là một tập hợp bất biến, bạn không thể sắp xếp nó.

Tuy nhiên, hàm tích hợp sẵn sorted () có thể được gọi trên một bộ giá trị. Điều này tạo ra một phiên bản được sắp xếp của bộ tuple dưới dạng danh sách .

Ví dụ:

 số = 7, 5, 2, 1, 3, 2, 10
số = đã sắp xếp (số)

in (số) 

Đầu ra:

 [1, 2, 2, 3, 5, 7, 10] 

Bạn có thể chuyển đổi danh sách trở lại thành một bộ bằng cách gọi hàm tuple () trên đó.

Xin lưu ý, nếu bạn muốn sắp xếp một bộ giá trị, bạn không nên sử dụng bộ mã số ngay từ đầu. Một bộ tuple không có nghĩa là sẽ được thay đổi sau khi được tạo.

Tiếp theo, hãy xem cách bạn có thể lặp lại qua một bộ.

Cách lặp qua Tuple trong Python

Bạn có thể lặp qua một bộ giá trị giống như cách bạn lặp qua một danh sách trong Python.

Ví dụ: hãy sử dụng vòng lặp for để in ra các mục của một bộ tuple:

 số = 1, 2, 3, 4, 5

cho số trong các số:
    in (số) 

Đầu ra:

 1
2
3
4
5 

Và tất nhiên, bạn cũng có thể sử dụng vòng lặp while:

 số = 1, 2, 3, 4, 5

i = 0
trong khi tôi & lt; len (số):
    in (số [i])
    i + = 1 

Đầu ra:

 1
2
3
4
5 

Cách xóa một phần tử trong Tuple trong Python

Như bạn đã học nhiều lần rồi, tuple là một tập hợp các giá trị bất biến.

Do đó, bạn không thể xóa trực tiếp một phần tử của bộ tuple.

Nếu bạn muốn xóa một giá trị khỏi một bộ giá trị, tức là ngay từ đầu, bạn đã sử dụng sai loại dữ liệu.

Sử dụng một danh sách để thay thế.

Dù sao, nếu bạn thực sự, thực sự muốn xóa một giá trị khỏi một tuple:

  1. Chuyển đổi bộ giá trị thành một danh sách.
  2. Xóa giá trị.
  3. Chuyển đổi < / strong> nó trở lại một tuple.

Dưới đây là một ví dụ về cách xóa giá trị đầu tiên khỏi một bộ giá trị:

 số = 1, 2, 3, 4, 5

# 1. Chuyển đổi tuple thành một danh sách
number_list = list (số)

# 2. Xóa elemenet đầu tiên
number_list.pop (0)

# 3. Chuyển đổi danh sách trở lại thành một bộ
số = tuple (danh sách số)

in (số) 

Nhưng như bạn có thể thấy, điều này không thực tế.

Thay vào đó, bạn nên sử dụng một danh sách.

Cách thêm phần tử vào Tuple trong Python

Vì một tuple là một tập hợp bất biến, bạn không thể thêm các phần tử vào nó.

Nếu bạn rơi vào tình huống muốn thêm các phần tử vào một bộ, bạn nên sử dụng một danh sách để thay thế.

Dù sao, nếu bạn muốn thêm một giá trị mới vào một bộ giá trị, bạn cần tạo một bộ giá trị mới từ các mục gốc và các mục mới.

Để làm điều này:

  • Thêm dấu ngoặc đơn xung quanh mục mới bằng dấu phẩy ở cuối (để biến nó thành một bộ).
  • Nối bộ mới với phần cuối của bộ ban đầu để tạo bộ mới với bộ mới giá trị

Ví dụ:

 số = 1, 2

# tạo một bộ giá trị mới với giá trị mới và gán nó cho bộ giá trị ban đầu
số = số + (3,)

in (số) 

Đầu ra:

 (1, 2, 3) 

Cho đến nay, chúng tôi đã nói rất nhiều về các bộ giá trị. Bạn cũng đã thấy chúng có liên quan mật thiết với danh sách Python như thế nào.

Do đó, hướng dẫn này sẽ không đầy đủ nếu không có so sánh các bộ giá trị và danh sách kỹ lưỡng hơn.

Tuples vs Lists trong Python

Nếu có một điểm khác biệt mà bạn cần biết, đó là khả năng thay đổi.

Một tuple là bất biến, nghĩa là không thể thay đổi.

Một danh sách có thể thay đổi, tức là có thể thay đổi.

Dưới đây là một số điểm khác biệt chính khác giữa danh sách và bộ dữ liệu trong Python:

Danh sách Tuple MutableImmutableLooping tốn thời gianLooping nhanh

Hãy thảo luận ngắn gọn về những điểm khác biệt này để tìm hiểu ý nghĩa thực sự của chúng.

Tính đột biến

Tuples là một bộ sưu tập vật phẩm bất biến.

Danh sách là một tập hợp các mục có thể thay đổi.

Nói cách khác, bạn có thể sửa đổi danh sách sau khi tạo. Nhưng bạn không thể sửa đổi một tuple sau khi tạo.

Bạn đã thấy một loạt các ví dụ về những điều này. Ví dụ: bạn không thể thêm hoặc xóa các phần tử khỏi một bộ.

Tuples nhanh hon so với Danh sách trong Python

Bộ nhớ được lưu trữ trong một khối bộ nhớ.

Vì một tuple là bất biến nên không cần phải dành thêm dung lượng cho các mục mới vì sẽ không bao giờ có một bộ.

Nhưng đối với một danh sách, đây không phải là trường hợp.

Danh sách có thể thay đổi, vì vậy, danh sách cần dành thêm một số không gian cho các phần tử mới có thể có.

Đây là điều khiến việc xử lý các bộ giá trị nhanh hơn một chút so với danh sách.

Sự khác biệt về cú pháp

Như bạn đã biết, cú pháp để tạo một bộ giá trị khác với việc tạo một danh sách.

Với một danh sách, bạn cần sử dụng dấu ngoặc vuông, trong khi với các bộ giá trị, bạn không cần bất kỳ thứ gì (hoặc bạn có thể sử dụng dấu ngoặc nếu cần).

Ví dụ:

 number_tuple = 1, 2, 3, 4, 5
number_list = [1, 2, 3, 4, 5] 

Thao tác chung

Một danh sách hỗ trợ tất cả các loại hoạt động được tích hợp sẵn, chẳng hạn như đẩy hoặc bật lên.

Vì tuple là một tập hợp bất biến, nhiều thao tác liệt kê hỗ trợ không được tuple hỗ trợ.

Ví dụ: bạn có thể thêm và xóa các phần tử của danh sách bằng các phương thức tích hợp sẵn pop append :

 số = [1, 2, 3]

number.pop (0)
number.append (4)

in (số) 

Đầu ra:

 [2, 3, 4] 

Nhưng một tuple không hỗ trợ những điều này.

Kết luận

Hôm nay, bạn đã biết tuple trong Python là gì.

Tóm lại, tuple là một tập hợp các mục không thể thay đổi. Bạn không thể thay đổi các giá trị của một bộ giá trị sau khi tạo một bộ giá trị.

Sử dụng bộ giá trị rất thông minh nếu bạn muốn đảm bảo một nhóm giá trị không đổi.

Để tạo một bộ giá trị, hãy phân tách một nhóm giá trị bằng dấu phẩy.

Ví dụ:

 number = 1, 2, 3, 4, 5 

Việc truy cập và lặp qua các giá trị của một bộ tuple hoạt động giống như cách đối với danh sách:

 số = 1, 2, 3

# Nhận số đầu tiên
first_number = số [0]


# Vòng qua bộ tuple và in các mục của nó
cho số trong các số:
    in (số) 

Nhưng vì bản chất một tuple là bất biến, bạn không thể trực tiếp thêm, cập nhật hoặc xóa các giá trị khỏi nó.

Cảm ơn bạn đã đọc. Tôi hy vọng bạn sẽ thích nó.

Chúc bạn viết mã vui vẻ!

Đọc thêm

50 câu hỏi phỏng vấn Python có câu trả lời

50+ Từ ngữ phát triển web


Xem thêm những thông tin liên quan đến chủ đề trăn tuple là gì

Python Tuples | Python Tuples Tutorial | Python Tutorial | Python Programming | Simplilearn

  • Tác giả: Simplilearn
  • Ngày đăng: 2019-01-25
  • Đánh giá: 4 ⭐ ( 4203 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: This Python tuples tutorial will help you understand the concept of tuples in Python. It will also take you through some of the important concepts in Python including creating tuples, what are the differences between list and tuple, different operations on a tuple, built-in function with a tuple, how to convert a list into a tuple, defining tuple inside a list and vice versa using hand-on simple Python programming which helps you to write intermediate level programs using tuples in Python. Now, let us get started and understand Python tuples in detail

    🔥Free Python Course: https://www.simplilearn.com/learn-python-basics-free-course-skillup?utm_campaign=PythonTuples&utm_medium=Description&utm_source=youtube

    Below topics are explained in this Python tuples tutorial:
    1. What are tuples in Python? (00:38)
    2. Creating tuples (02:16)
    3. Difference between tuple and list (06:29)
    4. Accessing elements in a tuple (06:56)
    5. Operations on tuples (08:05)
    6. Built-in functions with tuples
    7. Converting lists into tuples (16:49)
    8. Defining tuple inside a list (17:50)
    9. Defining list inside a tuple (19:17)
    10. Exercise (21:13)

    To learn more about Python Programming, subscribe to our YouTube channel: https://www.youtube.com/user/Simplilearn?sub_confirmation=1

    To access the slides, click here: https://www.slideshare.net/Simplilearn/python-tuples-python-tuples-tutorial-python-tutorial-python-programming-simplilearn/Simplilearn/python-tuples-python-tuples-tutorial-python-tutorial-python-programming-simplilearn

    Watch more videos on Python Training: https://www.youtube.com/watch?v=syH5OneJb-U&index=2&list=PLEiEAq2VkUUKoW1o-A-VEmkoGKSC26i_I

    pythontutorial pythontuples pythonprogrammingforbeginners pythontraining pythontutorialforbeginners numpypythontutorial pythonsimplilearn simplilearn

    Simplilearn’s Python Training Course is an all-inclusive program that will introduce you to the Python development language and expose you to the essentials of object-oriented programming, web development with Django and game development. Python has surpassed Java as the top language used to introduce U.S. students to programming and computer science. This course will give you hands-on development experience and prepare you for a career as a professional Python programmer.

    What is this course about?
    The All-in-One Python course enables you to become a professional Python programmer. Any aspiring programmer can learn Python from the basics and go on to master web development & game development in Python. Gain hands on experience creating a flappy bird game clone & website functionalities in Python.
    What are the course objectives?

    By the end of this online Python training course, you will be able to:
    1. Internalize the concepts & constructs of Python
    2. Learn to create your own Python programs
    3. Master Python Django & advanced web development in Python
    4. Master PyGame & game development in Python
    5. Create a flappy bird game clone

    The Python training course is recommended for:
    1. Any aspiring programmer can take up this bundle to master Python
    2. Any aspiring web developer or game developer can take up this bundle to meet their training needs

    Learn more at: https://www.simplilearn.com/mobile-and-software-development/python-development-training?utm_campaign=Python-Tuples-Tutorial-wRC4H-k57eg&utm_medium=Tutorials&utm_source=youtube

    For more information about Simplilearn courses, visit:
    – Facebook: https://www.facebook.com/Simplilearn
    – Twitter: https://twitter.com/simplilearn
    – LinkedIn: https://www.linkedin.com/company/simplilearn/
    – Website: https://www.simplilearn.com

    Get the Android app: http://bit.ly/1WlVo4u
    Get the iOS app: http://apple.co/1HIO5J0

Tuple trong Python là gì? Kiến thức cơ bản về Tuple trong Python

  • Tác giả: gitiho.com
  • Đánh giá: 5 ⭐ ( 2155 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tuple là bộ dữ liệu trong Python gồm một dãy các giá trị (sequence), chứa nhiều phần tử (element). Hãy cùng tìm hiểu kiến thức cơ bản về đối tượng này ngay nhé.

Lớp Tuple trong C#

  • Tác giả: comdy.vn
  • Đánh giá: 4 ⭐ ( 9453 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tuple và ValueTuple là hai cấu trúc dữ liệu rất tiện lợi trong C#. Bài viết sẽ hướng dẫn bạn các sử dụng chúng.

Gỗ trăn là gì? Tìm hiểu về đặc tính và công dụng của gỗ trăn

  • Tác giả: noithatduongdai.vn
  • Đánh giá: 4 ⭐ ( 3074 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Gỗ trăn là gì? Đây là câu hỏi được nhiều người quan tâm hơn. Cùng Nội Thất Đương Đại tìm hiểu về gỗ trăn qua bài viết này nhé.

7 loài trăn khổng lồ “đáng gờm” trên Trái đất

  • Tác giả: kenh14.vn
  • Đánh giá: 5 ⭐ ( 9915 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bạn nên “cao chạy xa bay” khi chạm trán với chúng…

Tuple là gì trong Python

  • Tác giả: laptrinhcanban.com
  • Đánh giá: 5 ⭐ ( 9273 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Cùng tìm hiểu tuple trong python. Bạn sẽ biết tuple là gì, sự khác nhau giữa List và Tuple trong Python cũng như cách sử dụng Tuple trong Python sau bài học này.

Cách sử dụng Tuples trong lập trình với Python

  • Tác giả: t3h.edu.vn
  • Đánh giá: 5 ⭐ ( 5572 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Cùng tìm hiểu về khái niệm Tuples trong Python cũng như những tính năng vượt trội của kiểu dữ liệu này trong quá trình làm việc với Python bạn nhé!

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Làm cách nào để thay đổi kích thước hình ảnh trong HTML? - thay đổi kích thước của hình ảnh trong html

By ads_php