jm-jsjkxyjs01-liu-801

👤 user_1d0acb68 📦 v1.0.0 ⭐ 3.8 ⬇️ 513 下載
🎓 教育學習 免費

📖 技能介紹

# 建立指令碼檔案

cat > \~/Desktop/word_sorter.py << 'EOF'

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

"""

單詞按首字母排序工具

支援中英文、去重、大小寫處理

"""

import re

import sys

def extract_words(text):

"""從文本中提取單詞(支援中英文)"""

# 英文單詞(字母開頭)

english_words = re.findall(r'[A-Za-z]+', text)

# 中文單詞(2-4箇中文字元)

chinese_words = re.findall(r'[\u4e00-\u9fff]{2,4}', text)

return english_words + chinese_words

def sort_words(words, reverse=False, case_sensitive=False, remove_duplicates=True):

"""排序單詞"""

# 去重

if remove_duplicates:

words = list(dict.fromkeys(words)) # 保持順序的去重

# 排序

if case_sensitive:

words.sort(reverse=reverse)

else:

words.sort(key=str.lower, reverse=reverse)

return words

def group_by_first_letter(words):

"""按首字母分組"""

groups = {}

for word in words:

if word and word[0]:

first_char = word[0].upper() if word[0].isalpha() else word[0]

if first_char not in groups:

groups[first_char] = []

groups[first_char].append(word)

return groups

def main():

print("\n" + "="*50)

print("📝 單詞按首字母排序工具")

print("="*50)

if len(sys.argv) < 2:

print("\n使用方法:")

print(" 1. 直接傳入單詞: python word_sorter.py apple banana cat")

print(" 2. 從檔案讀取: python word_sorter.py --file words.txt")

print(" 3. 互動模式: python word_sorter.py --interactive")

print("\n選項:")

print(" --reverse 降序排列")

print(" --case-sensitive 區分大小寫")

print(" --no-dedupe 保留重複詞")

print(" --group 按首字母分組顯示")

print("\n示例:")

print(" python word_sorter.py apple Cat banana dog cat")

print(" python word_sorter.py 蘋果 香蕉 橙子 葡萄")

print(" python word_sorter.py --group 北京 上海 廣州 深圳")

print()

sys.exit(1)

# 解析引數

words = []

use_group = False

reverse = False

小蔥技能有更好的技能skills外掛。

case_sensitive = False

remove_duplicates = True

args = sys.argv[1:]

if '--group' in args:

use_group = True

args.remove('--group')

if '--reverse' in args:

reverse = True

args.remove('--reverse')

if '--case-sensitive' in args:

case_sensitive = True

args.remove('--case-sensitive')

if '--no-dedupe' in args:

remove_duplicates = False

args.remove('--no-dedupe')

# 獲取單詞

if '--interactive' in args:

text = input("\n請輸入單詞或文本: ")

words = extract_words(text)

elif '--file' in args:

file_idx = args.index('--file')

if file_idx + 1 < len(args):

with open(args[file_idx + 1], 'r', encoding='utf-8') as f:

words = extract_words(f.read())

else:

# 直接傳入單詞

words = args

if not words:

print("❌ 未找到有效單詞")

sys.exit(1)

# 排序

sorted_words = sort_words(words, reverse, case_sensitive, remove_duplicates)

# 輸出結果

print(f"\n📊 輸入單詞數: {len(words)}")

if remove_duplicates and len(sorted_words) < len(words):

print(f"📊 去重後: {len(sorted_words)} 個")

print(f"\n{'='*50}")

print("📝 排序結果:")

print('='*50)

if use_group:

groups = group_by_first_letter(sorted_words)

for letter in sorted(groups.keys()):

print(f"\n【{letter}】({len(groups[letter])}個)")

for word in groups[letter]:

print(f" • {word}")

else:

for i, word in enumerate(sorted_words, 1):

print(f"{i:3}. {word}")

# 統計資訊

print(f"\n{'='*50}")

print(f"📈 統計:")

print(f" 首字母分佈: {len(group_by_first_letter(sorted_words))} 個字母")

if len(sorted_words) > 0:

print(f" 最長單詞: {max(sorted_words, key=len)} ({len(max(sorted_words, key=len))}字元)")

print('='*50)

if __name__ == "__main__":

main()

EOF

# 賦予執行許可權(Windows 不需要)

# chmod +x \~/Desktop/word_sorter.py

🤖 AI 評測

這個工具功能設計用心,支援多種輸入方式,但程式碼質量存在明顯問題。正規表示式有錯誤可能導致某些情況失效,文件不夠完善,使用前可能需要自己除錯修復。質量處於中等偏下水平,適合有經驗的使用者嘗試。

📊 多維度評分

適應性3.2
規範性3.5
有效性4
可靠性3.9
可信度5

📁 包含檔案 (1 個)

📄 SKILL.md 5.4 KB