Table of Contents
1. Output
1.1 print
print 可以用來 output 字串
print('Hello World!')
# Hello World!
print function 接受幾個 arguments:
print(*objects, sep=’ ‘, end=’\n’, file=None, flush=False)
*object – 可為一個以上的 objects,如果超過一個 object,要用 , 來區隔
sep – 分隔符號,用來 concat object 之間的字串,default 為一個空格
end – 結束符號,用來決定輸出的結尾要加上什麼字串,default 為 \n
file – 輸出至指定的檔案
flush – 是否將 buffering 的 data 寫入到檔案中,預設為 false
str1 = 'Hello'
str2 = 'World'
print(str1, str2, sep = ' Jimmy ', end = 'Yes!!!')
# Hello Jimmy WorldYes!!!
flush 是用來做什麼的?
舉例來說,要將 print 的字串寫入到某個檔案裡:
f = open('test.txt', 'w')
print('Hello World', file = f)
執行完會發現字串並沒有被寫入檔案裡,原因是執行完後,’Hello World’ 會被存在 buffering 裡的,直到執行 f.close()
才會將 buffering 的內容寫到檔案裡。
如果將程式改寫成:
f = open('test.txt', 'w')
print('Hello World', file = f, flush = true)
那麼不用 f.close()
Python 就會將字串寫進檔案裡。
2. Loop
2.1 for loop
2.1.1 迭代 list 或是 string
# 迭代 list
words = ['cat', 'window', 'defenestrate']
for w in words:
print(w, len(w))
cat 3
window 6
defenestrate 12
# 迭代 string
str = 'Hi'
for s in str:
print(s)
H
i
2.1.2 搭配 range 使用
用來決定要重複執行幾次 loop
range function 可以產生一個等差數列 range(start, stop[, step]) >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list(range(1, 11)) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> list(range(0, 30, 5)) [0, 5, 10, 15, 20, 25] >>> list(range(0, 10, 3)) [0, 3, 6, 9] >>> list(range(0, -10, -1)) [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] >>> list(range(0)) [] >>> list(range(1, 0)) []
for i in range(5):
print(i)
0
1
2
3
4
a = ['Mary', 'had', 'a']
for i in range(len(a)):
print(i, a[i])
0 Mary
1 had
2 a
2.2 while loop
通常用在不確定 loop 會跑幾次的情況,只要 condition 是 true 就會持續執行
i = 0
while i < 4:
i += 1
if i == 3:
continue
print(i)
1
2
4
2.3 break Statements
break 會立刻跳出 loop,不繼續執行 loop
for n in range(5):
if (n == 2):
break
print(n)
0
1
i = 1
while i < 6:
print(i)
if (i == 2):
break
i += 1
1
2
2.4 continue Statements
continue 會直接跳到下一次的 loop
fruits = ["apple", "banana", "cherry"]
for x in fruits:
if x == "banana":
continue
print(x)
apple
cherry
i = 0
while i < 4:
i += 1
if i == 3:
continue
print(i)
1
2
4
2.5 else clauses
else 用來決定跑完 loop 要做什麼事,但如果 loop 是被 break 給停止的話,那就不會執行 else 的 block
for x in range(3):
print(x)
else:
print('Finished!')
0
1
2
Finished!
i = 1
while i < 3:
print(i)
i += 1
else:
print("i is no longer less than 3")
1
2
i is no longer less than 3
3. Conditions
3.1 if Statements – if, elif, else
a = 200
b = 33
if b > a:
print("b is greater than a")
elif a == b:
print("a and b are equal")
else:
print("a is greater than b")
a is greater than b
3.2 ternary operator
a, b = 10, 20
min = a if a < b else b
print(min)
10
3.3 match Statements
用來一次判斷多種 conditions,其中 _ 用來表示都不符合以上的 case 時要做的事情:
def http_error(status):
match status:
case 400:
return "Bad request"
case 404:
return "Not found"
case 418:
return "I'm a teapot"
case _:
return "Something's wrong with the internet"
當多個 case 要做一樣的事情時,可以用 | 來表示:
case 401 | 403 | 404:
return "Not allowed"
也可以在 case 中加入 if 做判斷:
match point:
case Point(x, y) if x == y:
print(f"Y=X at {x}")
case Point(x, y):
print(f"Not on the diagonal")
4. 參考資料
4. 深入了解流程控制— Python 3.11.4 說明文件
內建函式 — Python 3.11.4 說明文件
python的print(flush=True)实现动态loading……效果原创
Python While Loops – W3Schools
Ternary Operator in Python – GeeksforGeeks
如果覺得我的文章有幫助的話,歡迎幫我的粉專按讚哦~謝謝你!