markdown-it
demo
Delete
Submit
clear
permalink
```py # 將一個列表中的所有元素都乘以 2 lst = [1, 2, 3, 4, 5] result = list(map(lambda x: x * 2, lst)) print(result) # [2, 4, 6, 8, 10] # 使用 lambda 函數對一個字典進行排序 d = {'apple': 10, 'banana': 5, 'orange': 8} sorted_d = sorted(d.items(), key=lambda x: x[1], reverse=True) print(sorted_d) # [('apple', 10), ('orange', 8), ('banana', 5)] # 使用 lambda 函數過濾列表中的元素 lst = [1, 2, 3, 4, 5] filtered_lst = list(filter(lambda x: x % 2 == 0, lst)) print(filtered_lst) # [2, 4] """ 這是一個區塊註解的範例。 這個區塊註解可以跨越多行。 你可以在這裡寫下註解的內容。 """ # 這是一個單行註解 print("Hello, World!") def add_numbers(a, b): """ 將兩個數字相加並回傳結果。 Args: a (int): 第一個數字。 b (int): 第二個數字。 Returns: int: 兩個數字的總和。 """ return a + b ``` ### List ```py # 串列分隔符號 my_list = ['apple', 'banana', 'orange'] result = ','.join(my_list) print(result) # 'apple,banana,orange' my_list = ['apple', 'banana', 'orange'] result = ';'.join(my_list) print(result) # 'apple;banana;orange' # 串列串接 list1 = [1, 2, 3] list2 = [4, 5, 6] list3 = list1 + list2 print(list1) # 輸出: [1, 2, 3] print(list2) # 輸出: [4, 5, 6] print(list3) # 輸出: [1, 2, 3, 4, 5, 6] list1.extend(list2) print(list1) # 輸出: [1, 2, 3, 4, 5, 6] print(list2) # 輸出: [4, 5, 6] # 在已存在的串列中增加一個元素 my_list = [1, 2, 3] new_element = 4 my_list.append(new_element) print(my_list) # 輸出: [1, 2, 3, 4] # 在串列的特定位置插入一個元素 my_list = [1, 2, 3, 5] new_element = 4 index_to_insert = 3 # 在索引 3 的位置插入新元素 my_list.insert(index_to_insert, new_element) print(my_list) # 輸出: [1, 2, 3, 4, 5] ``` ### 類別帶函式型參數 ```py print("Hello, World!") # 方法(Method):通常使用蛇形命名法(snake_case),即所有單字小寫,用底線 _ 分隔單字,例如 my_method。 def calculate_average(numbers): total = sum(numbers) return total / len(numbers) # 類別(Class):通常使用駝峰命名法(CamelCase),即每個單字的開頭都使用大寫字母,例如 MyClass。 class MyClass: def __init__(self, param1=None): self.param1 = param1 # 私有屬性或方法(Private attribute/method):在名稱前加上一個底線 _,例如 _private_method。 def my_method(self, arg1, arg2): if self.param1 is None: return print("avg:", self.param1([arg1, arg2])) some = MyClass(calculate_average) some.my_method(9, 5) ``` ### 字串格式化方式 ```py name = "Alice" age = 30 message = "My name is {} and I am {} years old.".format(name, age) print(message) ``` ### for ```py fruits = ['apple', 'banana', 'orange'] for fruit in fruits: print(fruit) # 輸出: # apple # banana # orange for index, fruit in enumerate(fruits): print(f"Index {index}: {fruit}") # 輸出: # Index 0: apple # Index 1: banana # Index 2: orange for i in range(5): print(i) # 輸出: # 0 # 1 # 2 # 3 # 4 names = ['Alice', 'Bob', 'Charlie'] ages = [25, 30, 22] for name, age in zip(names, ages): print(f"{name} is {age} years old") # 輸出: # Alice is 25 years old # Bob is 30 years old # Charlie is 22 years old ``` ### math ```py a = 5 b = 10 # 使用 min() 函數取得兩個數字中較小的一個 min_value = min(a, b) print(min_value) # 輸出結果為 5 # 使用 max() 函數取得兩個數字中較大的一個 max_value = max(a, b) print(max_value) # 輸出結果為 10 # 使用 max() 函數比較多個數值 numbers = [5, 10, 3, 7, 15] max_value = max(numbers) print(max_value) # 輸出結果為 15 import math # 計算 sin(45°) 和 cos(60°) angle_rad_45 = math.radians(45) # 將角度轉換為弳度 angle_rad_60 = math.radians(60) sin_45 = math.sin(angle_rad_45) cos_60 = math.cos(angle_rad_60) print("sin(45°) =", sin_45) # 印出:sin(45°) = 0.7071067811865475 print("cos(60°) =", cos_60) # 印出:cos(60°) = 0.49999999999999994 # 計算指數函數 x = 2 exp_x = math.exp(x) print("e^2 =", exp_x) # 印出:e^2 = 7.3890560989306495 ``` ### Class ```py class Person: # 初始化函數,在創建物件時被呼叫 def __init__(self, name, age): self.name = name self.age = age # 方法:打印個人資訊 def print_info(self): print(f"姓名:{self.name},年齡:{self.age} 歲") # 創建 Person 類別的實例 person1 = Person("Alice", 30) person2 = Person("Bob", 25) # 呼叫 print_info 方法來打印個人資訊 person1.print_info() # 印出:姓名:Alice,年齡:30 歲 person2.print_info() # 印出:姓名:Bob,年齡:25 歲 ``` ### Random ```py import random # 假設有一個列表 my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 從列表中隨機抽取 3 個元素 sampled_list = random.sample(my_list, 3) # 輸出抽樣結果 print("Sampled List:", sampled_list) # 輸出結果可能是不同的,例如:Sampled List: [9, 3, 8] # 生成 0 到 9 之間的隨機整數(不包含 9) num1 = random.randrange(10) print(num1) # 可能輸出: 3, 6, 0, ... # 生成 1 到 7 之間的隨機整數(不包含 7) num2 = random.randrange(1, 7) print(num2) # 可能輸出: 4, 2, 5, ... # 生成 0 到 10 之間的隨機偶數(不包含 10) even_num = random.randrange(0, 10, 2) print(even_num) # 可能輸出: 4, 8, 2, ... ``` ### Zip ```py list1 = [10, 20, 30, 40, 50] list2 = [5, 10, 15, 20, 25, 30, 35] # 使用 zip() 函式將兩個串列的對應項目組合 combined = zip(list1, list2) # 使用迴圈處理對應項目進行相減操作 result = [] for x, y in combined: result.append(x - y) print(result) # 輸出: [5, 10, 15, 20, 25] # 移除對應元素 list1 = list1[len(result):] list2 = list2[len(result):] print(list1) # 輸出: [] print(list2) # 輸出: [30, 35] ``` ### 單元測試 ```py import unittest # 要測試的函式,計算兩個數的和 def add(a, b): return a + b # 測試類別,繼承自 unittest.TestCase class TestAddFunction(unittest.TestCase): def test_add_positive_numbers(self): self.assertEqual(add(2, 3), 5) # 預期結果是 5 def test_add_negative_numbers(self): self.assertEqual(add(-2, -3), -5) # 預期結果是 -5 if __name__ == '__main__': unittest.main() ``` ```bash python -m unittest # 執行所有測試 ``` ### 使用 Mock 進行單元測試 api_client.py ```py import requests def fetch_data(): response = requests.get('https://api.example.com/data') return response.json() ``` ```py import unittest from unittest.mock import Mock, patch from api_client import fetch_data class TestApiClient(unittest.TestCase): @patch('api_client.requests.get') # 替換 api_client 模組中的 requests.get 函式 def test_fetch_data(self, mock_get): # 建立 Mock 物件來模擬 requests.get 的回應 mock_response = Mock() mock_response.json.return_value = {'data': 'example'} mock_get.return_value = mock_response # 執行 fetch_data 函式 result = fetch_data() # 驗證 Mock 物件的方法是否被呼叫過 mock_get.assert_called_once() # 驗證函式回傳的結果是否正確 self.assertEqual(result, {'data': 'example'}) if __name__ == '__main__': unittest.main() ```
html
source
debug
Fork me on GitHub