開発環境
- 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 コメント:
コメントを投稿