見出し画像

#36 10秒で止めろ!

● 問題

10秒ぴったりで止めます。
メッセージ表示がおかしいようです。

import time

result = input('Enterキーでスタート')
time_start = time.time()

result = input('Enterキーでストップ')
time_end = time.time()

t = time_end-time_start
if 10-t == 0:
    print('完璧')
elif 10-t < 0.5:
    print('すごいぞ')
elif 10-t < 1.0:
    print('もう少し')
else:
    print('まだまだ')
print(str(t)+'秒')
Enterキーでスタート
Enterキーでストップ
すごいぞ
11.464335441589355

● 解答

誤差が0.5秒未満だったら,「すごいぞ」と表示します。
変数tに秒数が入ります。10-t < 0.5 が条件式になりますが,これではtの値が10より大きいとき常に成り立つことになってしまいます。
abs関数(絶対値)を使います。
また,tの値は小数なので 10-t == 0 が成り立つのはかなり至難の業でしょう。
そこで,round関数を使って四捨五入することにします。
round( t , 2) は,tの値を小数第3位で四捨五入して,小数第2位までを求めます。

import time

result = input('Enterキーでスタート')
time_start = time.time()

result = input('Enterキーでストップ')
time_end = time.time()

t = time_end-time_start
if round(abs(10-t),2) == 0:
    print('完璧')
elif round(abs(10-t),2) < 0.5:
    print('すごいぞ')
elif round(abs(10-t),2) < 1.0:
    print('もう少し')
else:
    print('まだまだ')
print(str(round(t,2))+'秒')

#Python  #プログラミング


この記事が気に入ったらサポートをしてみませんか?