開発環境
- macOS Mojave - Apple
- Emacs (Text Editor)
- Python 3.7 (プログラミング言語)
問題解決のPythonプログラミング ―数学パズルで鍛えるアルゴリズム的思考 (Srini Devadas (著)、黒川 利明 (翻訳)、オライリージャパン)の2章(パーティーに行くタイミング)、練習問題、問題1.を取り組んでみる。
コード(Emacs)
Python 3
#!/usr/bin/env python3
''' sample '''
def best_time_to_party_smart(schedule: list, ystart: float, yend: float) -> int:
'''
>>> best_time_to_party_smart([], 7, 8)
0
>>> best_time_to_party_smart([(6, 7)], 7, 8)
0
>>> best_time_to_party_smart([(6.5, 7.5)], 7, 8)
1
>>> best_time_to_party_smart([(7, 8)], 7, 8)
1
>>> best_time_to_party_smart([(7.5, 8.5)], 7, 8)
1
>>> best_time_to_party_smart([(8, 9)], 7, 8)
0
>>> best_time_to_party_smart([(6, 7), (6.5, 7.5)], 7, 8)
1
>>> best_time_to_party_smart([(6.5, 7.5), (7, 8)], 7, 8)
2
>>> best_time_to_party_smart([(7, 8), (8, 9)], 7, 8)
1
>>> best_time_to_party_smart([(8, 9), (8.5, 9.5)], 7, 8)
0
'''
count = 0
for start, end in schedule:
if start < ystart < end or \
ystart <= start < yend:
count += 1
return count
if __name__ == '__main__':
import doctest
doctest.testmod()
入出力結果(Terminal, Jupyter(IPython))
$ pylint sample1.py
************* Module sample1
sample1.py:1:0: C0111: Missing module docstring (missing-docstring)
-------------------------------------------------------------------
Your code has been rated at 8.89/10
$ pylint sample1.py
-------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 8.89/10, +1.11)
$ ./sample1.py
Trying:
best_time_to_party_smart([], 7, 8)
Expecting:
0
ok
Trying:
best_time_to_party_smart([(6, 7)], 7, 8)
Expecting:
0
ok
Trying:
best_time_to_party_smart([(6.5, 7.5)], 7, 8)
Expecting:
1
ok
Trying:
best_time_to_party_smart([(7, 8)], 7, 8)
Expecting:
1
ok
Trying:
best_time_to_party_smart([(7.5, 8.5)], 7, 8)
Expecting:
1
ok
Trying:
best_time_to_party_smart([(8, 9)], 7, 8)
Expecting:
0
ok
Trying:
best_time_to_party_smart([(6, 7), (6.5, 7.5)], 7, 8)
Expecting:
1
ok
Trying:
best_time_to_party_smart([(6.5, 7.5), (7, 8)], 7, 8)
Expecting:
2
ok
Trying:
best_time_to_party_smart([(7, 8), (8, 9)], 7, 8)
Expecting:
1
ok
Trying:
best_time_to_party_smart([(8, 9), (8.5, 9.5)], 7, 8)
Expecting:
0
ok
1 items had no tests:
__main__
1 items passed all tests:
10 tests in __main__.best_time_to_party_smart
10 tests in 2 items.
10 passed and 0 failed.
Test passed.
$
0 コメント:
コメントを投稿