本文轉載於Tensorflow 筆記 :第二講Pythony語句串講。
參考鏈接:人工智能實踐:Tensorflow筆記 曹健
筆者之前常用C/C++程序設計與語言進行程序設計,具有一定的基礎,所以這裏只是簡單的進行語法記錄,便於語法轉換和重新學習。
Ubuntu常用指令
- 桌面點擊右鍵 選擇 Open Terminal 打開終端
- pwd 打印當前在哪個目錄
pwd
- ls 列出當前路徑下的文件和目錄
ls
- mkdir 目錄名 新建目錄
mkdir xxx
- cd 目錄名 進到指定目錄
cd xxx
- python 運行 Python 解釋器
python
- print “Hello World” 在終端輸出“Hello World”
print “Hello World ”
代碼驗證:
補充 :
- 使用 pwd 命令 打印當前在哪個目錄,的是 絕對路徑 。
- 絕對路徑:是以根 目錄 (" / " )爲起點的完整路徑,以你所要到目錄終點。
- 相對路徑: 是你當前的目錄 (" . ")爲起點 的路徑, 以你所要到的目錄爲終點。
- 使用 cd 目錄名 進到指定目錄,如果的“名”是
. 表示當前目錄
… 表示當前目錄的上一級
- 表示上一次所在目錄
~ 表示當前用戶的 home 目錄(即剛 login 時所在的目錄)
比如:
cd … 返回上級目錄
cd …/… 返回上兩級目錄
cd ~ 進入用戶主目錄 home
VIM編輯器
- vim 文件名 打開或新建文本
- 在 vim 中 點擊 i 進入插入模式 可往文本里寫內容
- ESC :q 退出 vim
- ESC :wq 保存更改退出 vim
- ESC :q! 不保存更改退出 vim
常用基礎語法
運算符: + - * / % * / % * / %
運算順序:先乘除 後加減 括號最優先
代碼驗證:
變量,就是一個標籤,由非數字開頭的字母、數字、下劃線組成,它的內容可以是數值、字符串、列表、元組和字典。
例如:
數值,就是數字。
a = 100
字符串,就是用一對兒雙引號、或單引號引起來的內容,只要被引號引起來,就是字符串了。
b = ”Hello World”
如:a=100
a就是數值 而a="100"
a就是字符串
轉義字符: \t 表示 tab \n 表示換行 \ ” 表示 ” %s 佔位,用%後的變量替換
例如:
a = 100
b = ” Hello World ”
print ” point = %s \n \” %s \” ” %(a,b)
打印輸出的結果爲
point=100
” Hello World ”
1 列表
- 列表 [ ] c = [1,2,3,4,5,6,7] d = [”張三”,”李四”,”王五”] e = [1,2,3,”4”,”5”,d]
- 用列表名[ 索引號 ] 索引列表中的元素
- d[0]表示列表 d 中的第零個元素“張三”
用列表名[起 : 止]表示切片,從列表中切出相應的元素 前閉後開
c[0:2] 切出 [1,2] c[ : ] 切出 [1,2,3,4,5,6,7]
用列表名[起 : 止: 步長] 帶步長的切片,步長有方向。
c =[1,2,3,4,5,6,7] 切出 [5,4,3,2]
用 c[4 :0 :-1] 切出[5,4,3,2,1]
用 c[4 ::-1]切出 [6,4,2]
用 c[-2 ::-2] 從倒數第二個開始一直切到頭,步長-2 - 修改:列表名 [ 索引號 ] = 新值
- 刪除:del 列表名[ 索引號 ]
- 插入: 列表名.insert(插入位置索引號,新元素)
代碼驗證:
2 元組
- Python的元組與列表類似,不同之處在於元組的元素不能修改。 元組使用小括號,列表使用方括號。
f=(1,2,3)
3 字典
- 字典是另一種可變容器模型,且可存儲任意類型對象。
- 字典 { } 字典裏放着 {鍵:值, 鍵:值, 鍵:值} n 個鍵值對
dic={1:”123”,”name”:”zhangsan”,”height”:180} - 用字典名[ 鍵 ] 索引字典中的值
dic[”name”] 表示字典 dic 中鍵”name”對應的值”zhangsan” - 修改:字典名 [ 鍵 ] = 新值
- 刪除:del 字典名[ 鍵 ] 插入:字典名[ 新鍵 ] = 新值
代碼驗證:
4 條件狀語從句
- if 條件成立 :
執行任務 - if 條件 1 成立 :
執行任務 1
else :
執行任務 2 - if 條件 1 成立 :
執行任務 1
elif 條件 2 成立 :
執行任務 2
┊
elif 條件 n 成立 :
執行任務 n
else :
執行任務 n+1
代碼驗證:
其中#coding:utf – 8
以註釋的形式加入來兼容中文輸入;
age=input(“輸入你的年齡\n”)
中的input()
是一個函數,表示從屏幕接收內容括號裏的字符串是向屏幕打印出的提示內容,可以增加程序和用戶的交互。
4 邏輯關係
- == 等於
- != 不等於
- > 大於
- >= 大於等於
- < 小於
- <= 小於等於
- and 與
- or 或
5 循環關係
- for 變量 in range (開始值,結束值):
執行某些任務
其中的括號內的開始、結束值也爲前閉後開區間。
代碼驗證:
- for 變量 in 列表名
執行某些任務
代碼驗證:
在第一個 for 循環中,先打印出 i 對應的 abcd 中的 a,然後執行第二個 for 循環,打印出 j 對應的 abcd;再回到 i,然後打印出 i 對應的 abcd 中的 b,再打印出第二個 for 循環 j 對應的 abcd … - while 條件 :
執行某些任務
代碼驗證:
- 終止循環用 break
6 函數
- 函數(function):組織好的,可重複使用的,用來實現單一或相關聯功能的代碼段。 比如之前用過的 input()就是一個函數,可以直接使用函數,不用每次重新定義如何從控制檯接收輸入,所以函數是幫助實現代碼複用的。
- 定義函數:def 函數名 (參數表):
函數體 括號裏的參數如果不需要可以爲空 - 使用函數:函數名 (參數表)
如:input(“please input your class number:”)
定義:def hi_name(yourname):
print ”Hello %s” %yourname
使用:hi_name(”zhangsan”)
會輸出:Hello zhangsan
代碼驗證:
7 模塊 - 模塊(module):是一個 Python 文件,以.py 結尾,包含了 Python 函數等語
句。先導入,再使用,用模塊.函數名調用。
import time
time.asctime ( )
輸出:‘Tue Jan 16 21:51:06 2018’
8 包
- 包:包含有多個模塊
from PIL import Image
類、對象和麪向對象的編程
-
類(class):用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。物以類聚人以羣分,類是可實例化出對象的模具。
-
實例化: 對象 = 類 () t = turtle.Pen()
-
對象:是類實例化出的實體,對象實實在在存在,完成具體工作。
-
面向對象:程序員反覆修改優化類,類實例化出對象,對象調用類裏的函數執行具體的操作。
-
在上圖中,有動物、哺乳動物和貓。
-
動物是一個類,他們具有共同的功能:呼吸、移動和吃東西。哺乳動物也是一個類,他們是動物類裏的子類,是在動物類的基礎上多了餵奶的功能。貓是哺乳動物類的一個子類,貓類在哺乳動物的基礎上多了捉老鼠的功能。
-
類命名時第一個字母常大寫,比如 Animals、Mammals 和 Cats 的首字母都大寫了。這些類的右側列出了每個類具有的功能:比如呼吸、移動和吃東西是動物這個類具備的功能,在計算機中用函數的形式表示。餵奶是哺乳動物的功能,是哺乳動物這個類裏的函數。捉老鼠是貓類具有的功能,是貓類的函數。
-
上面的類是下面類的父類;下面類是上面類的子類
-
子類實例化出來的對象,可以使用自身和父類的函數與變量
-
類的定義:
class 類名 (父類名) :
pass
- 如果有父類,寫在類名後面的括號裏;如果沒有父類,可以不寫括號了。用關鍵詞 pass 佔個位置,之後再用具體函數把類補充完整。
class Animals:
pass
class Mammals(Animals)
pass
class Cats(Mammals):
pass
- 類裏定義函數時,語法規定第一個參數必須是 self 。
- init__函數,在新對象實例化時會自動運行,用於給新對象賦初值。
- (1)將貓類實例化出一個叫 kitty 的對象,kitty 有自己的特徵屬性,比如身上有 10 個斑點:
kitty = Cats(10) #實例化時運行 init 函數,給 spots 賦值,告知 kitty 有 10 個斑點
print ”kitty.spots” #打印出 10 - (2)kitty 可以做具體的工作,比如捉老鼠:
kitty.catch_mouse() #對象運行函數,必須用對象.函數名,調用類裏的函數 #會運行 print ”catch mouse” 故打印出 catch mouse - 對象調用類裏的函數,用對象.函數名;
- 對象調用類裏的變量,用對象.變量名。
- 類內定義函數時,如調用自身或父類的函數與變量,須用 self.引導,應寫爲 self.函數名或 self.變量名。
代碼驗證:
補充:
- Python 中雖然沒有訪問控制的關鍵字,例如 private、protected 等等。但是,在 Python 編碼中,有一些約定來進行訪問控制。
單下劃線、雙下劃線、頭尾雙下劃線說明:
-
_foo: 以單下劃線開頭的表示的是 protected 類型的變量,即保護類型只能允許其本身與子類進行訪問,不能用於 from module import *
-
foo: 雙下劃線的表示的是私有類型(private)的變量, 只能是允許這個類本身進行訪問了。
-
foo : 頭尾雙下劃線定義的是特列方法,類似 init () 之類的。
文件操作
import pickle
- 開:文件變量 = open(”文件路徑文件名”, ”wb”)
- 存:pickle.dump(待寫入的變量,文件變量)
- 關:文件變量.close()
代碼驗證:
import pickle
- 開:文件變量 = open(”文件路徑文件名”, ”rb”)
- 取:放內容的變量 = pickle.load(文件變量)
- 關:文件變量.close()
代碼驗證:
python 語句代碼層次
Python 代碼是使用四個空格的縮進表示層次關係的,從縮進我們可以看出這段
條件語句分了三個層次,第一個層次是黃色的 block1,然後是紅色的 block2,最後是藍色的 block3。