零基础建设网站视频教程/推广策划方案模板
问题描述】
普通时钟都有时针和分针,在任意时刻时针和分针都有一个夹角,并且假设时针和分针都是连续移动的。现已知当前的时刻,试求出该时刻时针和分针的夹角A(0≤A≤180)。
注意:当分针处于0分和59分之间时,时针相对于该小时的起始位置也有一个偏移角度。
【输入形式】
从标准输入读取一行,是一个24小时制的时间。格式是以冒号(":")分隔的两个整数m(0≤m≤23)和n(0≤n≤59),其中m是小时,n是分钟。
【输出形式】
向标准输出打印结果。输出一个浮点数A,是时针和分针夹角的角度值。该浮点数保留3位小数值。
【输入样例】
8:10
【输出样例】
175.000
【样例说明】
8:10那个时刻时针与秒针的夹角是175.000度
'''
1.用正则表达式获取输入字符串中的数字,组成元组
2.判断小时,分针(对于整点时存在问题,不能准确获取)
3.判断完成后转为整形
4.利用公式求得夹角度数
5.在判断获得的夹角大小,求绝对值
'''
import re
s = input()
t = re.findall(r"\d", s)
f = len(s)
if f == 3:mm = t[0]nn = t[1]
elif f == 4:if t[1] == '0' and t[2] != '0':mm = t[0]+t[1]nn = t[2]else:mm = t[0]nn = t[1]+t[2]
elif f == 5:mm = t[0]+t[1]nn = t[2]+t[3]
m = int(mm) # 小时
n = int(nn) # 分钟
num = (5.5*n - 30*m) # 夹角
if abs(num) < 180:print('%.3f' % abs(num))
elif abs(num) == 180:print('180.000')
elif abs(num) > 180:print('%.3f' % abs(360 - abs(num)))