編程語言及python介紹

編程語言及python介紹

一、編程語言分類

  • 機器語言python

    優勢:執行效率高程序員

    缺點:開發效率極低,跨平臺性差編程

  • 彙編語言python3.x

    優勢:較機器語言執行效率稍低app

    缺點:較機器語言開發效率稍高,仍然很低,跨平臺性差編程語言

  • 高級語言ide

    • 編譯型(C、C++、go)工具

      相似谷歌翻譯,把程序全部的代碼翻譯成二進制指令後,操做系統根據指令直接操控硬件學習

    • 解釋型(python、PHP、C#、Java(先編譯後解釋))測試

      相似同聲翻譯,須要解釋器,一邊翻譯一邊執行

    優勢:開發效率高

    缺點:執行效率低

總結:

開發效率:(解釋型>編譯型)> 彙編語言 > 機器語言

執行效率:機器語言 > 彙編語言 >(編譯型 > 解釋型)

跨平臺性:解釋型 > 編譯型

學習難度:機器語言 > 彙編語言 > 高級語言

二、python解釋器

  • 安裝

python解釋器版本:

​ python2.x

​ python3.x

打開python官網

不要下載最新版

環境變量:系統變量優先於用戶變量

輸入cmd打開命令提示符,輸入python測試是否安裝成功

  • python執行代碼的兩種方式

    交互式:調試程序時使用,沒法保存文件

    文件式(腳本式、命令行執行):python中約定俗成的以.py結尾,其實就是文本文件,其餘結尾也可執行

三、IDE工具(pycharm)

專門用於編寫python代碼

優勢:
提高開發效率
缺點:
比較佔用內存的資源

pycharm官網下載professional專業版

四、註釋

一、什麼是註釋?

註釋是代碼之母,對代碼進行解釋說明,程序執行時不會被運行

二、爲何要註釋?

加強代碼可讀性

三、怎麼用註釋?

  1. 單行註釋,用#,快捷鍵Ctrl+?(#後加個空格規範化)
  2. 多行註釋,用三個單引號或者雙引號‘’‘ ’‘’或者 """ """

四、註釋原則

  1. 不用所有註釋,本身以爲重要的部分加註釋

  2. 能夠英文或者中文,不能夠用拼音

五、變量

一、什麼是變量?

變:事物的狀態能夠變化

量:描述事物的狀態

二、爲何要有變量?

程序的執行本質是一系列狀態的變化,須要一種機制來反映或保存程序執行時的狀態,以及狀態的變化

三、變量怎麼用?

變量名 賦值符號 變量值

age = 18

四、變量三大特性

type變量類型

id內存地址

value變量值

五、變量名的命名規範

  1. 只能是數字、字母、下劃線組成

  2. 數字不能開頭

  3. 不能是中文

  4. 區分大小寫

六、變量名命名風格

  1. 下劃線體 user_name

  2. 駝峯體 UserName

七、常量

python中沒有常量,程序員約定俗成的把所有是大寫命名爲常量

六、內存管理

一、小整數池

python解釋器中-5~256的id相同,pycharm對此進行了優化範圍更廣

a = 25
b = 257
print(id(a))
>>>2335729820784
print(id(b))
>>>2335761804048
a = 255
b = 255
print(id(a))
>>>1838517664
print(id(b))
>>>1838517664

二、垃圾回收機制(GC)

垃圾回收機制是自動幫助咱們管理內存,清理垃圾的一種工具

1)引用計數
當一個對象的引用被建立或者複製時,對象的引用計數加1;
當一個對象的引用被銷燬時,對象的引用計數減1;
當對象的引用計數減小爲0時,就意味着對象已經沒有被任何人使用了,能夠將其所佔用的內存釋放了。

優勢:
簡單、直觀
實時性,只要沒有了引用就釋放資源。

缺點:
維護引用計數須要消耗必定的資源
循環應用時,沒法回收。也正是由於這個緣由,才須要經過標記-清理和分代收集機制來輔助引用計數機制。

2)標記-清除
「標記-清除」是用來解決循環引入問題的。

# 變量名l1指向列表1,變量名l2指向列表2,以下
>>> l1=['列表1中的第一個元素']  # 列表1被引用一次   
>>> l2=['列表2中的第一個元素']  # 列表2被引用一次 
>>> l1.append(l2)             # 把列表2追加到l1中做爲第二個元素,列表2的引用計數爲2
>>> l2.append(l1)             # 把列表1追加到l2中做爲第二個元素,列表1的引用計數爲2
# l1與l2
# l1 = ['列表1中的第一個元素',列表2的內存地址]
# l2 = ['列表2中的第一個元素',列表1的內存地址]

首先內存中有兩塊區域:堆區與棧區,在定義變量時,變量名存放於棧區,變量值存放於堆區,內存管理回收的則是堆區的內容

標記:標記的過程其實就是,遍歷全部的GC Roots對象(棧區中的全部內容或者線程均可以做爲GC Roots對象),而後將全部GC Roots的對象能夠直接或間接訪問到的對象標記爲存活的對象。

清除:清除的過程將遍歷堆中全部的對象,將沒有標記的對象所有清除掉。

3)分代回收 核心思想:在屢次掃描的狀況下,都沒有被回收的變量,gc機制就會認爲,該變量是經常使用變量,gc對其掃描的頻率會下降 分代:指的是根據存活時間來爲變量劃分不一樣等級(也就是不一樣的代) 回收:依然是使用引用計數做爲回收的依據

相關文章
相關標籤/搜索