问题:您开得太快了,警察拦住了您。编写一个函数以返回 3 种可能结果之一:“无票”、“小票”或“大票”。如果您的速度为 60 或更低,则结果为“无票”。如果速度在 61 和 80 之间(含),则结果为“小票”。如果速度为 81 或更高,则结果为“大票”。除非是你的生日(在函数的参数中编码为布尔值)——在你生日那天,你的速度在所有情况下都可以提高 5。
set(CMAKE_SYSTEM_PROCESSOR arm64)
set(CMAKE_OSX_ARCHITECTURES arm64)
当我运行下面提到的代码时,我得到的是“小票”而不是“大票”。
def caught_speeding(speed,is_birthday):
status=''
if is_birthday==False:
if speed<=60:
status= 'No Ticket'
elif speed>=61 or speed<=80:
status= 'Small Ticket'
else:
status= 'Big Ticket'
else:
if speed<=65:
status= 'No Ticket'
elif speed>=66 or speed<=85:
status= 'Small Ticket'
else:
status= 'Big Ticket'
return status
答案 0 :(得分:3)
speed>=61 or speed<=80
如果速度为 81,则第一个条件为 True。
真或(任何)为真
您应该使用 and
,或者干脆使用 61 <= speed <= 80
答案 1 :(得分:0)
在 if 语句中,当比较速度时,需要将其更改为“and”而不是“or”。正如所写的那样,您告诉程序仅在速度超过 61 或低于 80 时才输出小票。由于 81 更大,它将满足该参数。一旦'or'变成'and',81就不再满足小票的要求了。
答案 2 :(得分:0)
当您不了解代码中发生的事情时,您应该一步一步地执行,看看会发生什么。在这种情况下,context.become
的计算结果为 Receive
。
编写函数的最简洁方法是
speed >= 61 or speed <= 80