4章一枚岩――モノリスMonolithic

制約

  • 名前付き抽象化機能を使用しない。
  • ライブラリをほとんど使用しない、または全く使用しない。

プログラム

 1 #!/usr/bin/env python
 2 import sys, string
 3
 4 # [単語,頻度]の大域的リスト
 5 word_freqs = []
 6 # ストップワードのリスト
 7 with open('../stop_words.txt') as f:
 8     stop_words = f.read().split(',')
 9 stop_words.extend(list(string.ascii_lowercase))
10
11 # ファイル内の行単位で繰り返し
12 for line in open(sys.argv[1]):
13     start_char = None
14     i = 0
15     for c in line:
16         if start_char is None:
17             if c.isalnum():
18                 # 単語の始まり
19                 start_char = i
20         else:
21             if not c.isalnum():
22                 # 単語の終わり。見つけた単語の処理を行う
23                 found = False
24                 word = line[start_char:i].lower()
25                 # ストップワードに該当しない単語を処理する
26 if word not in stop_words: ...

Get プログラミング文体練習 ―Pythonで学ぶ40のプログラミングスタイル now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.