iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0
Cloud Native

docker系列 第 9

Day9 Python 條件選擇&函數

  • 分享至 

  • xImage
  •  

Python 提供了 if、else、elif 三種語法來處理大量的邏輯判斷運算和流程控制

if <條件1>:
  # 符合條件時要做的事
else:
  # 不符合條件時要做的事

if 寫完之後接冒號、下一行縮排後開始寫要做什麼事情。注意 else 是否則的意思不用寫條件

如果需要用到多層條件,就會用到 elif(否則如果)

if <條件1>:
  # 符合條件1時要做的事
elif <條件2>:
  # 符合條件2時要做的事
else:
  # 不符合條件1及條件2時要做的事

迴圈

在程式執行的過程中,有時候會重複執行一些相同的運算,這時可以使用「迴圈」來處理這些重複且相同的程式碼,大幅增加程式的可閱讀性以及撰寫程式的效率

for

「for 迴圈」的使用的方法為for 變數 in 可迭代的物件:,執行之後,for 迴圈會依序將可以迭代的物件取出,賦值給指定的變數

for i in range(1, 10, 2):
    print("{:^9}".format("*" * i))
    *    
   ***
  *****
 *******
*********

如果將 for 迴圈放在 for 迴圈裡,就會形成「巢狀迴圈」,巢狀迴圈會先從「最內層」的迴圈開始執行,執行完畢後再執行外層的迴圈

for i in range(0, 3):
    for j in range(1, 10, 2):
        print("{:^9}".format("*" * j))
    *    
   ***
  *****
 *******
*********
    *
   ***
  *****
 *******
*********
    *
   ***
  *****
 *******
*********

while

「while 迴圈」是根據條件判斷,決定是否重複或停止的迴圈,用法為while 條件:,如果條件判斷為 True,就會不斷執行迴圈內容,如果判斷為 False,就會停止迴圈

i = 1
while i < 10:
    print("{:^9}".format("*" * i))
    i += 2
    *    
   ***
  *****
 *******
*********

函數

函數是預先建構好的可重復使用的,用來實現單一或相關聯功能的程式碼,能提高應用的模塊性,和程式碼的重複利用率。Python 本身提供了許多內建函數,比如 print(),但也可以自己創建函數,這被叫做用戶自定義函數。

def add(a, b):
    ans = a + b
    return ans


print(add(3, 4))
7

函式以 def 關鍵字定義,並以 return 將結果輸出。
一個函式只應該做好一件事情,太複雜拆開減少耦合,引數原則至多讓使用者輸入 2 個。

*args 和 **kㄊargs

*args 這個數值可透過使用者自定義輸入,透過 * 收集的引數會被放到一個叫 args 的元組 (tuple)中,所以我們可以使用 for 迴圈來對它進行迭代。
使用 *args 的好處是我們當今天不確定預先輸入至函式的變數有多少時,我們可以透過這個方法來避免輸入至函式的變數比預先設定的多,導至報錯。

def add(*args):
    ans = 0
    print(args)
    for i in args:
        ans += i
    return ans


print(add(3, 4, 5, 6, 7, 8, 9, 10))
(3, 4, 5, 6, 7, 8, 9, 10)
52

**kwargs 會自己把它拆開將有指定的參數變成 dict 格式。

def test(**kwargs):
    print(kwargs)


test(name="a", age="20")
{'name': 'a', 'age': '20'}

概括的說一個 * 號類似於將資料蒐集存成 turple ,兩個 * 號則是蒐集完並且存成 dict。


上一篇
Day 8 python 運算子
下一篇
Day10 python pip 介紹&虛擬環境
系列文
docker30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言