timmy / Python 參數解包 (*args 和 **kwargs)
0 likes
0 forks
1 files
Last active 1 year ago
這段 Python 程式碼 展示了 參數解包 (Argument Unpacking) 的應用方式,包括 列表解包 (*args) 和 字典解包 (**kwargs),用於函式呼叫時動態傳遞參數。
| 1 | assert list(range(3, 6)) == [3, 4, 5] |
| 2 | |
| 3 | arguments_list = [3, 6] |
| 4 | assert list(range(*arguments_list)) == [3, 4, 5] |
| 5 | |
| 6 | |
| 7 | def function_that_receives_names_arguments(first_word, second_word): |
| 8 | return first_word + ", " + second_word + "!" |
| 9 |
timmy / 多執行緒工作佇列處理
0 likes
0 forks
1 files
Last active 1 year ago
這段 Python 程式碼 使用 多執行緒 (Threading) 與工作佇列 (Queue) 來 處理 30 個工作項目,確保所有工作都執行完畢後,才會顯示 "All work completed" 訊息。
| 1 | """ |
| 2 | 這段程式碼是建立一個執行緒來處理工作項目,並將 30 個工作項目放入工作佇列中。然後會等待所有工作都完成後才會印出 "All work completed" 的訊息。 |
| 3 | """ |
| 4 | |
| 5 | import threading |
| 6 | import queue |
| 7 | |
| 8 | |
| 9 | # 定義一個函式來處理工作項目 |
| 10 | def process_work_item(work_queue): |
timmy / Wake on LAN (WOL)
0 likes
0 forks
1 files
Last active 1 year ago
這段 Python 程式碼 用於 實現 Wake-on-LAN (WOL),它能透過 網路廣播 (UDP) 發送 Magic Packet,來喚醒遠端電腦(如伺服器或 NAS)。
| 1 | import socket |
| 2 | |
| 3 | |
| 4 | class WakeOnLan: |
| 5 | """ |
| 6 | WOL(Wake on LAN) |
| 7 | """ |
| 8 | |
| 9 | def __init__(self, macaddress): |
| 10 | try: |
timmy / 簡單線性回歸股價預測
0 likes
0 forks
1 files
Last active 1 year ago
這段 Python 程式碼 使用 scikit-learn (sklearn) 建立簡單的線性回歸模型,根據 過去幾天蘋果公司的股價 訓練模型,並 預測未來股價變化。
| 1 | #!/usr/bin/env python |
| 2 | # -*- coding: utf-8 -*- |
| 3 | |
| 4 | |
| 5 | """ |
| 6 | a_simple_linear_regression_model.py: 透過使用 Python 的 sklearn 套件,訓練一個簡單的線性回歸模型,並使用該模型預測蘋果公司的股價變化。 |
| 7 | |
| 8 | Author: Timmy |
| 9 | Copyright: Copyright 2022, Timmy |
| 10 | License: MIT |
timmy / Dash 下拉選單範例
0 likes
0 forks
1 files
Last active 1 year ago
這段 Python Dash 程式碼建立了一個 簡單的網頁應用,包含 下拉選單 (Dropdown),允許使用者選擇 Montréal、Tokyo 或 北京。
| 1 | # -*- coding: utf-8 -*- |
| 2 | |
| 3 | import dash |
| 4 | from dash import html |
| 5 | from dash import dcc |
| 6 | |
| 7 | print(dcc.__version__) |
| 8 | external_stylesheets = ["https://codepen.io/chriddyp/pen/bWLwgP.css"] |
| 9 | |
| 10 | app = dash.Dash( |
Last active 1 year ago
這段程式碼透過嘗試建立與 Google DNS 伺服器(8.8.8.8 的 53 埠)的 TCP 連線,來檢查網路是否正常連接,成功連線表示網路通暢,否則則視為網路有問題。
| 1 | import socket |
| 2 | |
| 3 | def is_connected(host='8.8.8.8', port=53, timeout=3): |
| 4 | """ |
| 5 | 嘗試連線到指定的 host 與 port,預設為 Google 的 DNS 伺服器。 |
| 6 | """ |
| 7 | try: |
| 8 | socket.setdefaulttimeout(timeout) |
| 9 | s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
| 10 | s.connect((host, port)) |
timmy / Ping 網路連線檢查工具
0 likes
0 forks
1 files
Last active 1 year ago
這段程式碼透過多次執行系統的 ping 指令來測試指定主機(預設為 8.8.8.8)的連線狀態,並根據多次成功的回應判斷網路是否穩定連通。
| 1 | import subprocess |
| 2 | import platform |
| 3 | import time |
| 4 | |
| 5 | def ping_once(host): |
| 6 | """ |
| 7 | 使用系統的 ping 指令對指定 host 發送一次封包, |
| 8 | 回傳 True 代表 ping 成功,False 代表失敗。 |
| 9 | """ |
| 10 | # 根據作業系統決定參數:Windows 用 -n,其他平台用 -c |
timmy / YAML 檔案讀寫與資料管理
1 likes
0 forks
1 files
Last active 1 year ago
這段程式碼提供了一個 YAMLProcessor 類別,負責讀取和寫入 YAML 檔案(預設為 local_data.yaml),並將其內容轉換為 pandas.DataFrame 進行處理,適用於需要以表格形式操作 YAML 資料的應用場景。
| 1 | import os |
| 2 | import yaml |
| 3 | import pandas as pd |
| 4 | import logging |
| 5 | from typing import Any, Dict, List |
| 6 | |
| 7 | # 設定 logging 基本參數 |
| 8 | logging.basicConfig(level=logging.INFO) |
| 9 | logger = logging.getLogger(__name__) |
timmy / 檢查 Python 版本是否受 Streamlit 支援
0 likes
0 forks
1 files
Last active 1 year ago
這段程式碼適合用於開發或部署 Streamlit 應用時,確保運行的 Python 版本符合 Streamlit 的支援範圍,避免因版本不符而導致問題。
| 1 | import sys |
| 2 | |
| 3 | class PythonVersionChecker: |
| 4 | def __init__(self, supported_versions): |
| 5 | self.supported_versions = supported_versions |
| 6 | |
| 7 | def get_current_version(self): |
| 8 | """取得當前的 Python 版本。""" |
| 9 | return sys.version_info[:2] |
timmy / Telegram Bot 通知系統
0 likes
0 forks
2 files
Last active 1 year ago
這段程式碼提供了一個 TelegramNotifier 類別,透過 Telegram Bot API 發送訊息到指定的聊天 ID (chat_id),並透過 loguru 記錄發送狀態。程式會從環境變數載入 Bot Token 和 Chat ID,並在啟動時發送通知,適用於自動化系統監控或事件提醒。
| 1 | TELEGRAM_BOT_TOKEN=你的_bot_token |
| 2 | TELEGRAM_CHAT_ID=你的_chat_id |