一.注釋
1.什麼是注釋
- 注釋就是對代碼的解釋說明,注釋的内容不會被當作代碼運作
2.為什麼要注釋
- 增強代碼的可讀性
-
python的注釋、變量、常量基礎
3.怎麼用注釋?
- 代碼注釋單行和多行注釋
- 單行注釋用#号,可以跟在代碼的正上方或正後方
- 多行注釋可以用三對引号(單雙都行)""" """
python的注釋、變量、常量基礎 -
pycharm注釋快捷鍵
ctrl + ?
4.代碼注釋的原則:
- 不用全部加注釋,隻需要為自己覺得重要或不好了解的部分加注釋即可
- 注釋可以用中文或英文,但不要拼音
二.變量
1.什麼是變量?
變量就是可以變化的量,量指的是事物的狀态,比如人的年齡、性别,遊戲角色的等級、金錢等等
2.為什麼要有變量?
為了讓計算機能夠像人一樣去記憶事物的某種狀态,并且狀态是可以發生變化的。
詳細地說: 程式執行的本質就是一系列狀态的變化,變是程式執行的直接展現,是以我們需要有一種機制能夠反映或者說是儲存下來程式執行時狀态,以及狀态的變化。
3.怎麼使用變量(先定義、後使用)
3.1 變量的定義與使用
變量的定義由三部分組成,如下圖
日常生活中:
姓名:Jason
年齡:18
愛好:學習
程式中:
username = 'jason'
age = 18
hobby = 'music'
文法格式
變量名 指派符号 變量值
解釋器執行到變量定義的代碼時會申請記憶體空間存放變量值,然後将變量值的記憶體位址綁定給變量名,以變量的定義age=18為例,如下圖
底層原理(必會!!!)
遇到指派符号先看符号右邊的再看左邊的
1.在記憶體空間中申請一塊記憶體空間存儲18
2.将18所在的記憶體空間位址綁定給變量名age
3.之後如果要通路18就通過變量名age通路即可
通過變量名即可引用到對應的值,用print(age)即可驗證
3.2 變量名的命名規範
變量名的命名應該見名知意
如果我們要存儲的資料18代表的是一個人的年齡,那麼變量名推薦命名為age
如果我們要存儲的資料18代表的是一個人的等級,那麼變量名推薦命名為level
level = 18
1.變量名隻能由數字、字母、下劃線任意組合
user@name(不對)、_(可以)、pwd_123_aaa(可以)
2.變量名不能以數字開頭,下劃線建議不要開頭因為有特殊含義
3.變量名不能與關鍵字沖突,比如print就不能是變量名
4.變量名的命名一定要做到見名知意,這個是核心。(重要)
3.3 變量名的命名風格
1.駝峰體
大駝峰 # 所有的單詞首字母大寫
UserNameFromDb
小駝峰 # 第一首字母小寫其餘首字母大寫
userNameFromDB
JavaScript推薦使用駝峰體
-
下劃線 # 單詞與單詞之間的下劃線隔開
user_name_from_db
python推薦使用下劃線
3.4 變量三要素
1.變量的值
2.變量的記憶體位址
3.變量的資料類型
name = 'jason'
print(name) # 值
print(id(name)) # 一串數字 相當于是記憶體位址編号
print(type(name)) # 資料類型 <class 'str'>
一個變量名隻能指向一個記憶體位址
一個記憶體位址可以有多個變量名指向
三. 常量
3.1 什麼是常量?
常量是值在程式運作過程種不會改變的量
3.2 為什麼要有常量?
在程式運作過程種,有些值是固定的、不應該被改變的,比如圓周率3.1415926......
3.3 怎麼使用常量
在python中沒有真正意義上的常量 我們墨守成規的将全大寫的變量看成是常量
HOST = '127.0.0.1'
const pi = 3.14 # 定義常量
pi = 4 # 不支援修改
四. 垃圾回收機制
4.1 什麼是垃圾回收機制?
垃圾回收機制(簡稱GC)是Python解釋器自帶一種機制,專門用來回收不可用的變量值所占用的記憶體空間
4.2 為什麼要用垃圾回收機制?
程式運作過程中會申請大量的記憶體空間,而對于一些無用的記憶體空間如果不及時清理的話會導緻記憶體使用殆盡(記憶體溢出),導緻程式崩潰,是以管理記憶體是一件重要且繁雜的事情,而python解釋器自帶的垃圾回收機制把程式員從繁雜的記憶體管理中解放出來。
4.3 垃圾回收機制原理分析
-
引用計數
記憶體中變量值身上有幾個變量名綁定引用計數就是幾,隻要為0就是垃圾
-
标記清除
當記憶體即将沾滿的時候 python會自動暫停程式的執行 從頭到尾将記憶體中資料進行掃描
并打上标記 之後一次性清除掉标記的資料
-
分代回收
分代回收是一種以空間換時間的操作方式,Python将記憶體根據對象的存活時間劃分為不同的集合,每個集合稱為一個代,Python将記憶體分為了3“代”,分别為新生代(第0代)、青春代(第1代)、老年代(第2代),他們對應的是3個連結清單,它們的垃圾收集頻率與對象的存活時間的增大而減小。新建立的對象都會配置設定在新生代,新生代連結清單的總數達到上限時,Python垃圾收集機制就會被觸發,把那些可以被回收的對象回收掉,而那些不會回收的對象就會被移到青春代去,依此類推,老年代中的對象是存活時間最久的對象,甚至是存活于整個系統的生命周期内。同時,分代回收是建立在标記清除技術基礎之上。分代回收同樣作為Python的輔助垃圾收集技術處理那些容器對象。