tags: Python code

Python

環境安裝

基本環境 Python官網

安裝時切記打開環境變數

編輯器推薦VScode VScode官網

若要將開發環境分割可用anaconda Anaconda官網


基本輸入輸出

輸出(印出來)

print('hello')

輸出:hello

字串連結

print('he'+'llo')

輸出:hello

print跳脫符號為 '\'

符號 呈現效果
\' 單引號'
\" 雙引號"
\n 換行
\t 定位空格一個tab的空格
\ 反斜線\

讀取輸入

i=input('輸入區:') print(i)

輸出:輸入區:

輸入:HI

輸出:HI

註解

#我是註解 # 按Ctrl+/可以快速註解

資料類型

字串

#str s="字串"

整數

#int i=520

浮點數

#float f=0.03

布林

#bool b=True

整數

int

查看資料類型

i=0 print(type(i))

輸出:int


運算子

計算運算子

print(3+4)

輸出:5

print(5-2)

輸出:3

print(4*8)

輸出:32

除(浮點數)

print(9/2)

輸出:4.5

除(結果為整數)

print(7//3)

輸出:2

餘數

print(7%5)

輸出:2

次方

print(2**10)

輸出:1024

開根號

print(121**0.5)

輸出:11


比較運算子

運算子 說明 範例
> 大於 x>y(判斷x是否大於y)
< 小於 x<y(判斷x是否小於y)
>= 大於等於 x>=y(判斷x是否大於等於y)
<= 小於等於 x<=y(判斷x是否小於等於y)
== 等於 x==y(判斷x是否等於y)
!= 不等於 x!=y(判斷x是否不等於y)
print(120>32.5)

輸出:True

print("Cat"<"cat") #大寫C編碼為67小寫c編碼為99

輸出:True


邏輯運算子

===

字串處理

重複印出多個相同字串

print('hello'*3)

輸出:hellohellohello

print結尾不換行(end='' 引號中間為字串結尾)

print('he',end='') print('llo')

輸出:hello

python中沒有字元只有字串,同時字串也是一個陣列(如上圖)

p='python'

印出第三個字

print(p[2])

輸出:t

印出第2~4個字

print(p[1:4])

輸出:yth

印出開頭到第3個字

print(p[:2])

輸出:pyt

印出第4個字到結尾

print(p[3:])

輸出:hon

印出最後一個字

print(p[-1])

輸出:n


字串相關函數

回傳ASCII

ord('W')

輸出:87

印出ASCII對應文字

s=ord(87) print(s)

輸出:W

顯示字串長度

l=len('python') print(l)

輸出:6


字串類別提供的函式(domename)

字串分割組合

字串分割 split

s.split('分割用字元')

s1='A B C' print(s1) s2=s1.split(' ') print(s2) print(type(s2))

輸出:A B C

輸出:[A,B,C]

輸出:list

字串連接 join

s1=''.join([a,p,p,l,e]) print(s1) s2='+'.join([A,B,C]) print(s2)

輸出:apple

輸出:A+B+C

大小寫轉換

s='Hello'

全改大寫

s1=s.upper() print(s1)

輸出:HELLO

全改小寫

s2=s.lower() print(s2)

輸出:hello

字串檢測函數

此類回傳值皆為BOOL s為字串

函式 說明
s.isupper() 是否全為大寫
s.islower() 是否全為小寫
s.startswith(s1) 開頭是否為s1
s.endswith(s2) 開頭是否為s2
s.istitle() 開頭是否為大寫
s.isalpha 是否全為英文字母
s.isdigit 是否全為數字
s.isalnum 是否全為英文或數字
s.isspace 是否全為空格

字串搜尋函式

函式 說明
s.count(a) a在s字串中出現次數
s.find() a在s字串中首次出現位置
s.rfind(s1) a在s字串中最後出現位置

字串編修函式

函式 說明
s.replace(old,new) 將old換成now
s.lstrip(ABC) 從左側刪除字元執到不是指定字元為止(未指定則移除空白字元)
s.rstrip(ABC) 同上但是改為右側
s.strip(ABC) 同上但是改為兩側
s.center(n) 致中(n為欄位數量)
s.ljust(n) 靠左(n為欄位數量)
s.rjust(n) 靠右(n為欄位數量)
s.zfill(n) 靠右其餘補0(n為欄位數量)

容器類資料

list

list內部需為同一類變數

建立list

lis=[] l1=[7,4,1,4] print(lis) print(l1)

輸出:[] 輸出:[7,4,1,4]

轉list

list()

輸出串列數字

完整版

range(起始數值,邊界數值(最終數值加1),遞增間隔)

簡寫

預設初始值為0 遞增間隔為1

range(起始數值,邊界數值(最終數值加1))

range(邊界數值(最終數值加1))

list(range(0,10,2))

輸出:[0, 2, 4, 6, 8]

函式 說明
len(lst) 串列長度
max(lst) 串列最大值
min(lst) 串列最小值
(lst) 串列總和

list提供的函式(domename)

函式 說明
lis.addend(obj) 在最後添加新物建obj
lis.clear() 清除lis內容
lis.count(obj) 計算obj在lis出現的次數
lis.extend(obj) 將obj的元素依序添加到lis最後方
lis.index(index) index的索引號
lis.insert(obj,index) obj插入index號的位置
lis.pop(index) 回傳並移除index號的元素(預設最後一個)
lis.remove(index) 移除index號的元素(預設最後一個)
lis.remove(obj) 移除lis中的obj(前面第一個)
lis.reverse() 將lis反向排列
lis.sort(reverse=False) 將lis由小到大排序(reverse=True 則由大到小)

tuple

tuple一旦建立則無法修改(可重新宣告)

tuple內部需不須為同一類變數

建立一個tuple

t=(6,8,'Mon') print(t)

輸出:(6,8,'Mon')

轉tuple

tuple()
函式 說明
tpl.conut(value) 回傳對應value的個數
tpl.index(value) 回傳對應value的索引

set

set是一個沒有索引的集合內容不重複

建立一個set

s=(6,8,'Mon') print(t)

輸出:(6,8,'Mon')

轉set

set()
函式 說明
s1.add(x) 將x加入集合
s1.clear() 清除s1所有內容
s1.defference(s2) 回傳存在s1不在s2的集合(差及s1-s2)
s1.symmetric_defference(s2) 回傳s1 s2共有元素(差及)
s1.union(s2) 回傳s1+s2的所有元素(聯集)
s1.discord(x) 移除s1內的x(沒x則部動作)
s1.isdisjoint(s2) 判斷s1和s2是否沒有相同的玩素
s1.issubset(s2) 判斷s1是否為s2的子集合
s1.issuperset(s2) 判斷s1是否為s2的父集合
s1.pop() 從s1隨機移除一個元素並回傳
s1.remove(x) 從s1移除x不存在則回傳錯誤訊息
s1.remove(x) 從s1移除x不存在則回傳錯誤訊息

dict

dict是一個類似字典類的容器

建立一個dict

d={'A':33,'B':38} print(d)

輸出:{'A':33,'B':38}

函式 說明
d1.clear() 清除d1內所有元素
d1.get(key,default) 回傳key對應值 若沒有key則回傳default 若沒填default則回傳None
d1.tiem() 回傳所有物件以及數值以[(物件,數值),(物件,數值)]的方式顯示
d1.keys() 回傳所有物件
d1.values() 回傳所有數值
d1.setdefault(key,default) 回傳key對應值 若沒有key則將{key,default}添加到字典並回傳default
d1.updeta(d2) 把d2字典內的內容更新進d1
d1.pop(key,default) 移除並回傳key 若沒有key則回傳default 若default未填寫則顯示錯誤訊息
d1.popiton() 隨機回傳一對元素 若為空字典則產生錯誤訊息

if(判斷式)

判斷正負

num=int(input('輸入一個數字:')) if(num>0): print('你輸入的是正數') elif(num<0): print("你輸入的是負數") else: print("你輸入的是0")

輸入:9

輸出:你輸入的是正數

輸入:-3

輸出:你輸入的是負數

輸入:0

輸出:你輸入的是0


迴圈

for

語法

for 變數 in 可迭代物件: 敘述A

常見

for i in range(0,3): print(i)

輸出:0 輸出:1 輸出:2

for i in 'dog': print(i)

輸出:d 輸出:o 輸出:g

for i in [41,34,67]: print(i)

輸出:41 輸出:34 輸出:67

while

n=3
while(n>0):
    print(n)
    n-=1

輸出:3 輸出:2 輸出:1

迴圈特殊功能

break 跳出整個迴圈 continue 結束此次迴圈 pass 無內容時需使用(否則報錯)