![見出し画像](https://assets.st-note.com/production/uploads/images/91381566/rectangle_large_type_2_256d298018c086dc4e9d8d2174e2ad8b.png?width=800)
#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 #プログラミング
この記事が気に入ったらサポートをしてみませんか?