###### tags: `python` <style> blue:color='blue'; </style> # Python 基本語法 最近修改日期20210108 #### 變數: 語法:變數名稱=變數值 Python變數無須宣告及指定資料型態 多個變數有相同值 a=b=c=20 同一列指定鍋的變數值 age,name = 10,"張三" 則 age=18 ,name= "張三" del 變數名稱 #刪除變數節省記憶體 變數名稱命名規則 *.第一個字母需大小寫英文字母、_、中文。(數字開頭不行) *.變數只能由大小寫英文字母、_、中文組成。(特殊符號不可以,中間也不可空白) *.英文大小寫視為不同變數。(區分大小寫) *.不能與保留字相同。 保留字有 ||||||| |-|-|-|-|-|-| |acod|and|array|asin|assert|atan| |break|class|close|continue|cos|Data| |def|del|e|elif|else|except| |exec|exp|fabs|float|finally|floor| |for|from|global|if|import|in| |input|int|is|lambda|log|log10| |not|open|or|pass|pi|print| |raise|range|return|sin|sqrt|tan| |try|type|while|write|zeros|| \# 為註解符號 \\ 為程式碼過長換行接續符號 Python 數值資料型態主要有整數、浮點數。 布林資料型態 只有True 與 False 字串可用成對的" 或是 ' 包起來。 若要表示換行或是Tab可用跳脫字元\ |跳脫字元|意義|跳脫字元|意義| |-|-|-|-| |\\'|顯示單引號'|\\"|顯示雙引號"| |\\\ |顯示反斜線|\\n|換行| |\r|游標移到列首|\t|Tab鍵| |\v|垂直定位|\a|響鈴| |\b|後退鍵|\f|換頁| |\x|以16進位表示字元|\o|以八進位表示字元| ## print語法: 語法: print(項目1 [,項目2,...,sep=分隔字元,end=結束字元] ) 範例: ```python= print(10,"項目",50) # 輸出 10 項目 50 print(10,"項目",50,sep="&") # 輸出 10&項目&50 下次列印於下一列 print(10,"項目",sep="&",end="") # 輸出 10&項目&50 下次列印於同一列(註:end沒指定,預設為\n) ``` ### 整理後的格式化輸出 ```python= # 範例_字串格式化 name='Peter Yang' errno=50159747054 # 舊式 print('舊式') print('你好! %s'% name) # %x 16進位表示法 print('嗨! %s, 這個錯誤代碼是%x'%(name,errno)) print('嗨! %(name)s, 這個錯誤代碼是%(errno)x'%{'name':name,'errno':errno,}) print('嗨! %(name)s, 這個錯誤代碼是%(errno)x'%{'errno':errno,'name':name,}) # 新式 print('新式') print('Hello,{}'.format(name)) print('嗨! {name}, 這個錯誤代碼是{errno:x}'.format(name=name,errno=errno)) # 進階(格式字串字面值:Formatted String Literal Py3.6+ UP) print('進階') print(f'Hello,{name}!') birthYear=25 print(f'Hello,{name},出生年{birthYear}轉為西元為{birthYear+1911},16進制為{(birthYear+1911):x}') # 可以進行運算 (可以用x 或是 #x) # 樣板字串方法(Template String) from string import Template t= Template('Hello,$name!') t.substitute(name=name) print(t.substitute(name=name)) t1="Hello! $name 有一個錯誤發生 $errno" t2=Template(t1) print(t2.substitute(name=name,errno=hex(errno))) # 樣板無法此用格式指定子,要自行用hex轉換。 ``` ### 格式化輸出(一) 語法: print(項目 %(參數)) #%s 表示字串,%d表示整數,%f表示浮點數 可以用%5d 固定列印5位數。數字小於5位,左方填空白,大於5位,全部顯示。 %5s 同上 %8.2f固定列印8的字元(含小數點),小數點固定兩位。整數若小於5位,左方填空白,整數大於5位,則整數部分全部顯示;若小數小於2位,右方填0,小數大於2位,原則四捨五入(會依據第一位小數奇偶而變化) n=1222.3350 print("%8.2f" % n) # 1222.34 n=1222.2350 print("%8.2f" % n) % 1222.33 範例: name="張三" age = 58 print("%s的年紀為%d歲" % (name,age)) ### 格式化輸出(二) 語法: print(format(item,format-specifier)) item 為數字或是文字,format-specifier:格式指定器。 範例: ```python= name="張三" age = 58 print(format(name,'8s'),format(age,'3d')) # 張三   58 ``` 格式指定器: |指定器|說明| |-|-| |d|整數| |f|浮點數| |s|字串| |e|科學記號| |x|16進位表示| |o|8進位表示| |b|2進位表示| |%|百分比表示| |<|靠左對齊| |>|靠右對齊| 指定器前方可以加入數字,表示欄位寬度 範例: ```python= print(format(100,'8d')) # 100 由第8格往左排(預設靠右) print(format(100,'<8d'),end='|') #100 |靠左對齊空8格 print(format(100,'8x')) print(format(100,'8o')) print(format(100,'8b')) # 64 # 144 # 1100100 print(format(0.2389,'6.2%')) #23.89% 留6個位置,%小數留2位。 print(format(123.456,'8.2f')) # 123.46 留8個位置,小數點2位。 ``` print(字串.format(參數列)) ```python= name="張三" age = 58 print("{}的年紀為{}歲".format(name,age)) #張三的年紀為58歲 print(format(name,'8s'),format(age,'3d')) # 張三   58 ``` 另外一種寫法 ```python= name='Mike' func_id='func_A01' print(f'{name} use the {func_id}') #Mike use the func_A01 ``` 使用type取地目前資料型態 ```python= print(type(56)) # <class 'int'> print(type("張三")) # <class 'str'> print(type(True)) # <class 'bool'> ``` S20200721 By YTC M20200908 補充與調整, 20201102 M20210108 補充整理後的資料