Try   HackMD
tags: python

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=結束字元] )

範例:

print(10,"項目",50) # 輸出 10 項目 50 print(10,"項目",50,sep="&") # 輸出 10&項目&50 下次列印於下一列 print(10,"項目",sep="&",end="") # 輸出 10&項目&50 下次列印於同一列(註:end沒指定,預設為\n)

整理後的格式化輸出

# 範例_字串格式化 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:格式指定器。

範例:

name="張三" age = 58 print(format(name,'8s'),format(age,'3d')) # 張三   58

格式指定器:

指定器 說明
d 整數
f 浮點數
s 字串
e 科學記號
x 16進位表示
o 8進位表示
b 2進位表示
% 百分比表示
< 靠左對齊
> 靠右對齊
指定器前方可以加入數字,表示欄位寬度
範例:
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(參數列))

name="張三" age = 58 print("{}的年紀為{}歲".format(name,age)) #張三的年紀為58歲 print(format(name,'8s'),format(age,'3d')) # 張三   58

另外一種寫法

name='Mike' func_id='func_A01' print(f'{name} use the {func_id}') #Mike use the func_A01

使用type取地目前資料型態

print(type(56)) # <class 'int'> print(type("張三")) # <class 'str'> print(type(True)) # <class 'bool'>

S20200721 By YTC
M20200908 補充與調整, 20201102
M20210108 補充整理後的資料