天天看點

python 開發 -- 01變量

文章目錄

  • ​​一.注釋​​
  • ​​1.什麼是注釋​​
  • ​​2.怎麼使用注釋​​
  • ​​二.變量​​
  • ​​1.什麼是變量​​
  • ​​2.為何要用變量​​
  • ​​3.如何使用變量​​
  • ​​4.變量的三大組成部分​​
  • ​​5.變量名指令規則​​
  • ​​6.命名風格​​
  • ​​7.總結​​
  • ​​三.變量的使用​​
  • ​​1.定義變量​​
  • ​​2.引用變量​​
  • ​​3.變量名所在位置的意義​​
  • ​​四.變量的兩大特征​​
  • ​​`id` : 變量值的身份證, 反應的是記憶體位址​​
  • ​​`type` : 變量值的類型​​
  • ​​五.變量值的判斷​​
  • ​​`is` : 表示"id"和值一樣, 其實就是同一個值​​
  • ​​"==" : 表示值一樣, "id"可以不一樣, 也就是說不同的記憶體空間可以放相同的值​​
  • ​​六.小整數池​​
  • ​​1.在互動式模式下​​
  • ​​2.在 **pycharm** 中​​
  • ​​六.常量​​
  • ​​不變的量(比如圓周率:π)​​
  • ​​一般用大寫字母表示(但在裡還是能改變)​​
  • ​​七.垃圾回收機制 GC​​
  • ​​引用計數​​
  • ​​循環引用​​
  • ​​分代回收​​
  • ​​八、快捷鍵補充​​
  • ​​八、快捷鍵補充​​

一.注釋

1.什麼是注釋

注釋就是注解說明

2.怎麼使用注釋

  • 對整個檔案注釋
"""
注釋1
注釋2
注釋3
對整個檔案做一個整體的描述
"""      
  • 對關鍵資訊注釋
# [注解的資訊]
print("Hello word!")  # [注解的資訊]
#  可以寫在代碼的開頭的後面
#  如果代碼太長盡量不要寫後面      
  • 批量加注釋
#   "Ctrl + ?" (将滑鼠選中的行全部注釋掉)
# print("123")
# print("123")
# print("123")      

二.變量

1.什麼是變量

  • 變: 事物的狀态都是變化的
  • 量: 記錄下事物的狀态
  • 變量是一種存取記憶體的機制

2.為何要用變量

  • 變量的意義在于為了讓計算機像人一樣記下事物的狀态

3.如何使用變量

  • 先定義
  • 後引用
#錯誤示例
print(x)
x = 1      

4.變量的三大組成部分

  • 變量名 : 用來通路變量的值(相當于一個門牌号)
  • 指派符号 : 把值的記憶體位址綁定給變量名
  • 變量值 : 記錄事物的狀态, 即存資料

5.變量名指令規則

  • 大前提 :​

    ​見名知意​

    ​ : 如: age = 18, level = 20
  • 由字母,數字,下劃線組成
  • 不能以數字開頭
  • 不能使用****語言的關鍵字

6.命名風格

  • 純小寫加下劃線
age_of_mm = 21
hight_of_mm = 173      
  • 駝峰體
AgeOfmm = 21
HightOfmm = 174      

7.總結

# 1.變量的三大組成部分
變量名:用來找值
指派符合:講變量值的記憶體位址綁定給變量名
變量值:就是我們存儲的資料,或者說是記錄事物的狀态

# 2.整個變量定義過程是這樣的:
先在記憶體中申請記憶體空間用來存放變量值,将記憶體空間的記憶體位址綁定給變量名。

# 3.變量名命名的大前提:變量名的命名應該是見名知意

# 4.命名的規範:
4.1有字母,數字,下劃線組成。
4.2.不能以數字開頭
4.3.不能用 關鍵字

# 5.命名風格
駝峰體:首字母是大寫不用下劃線LeveLfAge = 18
純小寫加下劃線(在中,變量名的命名推薦使用該風格)level_of_age =18

# 6.變量的值具備三大特性
6.1 id,反應的是變量在記憶體中的唯一編号,記憶體位址不同id肯定不同
如果兩個變量的id一樣,說明它們位于相同的記憶體位址。
is:判斷id(記憶體位址)是否相等
==:判斷記憶體位址是否相等
注意:如果id相等,那麼值一定相等。

6.2、type,變量值的類型
6.3、value,變量值      

三.變量的使用

1.定義變量

age = 18
level = 10
name = "mm"      

2.引用變量

print(age)
print(name)      

3.變量名所在位置的意義

#  變量名在左邊代表指派
age = 18

#  左邊的是指派,右邊的是取值
age = age + 1  # age = 18+1 = 19      

四.變量的兩大特征

​id​

​ : 變量值的身份證, 反應的是記憶體位址

​type​

​ : 變量值的類型

#  一個變量的"id"和"type"
x = "aaa"
print(id(x))  #2282514548400
print(type(x))  #<class 'str'>

#  "id"一樣,代表記憶體位址一樣,指向的是同一個記憶體空間,值一定一樣
x = 10
y = 10
print(id(x))  #140724873359904
print(id(y))  #140724873359904
print(type(x))  #<class 'int'>
print(type(y))  #<class 'int'>      

五.變量值的判斷

​is​

​ : 表示"id"和值一樣, 其實就是同一個值

“==” : 表示值一樣, "id"可以不一樣, 也就是說不同的記憶體空間可以放相同的值

x = 10
y = 10
print(x is y)  #True
print(x == y)  #True(判斷值是否相等)      

六.小整數池

1.在互動式模式下

  • 實作int的時候有個小整數池
  • 為了避免因建立相同的值而重複申請記憶體空間所帶來的效率問題
  • 解釋器會在啟動時建立出小整數池,範圍是**[-5,256]**
  • 該範圍内的小整數對象是全局解釋器範圍内被重複使用,永遠不會被GC回收
#  "-5~256"都是同一個池子裡拿的,是以記憶體位址相同
>>> y=4
>>> id(y)
4297641184
>>> 
>>> x=3
>>> x+=1
>>> id(x)
4297641184      

2.在 pycharm 中

  • 但在pycharm中運作程式,pycharm出于對性能的考慮,會擴大小整數池的範圍
  • 其他的字元串等不可變類型也都包含在内一便采用相同的方式處理了
  • 我們隻需要記住這是一種優化機制,至于範圍到底多大,無需細究

六.常量

不變的量(比如圓周率:π)

一般用大寫字母表示(但在裡還是能改變)

AGE_OF_HAHA = 78
level_OF_HAHA = 100      

七.垃圾回收機制 GC

引用計數

x = 18  #18被引用了一次,計數為1
y = x   #18 被引用了兩次,計數為2      

循環引用

#  循環引用----->存在着記憶體洩漏的漏洞, 需要清除标記      

分代回收

y = 20  #18的引用減1,計數為1
del x   #18的引用減1,計數為0      

八、快捷鍵補充

ctrl + d         # 複制

ctrl + x         # 剪切

ctrl + v         # 粘貼

ctrl + /         # 注釋

shift + tab      # 回退4個空格

tab              # 縮進4個空格      
y = 20  #18的引用減1,計數為1
del x   #18的引用減1,計數為0      

八、快捷鍵補充

ctrl + d         # 複制

ctrl + x         # 剪切

ctrl + v         # 粘貼

ctrl + /         # 注釋

shift + tab      # 回退4個空格

tab              # 縮進4個空格