iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0
Software Development

軟體開發養成計畫:以小程式實作深化開發能力系列 第 5

[Day5]文字處理入門:簡單字數統計程式

  • 分享至 

  • xImage
  •  

昨天介紹了 Python 的基礎模組與開發環境,
今天要來正式挑戰用 VS Code 寫出第二個小程式──字數統計工具

這項功能相信大家一定都用過,在寫報告或自傳時,字數往往是必須掌握的重點。過去我都是依靠 Word 的內建字數統計功能,但每次要用的時候還得另外打開 Word,多少有點麻煩。

因此我想做一個更輕便的小工具,能夠像 App 一樣放在電腦桌面上,隨點隨開,介面簡單明瞭,讓我在需要時能馬上統計字數,不用再多繞一圈。

另外,我還加上了統計字頻的功能,可以幫助閱讀者透過詞語出現的次數,更快抓住文章的重點,讓工具不只實用,還能提供更多延伸價值。

那麼就來開始動手實作吧!


匯入模組

import re
from collections import Counter
  • re:Python 的正則表達式模組,用來處理文字與模式比對。
    在這個程式裡,用它來移除標點符號,保留字母、數字和中文,方便做字數與詞頻統計。

  • collections.Counter:Python 的計數工具,會自動統計列表中每個元素出現的次數。
    在這裡用來計算每個單字或詞出現的次數,方便做詞頻分析。

定義字數與詞頻計算函式

def count_words(text):
    """計算字數、詞數,並做詞頻統計"""
    clean_text = re.sub(r"[^\w\s\u4e00-\u9fff]", "", text)
    char_count = len(clean_text)
    words = clean_text.split()
    word_count = len(words)
    word_freq = Counter(words)
    return char_count, word_count, word_freq
  • 文字清理(re.sub):r"[^\w\s\u4e00-\u9fff]" 代表保留字母、數字、底線、空格,以及中文 Unicode 範圍,其他標點符號都會刪掉。目的是讓字數和詞頻統計更準確,不會被標點干擾。
  • 總字數統計(char_count):len(clean_text)計算文字長度,包括中文和英文,但標點已被去掉。
  • 單詞數統計(word_count):words = clean_text.split():以空白切分文字,得到單字列表。
    word_count = len(words):計算單字數。
  • 詞頻統計(word_freq):Counter(words):統計每個單字或詞出現的次數,結果是一個字典型態。

文字輸入與迴圈

while True:
    text = input("請輸入一段文字:\n")
  • while True:建立無限迴圈,讓使用者可以持續輸入文字。
  • input():取得使用者輸入的文字。

退出條件

if text.lower() == "exit":
    print("感謝使用,再見!")
    break
  • 當使用者輸入 exit 時,程式會停止迴圈並結束。
  • text.lower() 讓大小寫都可以使用 exit 退出。

呼叫字數與詞頻函式

char_count, word_count, word_freq = count_words(text)
  • 把使用者輸入的文字傳給函式 count_words(),得到char_count:總字數、word_count:單字數、word_freq:詞頻統計(每個詞出現的次數)。

顯示結果

print(f"總字數:{char_count}")
print(f"單字數:{word_count}")

for word, freq in word_freq.most_common(5):
    print(f"{word} : {freq} 次")
  • 先顯示總字數與單字數,之後用 most_common(5) 顯示出現次數最多的前 5 個詞,快速抓到文章重點。

程式啟動點

if __name__ == "__main__":
    main()
  • 這行表示只有直接執行 word_counter.py 時才會跑主程式,如果這個檔案被其他程式 import,就不會自動執行 main()。此為 Python 的標準寫法,用來區分「模組」和「主程式」。

測試結果展示

13


這次完成字數統計小程式後,我發現即使是簡單的工具,也能帶來很大的便利感。
自己動手利用Python 與 VS Code設計功能,不僅能解決日常的實際需求,還能順便練習程式邏輯與思考方式,更有慢慢建立起對程式開發信心的感覺。
期待下一個挑戰,能學到更多技巧並創造出更實用的小工具!


上一篇
[Day4]工具分享:Python 基礎模組與開發環境(VS Code / PyCharm)
下一篇
[Day6]Python 新手練功:用 random 打造抽籤程式
系列文
軟體開發養成計畫:以小程式實作深化開發能力7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言