第二篇:python基礎之核心風格
一.語句和語法
-
#:註釋
- \:轉譯回車,繼續上一行,在一行語句較長的情況下可以使用其來切分成多行,因其可讀性差所以不建議使用
- ;:將兩個語句連線到一行,可讀性差,不建議使用
- ::將程式碼的頭和體分開
- 語句(程式碼塊)用縮排方式體現不同的程式碼級別,建議採用4個空格(不要使用tab)
- python檔案以模組的方式組織,編寫一個.py結尾的檔案實際上就寫了一個模組
二.變數定義與賦值
- a=1:1為記憶體變數存放於記憶體中,a為變數的引用,python為動態語言,變數及其型別均無需事先宣告型別
- 與c的區別:a=1無返回值
注:
- c語言變數宣告必須位於程式碼最開始,而且要在所有語句之前
- c++,java可以隨時隨地宣告變數,但是必須宣告變數名字和型別
- python也可以隨時隨地宣告變數,但是變數在被定義時,直譯器會根據等式右側的值來決定其型別
- 變數必須先賦值,才可使用
三.記憶體管理
記憶體管理:
- 變數無須指定型別
- 程式設計師無須關心記憶體管理
- 變數會被自動回收
- del能夠直接釋放記憶體物件(減少物件的引用計數)
引用計數:
- 增加引用計數
- 物件被建立並將其引用賦值給變數,引用計數加1(例a=1)
- 同一個物件的引用又賦值給其它變數,引用計數加1(例b=a)
- 物件作為引數被函式呼叫,引用計數加1(例int(a)
- 物件成為容器物件中的一個元素,引用計數加1(例list_test=['alex','z',a])
- 減少引用計數
- a作為被函式呼叫的引數,在函式執行結束後,包括a在內的所有區域性變數均會被銷燬,引用計數減1
- 變數被賦值給另外一個物件,原物件引用計數減1(例b=2,1這一記憶體物件的引用只剩a)
- 使用del刪除物件的引用,引用計數減1(例del a)
- a作為容器list_test中的一個元素,被清除,引用計數減少(例list_test.remove(a))
- 容器本身被銷燬(例del list_test)
注意:python記憶體回收交給一段獨立的程式碼即垃圾回收器(包含引用計數器和迴圈垃圾收集器),引用計數在歸零時並不會立即清除(可能有迴圈呼叫)
不必糾結迴圈引用收集,只需記住垃圾回收器幫你自動清理記憶體。
簡單例子
x=1 #建立記憶體變數1,將變數1的引用傳給x,此刻1的引用計數為1 y=x #1的引用計數增加到2 y=2 #建立新的記憶體變數2,將變數2的引用傳給y,原本指向1的y,此刻給了2,所以1的引用計數減少到了1 del x #刪除了記憶體物件1的引用x,此刻1再無引用,此刻它就成了python直譯器回收的目標
四.python物件
python中使用物件模型來儲存資料,用來生成資料型別的工廠函式本質上是類,新建資料的結果本質是例項化一個物件
物件有三種特性
- 身份:記憶體地址,可以用id()確認,id相同的就是同一個物件
- 型別:可以用type()檢視,返回值的type也是物件
- 值
五.識別符號
定義:允許作為名字的有效字串集合
- 名字必須有實際意義,可讀性好
- 首字母必須是字母或下劃線(_)
- 剩下的字元可以是字母和數字或者下劃線
- 大小寫敏感
- 兩種風格:conn_obj或ConnObj
- 不能使用關鍵字,不能使用內建
關鍵字表:
內建:由直譯器自動匯入(提供基本功能),可以看作全域性變數,
六.專用下劃線識別符號
- _xxx:不能用from module import *匯入
- __xxx__:系統定義名字
- __xxx:類中私有變數
下劃線對於直譯器來說有特殊意義,而且是內建識別符號所使用符號,不建議自定義變數以下劃線開頭
但是如果是類中的私有變數,__xxx將會是一個好習慣
補充:
- 系統變數__name__會根據python檔案被載入方式的不同得出不同的值
- python檔案被當作模組匯入:__name__=模組名或者檔名
- python檔案被執行:__name__='__main__'
-
在我們使用python編寫一個軟體時,應該只有一個主程式中包含大量頂級程式碼(就是沒有縮排的程式碼,
python直譯器讀取到頂級程式碼會立即執行),其他.py檔案應該只有少量頂級程式碼,所有功能都應該封裝
在函式或類中
- 通常在檔案結尾結合__name__變數,編寫測試程式碼
七.編寫模組基本風格
- 標題
- 文件註釋
- 模組匯入
- 變數定義
- 類定義語句
- 函式定義語句
- 主程式
- 測試程式碼
八.示範
1 #_*_coding:utf-8_*_ 2 #!/usr/bin/env python 3 4 ''' 5 This is an example module 6 ''' 7 8 import sys,os 9 10 debug=True 11 12 class Test: 13 ''' 14 test class 15 ''' 16 pass 17 18 def main(): 19 ''' 20 test func 21 :return: 22 ''' 23 pass 24 25 if __name__ == '__main__': 26 main()
相關推薦
第二篇:python基礎之核心風格
一.語句和語法 #:註釋 \:轉譯回車,繼續上一行,在一行語句較長的情況下可以使用其來切分成多行,因其可讀性差所以不建議使用 ;:將兩個語句連線到一行,可讀性差,不建議使用 ::將程式碼的頭和體分開 語句(程式碼塊)用縮排方式體現不同的程式碼級別,建議採用4個空格(不要使用tab) p
第四篇:python基礎之雜貨鋪
在這一篇中我們將對上幾篇的Python零碎的知識進行補充,即字串的格式化輸出,以及深淺拷貝,接下來我們將對這兩種進行一一介紹。 一、字串格式化輸出 關於字串的格式化輸出,我們需要了解為什麼需要字串的格式化,同時掌握格式化輸出的兩種用法:百分號方式、format方式。接下來我們就這兩種
第三篇:python基礎之資料型別與變數
一.變數 1 什麼是變數之宣告變數 #變數名=變數值 age=18 gender1='male' gender2='female' 2 為什麼要有變數變數作用:“變”=>變化,“量”=>計量/儲存狀態程式的執行本質是一系列狀態的變化,變數的目的就是用來儲存狀態,變數值的變化就
Python開發【第五篇】:Python基礎之2
對齊方式 dex 字符串 後退 ring lag nic 有效 func 字符串格式化 Python的字符串格式化有兩種方式: 百分號方式、format方式 百分號的方式相對來說比較老,而format方式則是比較先進的方式,企圖替換古老的方式,目前兩者並存。[PEP-310
Python開發【第四篇】:Python基礎之函數
nco pos *args 更強 三元 sequence hunk ins att 三元運算 三元運算(三目運算),是對簡單的條件語句的縮寫。 # 書寫格式 result = 值1 if 條件 else 值2 # 如果條件成立,那麽將 “值1” 賦值給result
Python成長之路【第五篇】:Python基礎之文件處理
閱讀 關註 src 文件路徑 程序 opened IT 寫入 文件操作 一、文件操作 1、介紹 計算機系統分為:計算機硬件,操作系統,應用程序三部分。 我們用python或其他語言編寫的應用程序若想要把數據永久保存下來,必須要保存於硬盤中,這就涉及到應用程序要操作硬件,
Python成長之路【第五篇】:Python基礎之裝飾器
brush urn 新功能 clas 現在 hide rom 接收 調用 一、什麽是裝飾器 裝飾:裝飾既修飾,意指為其他函數添加新功能 器:器既函數 裝飾器定義:本質就是函數,功能是為其他函數添加新功能 二、裝飾器需要遵循的原則 1、不能修改裝飾器的源代碼(開放封閉原則)
Python成長之路【第五篇】:Python基礎之模塊
module 應用程序 過程 解釋器 amp 之路 Python標準庫 pre 使用 模塊&包 模塊(module)的概念: 在計算機程序開發的過程中,隨著程序代碼越寫越多,在一個文件裏代碼就會越來越長,越來越不容易維護。為了編寫可維護的代碼,我們把很多函數分組,分
Python開發【第五篇】:Python基礎之雜貨鋪
字串格式化 Python的字串格式化有兩種方式: 百分號方式、format方式 百分號的方式相對來說比較老,而format方式則是比較先進的方式,企圖替換古老的方式,目前兩者並存。[PEP-3101] This PEP proposes a new system for
第五篇:python基礎_5
執行過程 ini 間接 ray 復雜 func 時間 基於 time 本篇內容 協程函數 遞歸 二分法 import語句 from...import語句 模塊搜索路徑 包的導入 軟件開發規範 logging模塊的使用 一、 協程函數 1.定義 協程函數就是使用了y
第八篇:python基礎_8 面向對象與網絡編程
pro size 賬單 socket 基礎 發生 多態 proc client 本篇內容 接口與歸一化設計 多態與多態性 封裝 面向對象高級 異常處理 網絡編程 一、 接口與歸一化設計 1.定義 (1)歸一化讓使用者無需關心對象的類是什麽,只需要知道這些對象都具備某
Python之路【第三篇】:Python基礎之雜貨鋪
對齊 表示 microsoft 小數點 true per 字符串 orm bsp 字符串格式化 Python的字符串格式化有兩種方式:百分號方式、format方式 百分號的方式相對來說比較老,而format方式則是比較先進的方式,企圖替換古老的方式,目前兩者並存。 1
第二篇:Python安裝及環境變量的操作
系統變量 執行 第二篇 解釋 參數 配置 環境 配置環境 usr 1.配置環境變量方法在計算機-屬性-高級系統設置-高級-環境變量-系統變量-path中追加Python軟件包的路徑補充:各個變量值是用;分隔的 2.環境變量配置後,在cmd中可直接輸入python來運行Pyt
週末班:Python基礎之面向物件進階
面向物件進階 型別判斷 issubclass 首先,我們先看issubclass() 這個內建函式可以幫我們判斷x類是否是y型別的子類。 class Base: pass class Foo(Base): pass class Bar(Foo):
最新版 17 幅思維導圖:Python 程式設計之核心知識體系
導讀: 本文主要涵蓋了 Python 程式設計的核心知識,展示了一系列思維導圖,主
python 學習筆記 第二篇:python如何連線mysql資料庫
任何一個程式都必然用到資料庫,不然資料沒法處理,之前我只是把python的開發環境部署了一下,但是隻是獨立的,沒法連線到資料庫,今天學習了一下python的步驟 連線資料庫要首先映入模組pymysql;(以一個簡短的查詢來演示一下資料庫的連線) 1.下載地
EnjoyingSoft之Mule ESB基礎系列第二篇:Mule ESB基本概念
目錄 1. 使用Anypoint Studio開發 2. Mule ESB Application Structure - Mule ESB應用程式結構 3. Mule ESB Application整體構造 4. Mule ESB構造元素 - Flow 5. Mule ESB構造元素
Python開發【第六篇】:Python基礎條件和循環
ora back strong als 重復執行 操作 enume 條件表達式 服務 目錄 一、if語句 1、功能 2、語法 單分支,單重條件判斷 多分支,多重條件判斷 if + else 多分支if + elif + else 語句小結 + 案例 三元表達式 二、whil
第七篇 python基礎之函數,遞歸,內置函數
不能 初中 隱式 邏輯 改變 維護 mage 提醒 發送郵件 第七篇 python基礎之函數,遞歸,內置函數 閱讀目錄 一 數學定義的函數與python中的函數 二 為何使用函數 背景提要 三 函數和過程 四 函數參數 五 局部變量和全局變量 六 前向引用之‘函
Linux賬號管理之第二篇:對用戶組進行管理
mov 切換 屬於 tom blog 用戶組 第二篇 roo clas 1、查看用戶的有效組群 groups 用戶名 註意:查看出來的結果可能有多個;第一個為主組群,後面的都是副組群 2、添加和刪除組群 添加一個組:groupadd 組