python 簡單理解python下的變數和記憶體

2021-10-03 15:38:34 字數 2827 閱讀 3461

相信學過c的人,對變數和記憶體了解的差不多,明白了變數的型別(int, float , double),知道列它們所佔記憶體的大小可是,python中他們是一樣的嗎???

no,no, no      它們並不一樣(儘管說,python就是用c寫的)

不需要預先宣告變數的型別,變數的型別和值在賦值的那一刻被初始化(宣告和定義的過程一起完成)

在python中, 每乙個變數在記憶體中建立,我們可以通過變數來檢視記憶體中的值

哈哈,這裡是不是很熟悉,跟c中的指標一樣啊(訪問記憶體中的值)

x =5之後,我們要了解它的過程:

系統先是找了一塊記憶體,將5儲存了進去,緊接著x指向了當前的這塊記憶體

**1:      python下的變數是乙個指標

>>> x = 4

>>> y = 5

>>> print x

4>>> print y

5>>> id(x)

10413988

>>> id(y)

10413976

>>> x = y

>>> id(x)

10413976

>>> id(y)

10413976

>>>

y = 5        說明y指向了記憶體中儲存為5的那個位址,那個位址是10413976

也就是說在執行x = 4,y = 5之後,x,y分別指向了不同的位址,

當執行 x = y之後:

也就是說,x指向了y所指向的記憶體了,這裡我們知道,它們都指向同一塊記憶體

哈哈,原來跟c裡面的指標真的一樣哎!!!哈哈哈

(但是,但是,但是     :就這些嗎??)

也就是說:開始的時候,x指向了10413988這塊記憶體,裡面儲存的是4

當執行了x = 5之後,也就變成了這樣:

好,ok就是這樣了,

不知道大家注意到了嗎?

在python中,一開始初始化儲存在記憶體的東西是不可以更改的,我們所能更改的只是它的指向,

但是,但是,在c中,對於int   x= 4;   也就是說x的位址是定的,裡面儲存的東西可以更改

我們來看一下這樣的**:

>>> x = 6

>>> id(x)

10413964

>>> y = 7

>>> id(y)

10413952

>>> z = 8

>>> id(z)

10413940

>>>

所以我們大膽推測,python中應該給這些整數的位元組有可能就是12(哈哈,純屬個人推測)

有可能記憶體中就是這樣了的:

哈哈,也該就是這樣子了,

至於其他的大小,有興趣的朋友可以研究研究

是不是說:在python中,系統將每乙個值都放在了乙個固定的位置,不然為什麼,每一次**記憶體位址的時候,結果都是一樣的(數值相等,位址也相等)

>>> x = 4

>>> y = 5

>>> id(x)

10413988

>>> id(y)

10413976

>>>

假如系統為4分配了一塊記憶體,遵循某種規則(類似於c裡面的記憶體對齊),那麼接下來為5分配了另一塊記憶體,權且分配到了10413976

那麼下面這個如何解釋

>>> x = 4

>>> y = 6

>>> id(x)

10413988

>>> id(y)

10413964

>>>

假如遵循某種規則的話,應該是6也分配到了10413976去了,可是,他被分配到了10413964

我們再來看:

>>> x = 4

>>> y = 6

>>> id(x)

10413988

>>> id(y)

10413964

>>> z = 5

>>> id(z)

10413976

>>>

這,哈哈,應該就是這樣的了的吧!!!!

也就是說:python中,系統還是python本身為其分配記憶體的時候就已經根據這個值是多少,確定了記憶體的位置了。。。

**:

總體簡單介紹下python使用 python02

usr bin python coding utf 8 import sys import random 隨機數的產生 num1 random.randrange 1,100,2 print num1 現在隨機產生100個隨機數 arr total 0 for i in range 100 num ...

python codec 深入理解Python特性

第1章 簡介 1 1.1 什麼是python技巧 1 1.2 本書作用 2 1.3 如何閱讀本書 2 第2章 python整潔之道 4 2.1 用斷言加一層保險 4 2.1.1 示例 python中的斷言 4 2.1.2 為什麼不用普通的異常來處理 6 2.1.4 常見陷阱 6 2.1.5 pyth...

初識python,編寫乙個簡單的python程式

在ubuntu下安裝好了最新的python3.9,開啟學習python之旅。在命令列輸入python進入互動模式 互動模式下,你每輸入一行 python直譯器就將這一行 轉換成機器碼來執行。例如 互動模式輸入100 200,然後回車 直接會顯示執行結果300 但是這樣的 是沒有儲存的,如果下次我們還...