eepson123tw / public-notes

some notes about the develop issue and can quickly review
0 stars 0 forks source link

Learning Python 30 days #10

Open eepson123tw opened 2 months ago

eepson123tw commented 2 months ago

觀測 py 要學習的部分為:


Next steps:

eepson123tw commented 2 months ago

torchaudio==2.4.0.dev20240815+cu121torchvision==0.20.0.dev20240815+cu121 這樣的版本號包含了以下幾個部分:

  1. 2.4.0 / 0.20.0:這是主版本號,表示主要功能更新和改進。

  2. dev20240815:

    • dev 表示這是一個開發版(development version),而不是穩定的發布版。
    • 20240815 表示該版本是從源代碼生成的,並且包含了日期資訊。這個日期通常是編譯或打包該開發版的日期,格式為 YYYYMMDD(年-月-日)。例如,20240815 表示該版本是 2024 年 8 月 15 日生成的開發版本。
  3. +cu121:

    • cu121 表示此版本與特定的 CUDA 版本相容。cu121 表示這是針對 CUDA 12.1 的編譯版本,用於利用 NVIDIA GPU 加速訓練或推理任務。
    • CUDA 是 NVIDIA 的平行計算框架,通常用於深度學習模型的 GPU 加速,因此這個標籤表示該庫是使用該版本的 CUDA 編譯的。

總結

eepson123tw commented 2 months ago

keyword arguments 具名參數允許你在呼叫函式時明確指定每個參數的名稱,從而可以避免必須按照順序提供參數的要求。

bm25_retriever = BM25Retriever.from_defaults(
    nodes=XXX, similarity_top_k=min(len(base_nodes), self.top_k)
)
eepson123tw commented 3 weeks ago

在 Python 中,dict(字典)和 object(物件)有明顯的差異。


差異

字典(dict)

物件(object)


CRUD 操作方法

對字典的操作

Create(創建)

# 創建空字典
my_dict = {}

# 添加鍵值對
my_dict['name'] = 'Alice'
my_dict['age'] = 30

Read(讀取)

# 讀取值
name = my_dict['name']

# 使用 get 方法避免鍵不存在的錯誤
age = my_dict.get('age', '未設定')

Update(更新)

# 更新值
my_dict['age'] = 31

# 批量更新
my_dict.update({'city': '台北', 'country': '台灣'})

Delete(刪除)

# 刪除鍵值對
del my_dict['age']

# 使用 pop 方法
city = my_dict.pop('city', '未找到')

# 清空字典
my_dict.clear()

對物件的操作

Create(創建)

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# 創建物件實例
person = Person('Alice', 30)

Read(讀取)

# 讀取屬性
name = person.name
age = person.age

Update(更新)

# 更新屬性
person.age = 31

Delete(刪除)

# 刪除屬性
del person.age

# 刪除物件
del person

eepson123tw commented 3 weeks ago
import csv

with open('students.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile, dialect='unix')
使用 open 函數以寫入模式('w')打開一個名為 students.csv 的檔案。如果檔案不存在,會自動創建;如果存在,會覆蓋原有內容。
newline='' 參數確保在寫入 CSV 檔案時,不會自動添加額外的換行符號,這在不同作業系統之間保持一致的行結尾非常重要。
with 語句確保在塊內的操作完成後,自動關閉檔案,避免資源洩漏。

創建一個 CSV 寫入器對象 writer,用於將資料寫入 csvfile(即 students.csv)。
dialect='unix' 指定了 CSV 的格式方言。'unix' 方言通常使用逗號(, )作為欄位分隔符,並使用 \n 作為行結尾符號,這與大多數 Unix 系統的預設行結尾一致。
eepson123tw commented 2 weeks ago

little tips: typ python will show funny thing.

import this import antigravity

eepson123tw commented 2 weeks ago

https://pypi.org/