開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料機能制限版、light版)
- Script言語: Python
『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のV部(モジュール)まとめ演習3(__name__属性)を解いてみる。
その他参考書籍
3.
コード(TextWrangler)
sample.py
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- def count_lines(name): return len(open(name).readlines()) def count_chars(name): return len(open(name).read()) def test(): name = 'sample.py' return "行数:{0} 文字数:{1}".format( count_lines(name), count_chars(name)) # test関数でのopen関数の呼び出しを2回ではなく1回で済むように修正 def count_lines1(file): file.seek(0) return len(file.readlines()) def count_chars1(file): file.seek(0) return len(file.read()) def test1(): file = open('sample.py') return "行数:{0} 文字数:{1}".format( count_lines1(file), count_chars1(file)) if __name__ == '__main__': name = 'sample.py' print(count_lines(name)) print(count_chars(name)) # せっかくなのでopen関数の呼び出しが1回の場合と2回の場合の秒数を計測 import time start = time.time() result1 = test() print("{0}秒".format(time.time() - start)) print(result1) file = open(name) print(count_lines1(file)) print(count_chars1(file)) start = time.time() result2 = test1() print("{0}秒".format(time.time() - start)) print(result2)
入出力結果(Terminal)
$ ./sample.py 44 1021 0.0005600452423095703秒 行数:44 文字数:1021 44 1021 0.0003170967102050781秒 行数:44 文字数:1021 $
0 コメント:
コメントを投稿