跳到主要內容

項目2-2應用

使用條件判斷和迴圈的應用

結合條件判斷和迴圈,可以執行更複雜的邏輯。以下是一個示例:

python
# 找出列表中的偶數並列印 numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for num in numbers: if num % 2 == 0: print(num)

在這個例子中,我們使用 for 迴圈遍歷列表中的數字,並使用條件判斷找出偶數。

函數的進階應用

函數可以有預設參數值和返回多個值。以下是一個例子:

python
# 函數帶有預設參數值 def greet(name, greeting="Hello"): print(greeting + ", " + name + "!") # 調用函數 greet("Alice") greet("Bob", "Good morning")

在這個例子中,greet 函數有一個預設的問候語,當然你也可以提供自己的問候語。

列表生成式

使用列表生成式可以簡潔地創建列表。以下是一個例子:

python
# 使用列表生成式創建平方數列表 squares = [x**2 for x in range(1, 6)] print(squares)

在這個例子中,我們使用列表生成式創建了包含1到5的數字平方的列表。

字典的進階應用

字典可以進行遍歷並取得鍵值對。以下是一個例子:

python
# 遍歷字典並列印鍵和值 person = {"名字": "小明", "年齡": 25, "城市": "台北"} for key, value in person.items(): print(key + ": " + str(value))

在這個例子中,我們使用 items 方法遍歷字典中的鍵值對並進行列印。


類別和物件

Python支援物件導向程式設計,以下是一個簡單的類別和物件的例子:

python
# 定義一個簡單的類別 class Dog: def __init__(self, name, age): self.name = name self.age = age def bark(self): print("汪汪!") # 創建一個Dog物件 my_dog = Dog("Buddy", 3) # 訪問物件的屬性和呼叫方法 print("我的狗的名字是:" + my_dog.name) print("年齡:" + str(my_dog.age)) my_dog.bark()

在這個例子中,我們定義了一個 Dog 類別,它有一些屬性(如 nameage)和一個方法(bark)。然後,我們創建了一個 Dog 的物件並訪問了它的屬性和方法。

使用第三方套件

Python社群提供了豐富的第三方套件,你可以使用 pip 工具安裝它們。以下是一個例子:

bash
# 在終端機中使用 pip 安裝 requests 套件 pip install requests
python
# 在程式中使用 requests 套件 import requests response = requests.get("https://www.example.com") print("網頁內容:") print(response.text)

在這個例子中,我們使用了第三方套件 requests 來發送HTTP請求,並印出網頁的內容。

使用虛擬環境

建立虛擬環境可以隔離不同項目的套件依賴。以下是一個例子:

bash
# 在終端機中創建虛擬環境 python -m venv myenv # 啟用虛擬環境(Windows) .\myenv\Scripts\activate # 啟用虛擬環境(Unix 或 MacOS) source myenv/bin/activate

這將創建一個名為 myenv 的虛擬環境,然後你可以在其中安裝和管理套件。

note  下面三項已經超過項目2的範圍

  1. 物件導向程式設計(類別和物件的介紹)。
  2. 第三方套件的使用(requests套件的安裝與使用)。
  3. 虛擬環境的建立。


列表(List)和迴圈的進階應用

  1. 列表的擴充與切片:

    python
    # 創建一個列表 numbers = [1, 2, 3, 4, 5] # 在列表末尾添加元素 numbers.append(6) # 在指定位置插入元素 numbers.insert(2, 7) # 使用切片截取部分列表 subset = numbers[1:4]
  2. 列表的遍歷和操作:

    python
    # 使用 for 迴圈遍歷列表 for num in numbers: print(num) # 使用列表生成式進行操作 squared_numbers = [num**2 for num in numbers]

字典(Dictionary)和條件語句的進階應用

  1. 字典的擴充與操作:

    python
    # 創建一個字典 person = {"名字": "小明", "年齡": 25, "城市": "台北"} # 新增或更新字典中的鍵值對 person["性別"] = "男" # 刪除字典中的鍵值對 del person["年齡"]
  2. 條件語句的進階應用:

    python
    # 單行 if-else 語句 age = 20 status = "成年" if age >= 18 else "未成年" # 多條件的判斷 weather = "晴天" if weather == "晴天": print("出門玩") elif weather == "下雨": print("宅在家裡") else: print("無法判斷天氣")


 

函數(Function)和字符串(String)的進階應用

  1. 函數的返回值:

    python
    # 定義一個返回多個值的函數 def calculate_numbers(a, b): sum_result = a + b product_result = a * b return sum_result, product_result # 調用函數並接收返回值 sum_result, product_result = calculate_numbers(3, 4) print("和為:" + str(sum_result)) print("積為:" + str(product_result))
  2. 字符串的格式化:

    python
    # 使用 f 字符串進行格式化 name = "小明" age = 25 message = f"我的名字是{name},年齡是{age}歲。" print(message) # 使用 format 方法進行格式化 greeting = "Hello, {}!" formatted_greeting = greeting.format("Alice") print(formatted_greeting)

條件判斷和迴圈的進階應用

  1. 迴圈中的 else 語句:

    python
    # for 迴圈中的 else 語句 numbers = [1, 2, 3, 4, 5] for num in numbers: if num == 6: print("找到了6!") break else: print("未找到6。")
  2. while 迴圈和 continue 語句:

    python
    numbers = [1, 3, 5, -2, 4] total = 0 index = 0 while index < len(numbers): if numbers[index] < 0: index += 1 continue total += numbers[index] index += 1 print("總和為:" + str(total))

說明

  1. numbers = [1, 3, 5, -2, 4]:創建了一個列表 numbers,包含了一些整數。

  2. total = 0index = 0:初始化兩個變數,total 用來追蹤正數的總和,index 用來追蹤目前在列表中的位置。

  3. while index < len(numbers)::這是一個 while 迴圈,當 index 小於列表的長度時,迴圈會一直執行。

  4. if numbers[index] < 0::這是一個條件判斷,檢查目前位置的數字是否為負數。

  5. index += 1continue:如果目前位置的數字是負數,則將 index 增加1,並且使用 continue 語句跳過本次迴圈的其餘部分,直接進入下一次迴圈。

  6. total += numbers[index]:如果目前位置的數字是正數,則將該數字加到 total 中。

  7. index += 1:將 index 增加1,以進入下一次迴圈。

  8. 迴圈結束後,印出正數的總和。

函數和字符串的進階應用

  1. 函數的返回值:

    python
    # 定義一個返回多個值的函數 def calculate_numbers(a, b): sum_result = a + b product_result = a * b return sum_result, product_result # 調用函數並接收返回值 sum_result, product_result = calculate_numbers(3, 4) print("和為:" + str(sum_result)) print("積為:" + str(product_result))

    這裡的 return sum_result, product_result 返回了兩個值,而在函數的調用處,我們使用 sum_result, product_result = calculate_numbers(3, 4) 將這兩個值分別賦值給了 sum_resultproduct_result

  2. 字符串的格式化:

    python
    # 使用 f 字符串進行格式化 name = "小明" age = 25 message = f"我的名字是{name},年齡是{age}歲。" print(message)

    在這裡,f"我的名字是{name},年齡是{age}歲。" 使用了 f 字符串,其中 {name}{age} 會被對應的變數值替換。

條件判斷和迴圈的進階應用

  1. 迴圈中的 else 語句:

    python
    # for 迴圈中的 else 語句 numbers = [1, 2, 3, 4, 5] for num in numbers: if num == 6: print("找到了6!") break else: print("未找到6。")

    在這裡,else 語句在迴圈正常執行完畢後執行,但如果在迴圈中有 break 被觸發,else 就不會執行。這是 for 迴圈中的一個特殊應用。

  2. while 迴圈和 continue 語句:

    python
    # 使用 while 迴圈計算總和,遇到負數則跳過 numbers = [1, 3, 5, -2, 4] total = 0 index = 0 while index < len(numbers): if numbers[index] < 0: index += 1 continue total += numbers[index] index += 1 print("總和為:" + str(total))

    這裡的 continue 語句用於跳過當前迴圈中的其餘代碼,直接進入下一次迴圈。在這個例子中,當遇到負數時,continue 會跳過將該數字加到 total 的步驟


模組(Module)和錯誤處理

  1. 模組的使用:

    python
    # 創建一個名為 mymodule.py 的模組 # mymodule.py 內容 # def greet(name): # return f"Hello, {name}!" # 在主程式中使用模組 import mymodule result = mymodule.greet("Alice") print(result)

    這裡,我們創建了一個名為 mymodule 的模組,並在主程式中使用 import 來引入並使用模組中的 greet 函數。

  2. 檔案的讀寫:

    python
    # 寫入檔案 with open("example.txt", "w") as file: file.write("Hello, this is a sample text.") # 讀取檔案 with open("example.txt", "r") as file: content = file.read() print("檔案內容為:" + content)

    這裡,我們使用 open 函數打開一個檔案,使用 write 方法寫入內容,然後再使用 read 方法讀取檔案內容。

簡單的錯誤處理

python
# 嘗試執行可能會引發錯誤的代碼 try: result = 10 / 0 except ZeroDivisionError as e: print(f"錯誤:{e}")

在這裡,我們使用 try-except 塊捕獲可能會引發的 ZeroDivisionError 錯誤,並印出相應的錯誤消息。

模組、檔案的讀寫和錯誤處理的進階應用

  1. 使用第三方套件:

    bash
    # 在終端機中使用 pip 安裝 requests 套件 pip install requests
    python
    # 在程式中使用 requests 套件 import requests response = requests.get("https://www.example.com") print("網頁內容:") print(response.text)

    在這裡,我們使用了第三方套件 requests 來發送 HTTP 請求,獲取並印出網頁的內容。

  2. 使用虛擬環境:

    bash
    # 在終端機中創建虛擬環境 python -m venv myenv # 啟用虛擬環境(Windows) .\myenv\Scripts\activate # 啟用虛擬環境(Unix 或 MacOS) source myenv/bin/activate

    這裡,我們使用 python -m venv 命令創建一個虛擬環境,然後使用 activate 命令啟用該虛擬環境。

列表生成式(List Comprehension)

python
# 使用列表生成式創建平方數列表 squares = [x**2 for x in range(1, 6)] print(squares)

在這個例子中,使用列表生成式可以簡潔地創建包含1到5的數字平方的列表。這種語法更為簡潔且易讀,是Python中常見的技巧。

字典生成式(Dictionary Comprehension)

python
# 使用字典生成式創建數字及其平方的字典 squares_dict = {x: x**2 for x in range(1, 6)} print(squares_dict)

這裡使用了字典生成式,創建了一個字典,其中鍵是1到5的數字,值是對應數字的平方。這是一種簡潔的方式來創建字典。

Lambda 函數

python
# 使用 lambda 函數計算兩數之和 add = lambda x, y: x + y result = add(3, 4) print(result)

lambda 函數是一種簡單的匿名函數,這裡的例子定義了一個 add 函數,可以計算兩個數字的和。這在一些簡單的情境下可以取代使用 def 定義的函數。

選擇性參數和預設值

python
# 函數帶有選擇性參數和預設值 def greet(name, greeting="Hello", punctuation="!"): message = f"{greeting}, {name}{punctuation}" print(message) # 調用函數 greet("Alice") greet("Bob", "Good morning", "?")

在這裡,greet 函數接受三個參數,其中 greetingpunctuation 是選擇性參數,並且有預設值。這意味著在調用函數時,可以提供這些參數,也可以不提供,不提供時將使用預設值。


目前已經涵蓋了項目2的範疇,包括基本的Python概念、函數、條件判斷、迴圈、列表、字典、模組、檔案的讀寫、錯誤處理等基礎內容,並在進階部分介紹了一些更高級的主題如列表生成式、字典生成式、Lambda 函數等。

留言

這個網誌中的熱門文章

workshop list

  小孩最開始說的那幾句話 小孩商品的紙盒回收製作 小孩商品回收製作  奶瓶  各種紙箱與透明紙

書面審核、所得額標準與同業利潤標準的差異

1. 擴大書面審核 目的 :鼓勵小型營利事業按擴大書審純益率標準申報,以簡化稽徵成本和程序。 適用條件 : 全年營業收入及非營業收入(不包括土地及其定著物之交易增益)合計不超過3000萬元。 結算申報書表齊全。 自行調整之純益率高於擴大書審純益率標準。 申報期限內繳清應納稅款。 計算公式 : ( 營收淨額 + 業外收入 ) × 擴大書審純益率 × 17 % = 應納稅額 ( 營收淨額 + 業外收入 ) × 擴大書審純益率 × 20% = 應納稅額 2. 所得額標準 適用情況 :稽徵機關每年依實際申報狀況,核定該業所得額標準。 收入合計 : <3000萬 :可依擴大書審純益率標準自行調整申報。 >3000萬 :如申報所得額高於該業標準,應進行書面審核。 計算公式 : ( 營收淨額 × 所得額標準 + 業外收入 − 業外損失 ) × 17 % = 應納稅額 ( 營收淨額 × 所得額標準 + 業外收入 − 業外損失 ) ×20 % = 應納稅額 3. 同業利潤標準 適用情況 :營利事業無法提供帳證或資料不健全時,稽徵機關可依同業利潤標準認定所得。 標準 : 淨利率標準 :未提供營業收入、成本及費用時適用。 毛利率標準 :未提供營業收入及成本時適用。 注意 :此標準具懲罰性,建議避免使用。 建議 費用不足、營業額高(年營收超過2000萬) :建議採所得額標準,調帳機會低。 費用不足、營業額低(年營收2000萬以下) :可採書審申報,雖有風險,但調帳機會相對較低,即使調帳也僅需按照同業利潤標準補稅。