【发布时间】:2020-01-03 10:36:36
【问题描述】:
你们中的大多数人都知道 CodingBat 上的“超速”编码问题。我试图解决它如下。我不太确定为什么它在那里不起作用。我查看了其他解决方案。我相信逻辑是相似的,但在实现上有一些差异。
“你开得太快了,警察拦住了你。编写代码来计算结果,编码为 int 值:0=无票,1=小票,2=大票。如果速度是小于等于60,结果为0。如果速度在61和80之间,结果为1。如果速度大于或等于81,结果为2。除非是你的生日——那天,你的速度可以是在所有情况下都高于 5。”
我的代码:
def caught_speeding(speed, is_birthday):
while not is_birthday:
speed = range(0,81)
if speed <= 60:
return 0
elif speed > 65 and speed < 80:
return 1
else:
if speed > 81:
return 2
return speed - 5
【问题讨论】:
-
在循环中使用
speed = range(0, 81)有什么意义?速度不应该是单个值而不是序列吗? -
也许您应该尝试回答以下问题:它在哪些输入上失败?在这些情况下,结果和预期结果是什么?给定它失败的特定输入,您可以使用调试器或手动跟踪您的代码,看看发生了什么。
标签: python while-loop logic