Có phải các thùng chứa biến Python không?

Làm ơn đăng nhập để tiếp tục

Đăng nhập

Bài 7 trên 15 • 17 lượt ủng hộ • 11. 17 phút

Các biến không phải là bộ chứa lưu trữ trong python, Loại bất biến và loại có thể thay đổi

Crack lập trình với Unacademy

Nhận đăng ký và truy cập các khóa học trực tiếp và được ghi lại không giới hạn từ các nhà giáo dục tốt nhất của Ấn ĐộTìm hiểu thêm

Mở tủ bếp của bạn. Trong đó, bạn sẽ tìm thấy nhiều phương tiện lưu trữ thực phẩm. Hộp các tông, Ziploc, Tupperware, túi nhựa được buộc kín bằng dây buộc xoắn và trọng tâm thảo luận của chúng tôi, lọ đựng. Bộ nhớ máy tính giống như một cái tủ chứa đầy lọ lưu trữ. Sử dụng Python, bạn đặt các giá trị vào các lọ và sau đó bạn đặt một nhãn, một biến, trên lọ, để bạn có thể tìm thấy giá trị của mình sau này

Bình lưu trữ là vị trí của chúng tôi trong ký ức, nơi tôi muốn giữ bơ đậu phộng và thạch của mình. Giả sử tôi có giá trị của bơ đậu phộng, 5. Chúng ta có thể xem vị trí địa chỉ bộ nhớ của giá trị đó bằng hàm id[]

>>> id[5]
10188960

Hãy nghĩ về con số dài đó như một lọ lưu trữ

Tôi có thể dán nhãn lên lọ

>>> peanut_butter = 5
>>> peanut_butter
5

Tôi có thể kiểm tra vị trí của giá trị được liên kết với Peanut_butter bằng cách chuyển biến của tôi tới hàm id[]

>>> id[peanut_butter]
10188960

Tôi cũng có thể dán nhiều hơn một nhãn lên lọ

>>> crunchy = 5
>>> crunchy
5

Và kiểm tra vị trí của nó trong bộ nhớ

>>> id[crunchy]
10188960

Chúng ta có thể gán biến cho các biến khác. Trước tiên hãy thay đổi giá trị của giòn

>>> crunchy = 7
>>> peanut_butter = crunchy
>>> peanut_butter
7
>>> crunchy
7

Xem điều gì sẽ xảy ra nếu chúng ta thay đổi giòn thành 5

>>> crunchy = 5
>>> crunchy
5
>>> peanut_butter
7

Biến Peanut_butter của chúng tôi không thay đổi. Đó là bởi vì khi chúng tôi chỉ định nó giòn, như thế này

>>> peanut_butter = crunchy

Chúng tôi đã chuyển cho nó giá trị liên quan đến độ giòn, là 7. Hũ lưu trữ số 7 của chúng ta ở đâu trên kệ?

________số 8

Giả sử tôi có năm muỗng bơ đậu phộng trong hũ đựng của mình

>>> pb = 5

Thạch thường được đựng trong hộp nhỏ hơn, vì vậy giả sử tôi có ba muỗng

>>> peanut_butter = 5
>>> peanut_butter
5
0

Tôi có bao nhiêu muỗng bơ đậu phộng và thạch?

>>> peanut_butter = 5
>>> peanut_butter
5
1

Hãy gán câu lệnh đó cho một biến

>>> peanut_butter = 5
>>> peanut_butter
5
2

Tất cả những ẩn dụ về thức ăn này đang khiến tôi đói. Hãy làm bánh sandwich. Nếu chúng ta sử dụng hai muỗng bơ đậu phộng và một muỗng thạch, chúng ta cần gán giá trị mới cho các biến của mình bằng toán tử trừ như thế này

Gán tên biến trong Python dễ như đặt tên biến ở bên trái dấu bằng [=]. Nhưng điều đó có nghĩa là những gì bạn nghĩ nó có nghĩa ??

Biến là thứ đầu tiên bạn sử dụng khi bắt đầu lập trình. Đó là điều đầu tiên bạn học trong bất kỳ ngôn ngữ lập trình nào. Cú pháp gán giá trị cho biến khác ngôn ngữ. Ví dụ, trong C, bạn sẽ chỉ định một loại biến và sau đó gán giá trị bằng dấu ‘=’

>>> peanut_butter = 5
>>> peanut_butter
5
3

Trong python, bạn không cần phải đề cập đến loại biến khi bạn gán giá trị cho nó

>>> peanut_butter = 5
>>> peanut_butter
5
4

Đây là ở cấp độ thực hiện. Nhưng nếu bạn tìm hiểu sâu hơn, bạn sẽ nhận ra nó còn nhiều hơn những gì nhìn thấy bằng mắt thường.

Xem khi bạn gán một giá trị cho biến trong ngôn ngữ như C, biến đó hoạt động như một thùng chứa hoặc vùng chứa mà bạn đặt giá trị vào đó

NHƯNG TRONG PYTHON BIẾN HOẠT ĐỘNG NHƯ MỘT CON TRỎ

Những gì hiện phương tiện này?

Hãy tìm ra điều này

Gán biến trong Python dễ như đặt tên biến ở bên trái dấu bằng [=]

>>> peanut_butter = 5
>>> peanut_butter
5
4

Điều này có vẻ đơn giản, nhưng nếu bạn có mô hình tinh thần sai về hoạt động này, thì cách thức hoạt động của Python có vẻ khó hiểu

Trong Python, các biến tốt nhất không nên được coi là vùng chứa mà là con trỏ. Vì vậy, trong python khi bạn viết

>>> peanut_butter = 5
>>> peanut_butter
5
6

về cơ bản, bạn đang xác định một con trỏ có tên y trỏ đến một số nhóm khác chứa giá trị 5. Lưu ý một hậu quả của việc này. vì biến Python chỉ trỏ đến nhiều đối tượng khác nhau nên không cần “khai báo” biến, thậm chí yêu cầu biến luôn trỏ đến thông tin cùng loại

Đây là ý nghĩa mà mọi người nói Python được gõ động. tên biến có thể trỏ đến đối tượng thuộc bất kỳ loại nào. Vì vậy, trong python bạn có thể làm những việc như

>>> peanut_butter = 5
>>> peanut_butter
5
7

Mặc dù người dùng ngôn ngữ kiểu thống kê có thể bỏ lỡ tính an toàn kiểu đi kèm với các khai báo như ngôn ngữ được tìm thấy trong C, nhưng kiểu gõ động này là một trong những phần giúp Python viết nhanh và dễ đọc.

Có một hệ quả của cách tiếp cận “biến như con trỏ” này mà bạn cần lưu ý. Nếu chúng ta có hai tên biến trỏ đến cùng một đối tượng có thể thay đổi [có thể thay đổi giá trị], thì việc thay đổi cái này cũng sẽ thay đổi cái kia. Ví dụ: hãy tạo và sửa đổi danh sách

>>> peanut_butter = 5
>>> peanut_butter
5
8

Chúng tôi đã tạo hai biến x và y đều trỏ đến cùng một đối tượng. Do đó, nếu chúng tôi sửa đổi danh sách thông qua một tên của nó, chúng tôi sẽ thấy rằng danh sách "khác" cũng sẽ được sửa đổi

>>> peanut_butter = 5
>>> peanut_butter
5
9

Hành vi này có vẻ khó hiểu nếu bạn nghĩ sai về các biến là các thùng chứa dữ liệu. Nhưng nếu bạn đang nghĩ đúng về các biến là con trỏ tới đối tượng, thì hành vi này có ý nghĩa

Cũng lưu ý rằng nếu chúng ta sử dụng = để gán một giá trị khác cho x, điều này sẽ không ảnh hưởng đến giá trị của y-gán chỉ đơn giản là thay đổi những gì mà biến có thể trỏ tới

>>> id[peanut_butter]
10188960
0

Một lần nữa, điều này hoàn toàn hợp lý nếu bạn coi x và y là con trỏ và toán tử = là một phép toán thay đổi tên trỏ đến

Bạn có thể thắc mắc liệu ý tưởng con trỏ này có làm cho các phép toán số học trong Python khó theo dõi hay không, nhưng Python được thiết lập để đây không phải là vấn đề. Số, chuỗi và các loại đơn giản khác là bất biến. bạn không thể thay đổi giá trị của chúng — bạn chỉ có thể thay đổi giá trị mà các biến trỏ tới. Vì vậy, ví dụ, hoàn toàn an toàn khi thực hiện các thao tác như sau

>>> id[peanut_butter]
10188960
1

Khi chúng ta gọi x +=5, chúng ta không sửa đổi giá trị của đối tượng thứ 5 được trỏ tới bởi x, mà thay vào đó chúng ta đang thay đổi đối tượng mà x trỏ tới. Vì lý do này, giá trị của y không bị ảnh hưởng bởi hoạt động

Tôi hy vọng bài viết Biến dưới dạng con trỏ này đã xóa tan nghi ngờ của bạn về cách thức hoạt động của biến trong Python và ý nghĩa của việc gán giá trị cho biến trong Python. Hãy ghi nhớ điều này khi bạn gán giá trị cho biến trong Python vào lần tới

Biến có phải là vùng chứa không?

Biến là vùng chứa trong đó các giá trị dữ liệu có thể được lưu trữ trong bộ nhớ của máy tính. Họ có một cái tên, còn được gọi là một địa chỉ.

Các biến Python được lưu trữ ở đâu?

Tất cả các đối tượng và biến thể hiện được lưu trữ trong bộ nhớ heap . Khi một biến được tạo trong Python, nó được lưu trữ trong một vùng riêng tư, sau đó sẽ cho phép phân bổ và hủy phân bổ.

Làm thế nào để Python lưu trữ dữ liệu trong các biến?

Gán giá trị cho biến . Việc khai báo diễn ra tự động khi bạn gán giá trị cho một biến. Dấu bằng [=] dùng để gán giá trị cho biến .

Chính xác thì container trong Python là gì?

Các bộ chứa tích hợp cốt lõi trong Python là danh sách, bộ dữ liệu, từ điển và bộ . So sánh dựa trên tập hợp chạy nhanh hơn 20000 lần so với so sánh dựa trên danh sách [150 μs so với 3. 05s] và sự khác biệt sẽ chỉ tăng lên khi kích thước vấn đề tăng lên.

Chủ Đề