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

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

7w4.net提供免费和付费技能下载。

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