我正在做一个练习,在那里我需要创建一个代码,我将速度限制设置为70m / h。对于每5英里的增量,代码将增加1分,在5分之后,许可证将被吊销。
我制作代码的方式有效,但是过于重复,我想不出一种方法,可以使循环变得更简单,而不必重复很多次。
有什么建议吗?
def speed_check(speed):
speed_limit = 70
points = 0
if speed <= speed_limit:
return "Speed is OK"
elif (speed < speed_limit + 5) and (speed > speed_limit):
points += 1
return "Points taken {}!".format(points)
elif (speed < speed_limit + 10) and (speed > speed_limit):
points += 2
return "Points taken {}!".format(points)
elif (speed < speed_limit + 15) and (speed > speed_limit):
points += 3
return "Points taken {}!".format(points)
elif (speed < speed_limit + 20) and (speed > speed_limit):
points += 4
return "Points taken {}!".format(points)
else:
points += 5
return "Points taken {}!\nYour license has been revoked".format(points)
your_speed = int(input("Enter speed: "))
print(speed_check(your_speed))
import math
def speed_check(speed):
speed_limit = 70
points = 0
if speed > speed_limit:
amountOverSpeedLimit = (speed - speed_limit)
points = math.floor(amountOverSpeedLimit/5)
return "Points taken {}!".format(points)
your_speed = int(input("Enter speed: "))
print(speed_check(your_speed))
您可以使用math.floor
和一些除法来获得相同的结果。当您超过4点或速度未超出限制时,这并不能解决该消息,但您应该可以将其添加。