篮球比赛案例
需求
篮球比赛是高分的比赛,领先优势可能很快被反超。作为观众,希望能在球赛即将结束时,就提早知道领先是否不可超越。体育作家BillJames发明了一种算法,用于判断领先是否“安全”。
算法描述:
获取领先的分数 ,减去3分;
如果目前是领先队控球,则加0.5;否则减0.5(数字小于0则变成0);
计算平方后的结果;
如果得到的结果比当前比赛剩余时间的秒数大,则领先是“安全”的。
使用到的知识
条件判断:if:…elif:…else:
输入和输出:input、print
错误处理:try…except…finally
类型转换:int()、eval()
自己的想法:
1、提前输入哪些内容:两个领队的分数、谁是领队、比赛剩余时间
2、不知道怎么实现,对比了参考代码。基础入门不要想的太复杂需要的内容就直接传入就好
实现:
1、需输入的变量:领先的分数、是否是领队、比赛剩余时间
自己的代码:
grade = eval(input("请输入领先分数:"))
leader = input("是否为控方领队:(Y or N)")
time = eval(input("比赛剩余时间:"))
grade = grade - 3
result = 0
if leader == 'Y':
result = grade + 0.5
print(result)
elif leader == 'N':
if grade - 0.5 < 0:
result = 0
else:
result = grade - 0.5
sum = result * result
print(sum)
if sum > time:
print("领先安全")
else:
print("领先不安全")
总结
有相同的地方可以提取出来当做同一个变量,不然看着乱
参考代码:
grade = eval(input("请输入领先分数:"))
leader = input("是否为控方领队:(Y or N)")
time = eval(input("比赛剩余时间:"))
t = grade - 3
if leader == 'Y' or leader == 'y':
g = (t + 0.5)**2
else:
g = t - 0.5
if g <= 0:
g = 0
else:
g = g**2
if g > time:
print("领先安全")
else:
print("领先不安全")