此程序计算超速罚单
政策是每张车票超过限额50美元加上每加仑5美元,加上超过90英里每小时的任何车速罚款200美元。但是,如果速度超过速度限制不超过5英里/小时,则可以免除该机票。 (例如,如果速度限制为37,则可以在41但不在42开车。)该程序询问用户他们有多少票,并且每张票要求速度限制&时钟速度。我想计算并打印每张罚单的罚款,并返还所有罚款的总金额,如果时钟速度没有超过限额或者可以免除罚单,则报单罚款0美元。
这是我的代码,适用于单票我需要帮助,为许多门票这样做我不熟悉python。
def ask_limit():
limit = float(input ("What was the speed limit? "))
return limit
def ask_speed():
speed = float(input ("What was your clocked speed? "))
return speed
def findfine(speed, limit):
if speed > 90:
bigfine = ((speed - limit) * 5 + 250)
print "your fine is", bigfine
elif speed <= limit:
print "you were traveling a legal speed"
else:
fine = ((speed - limit) * 5 + 50)
print "your fine is", fine
def main():
limit = ask_limit()
speed = ask_speed()
findfine(speed, limit)
main()
答案 0 :(得分:3)
每当您想要重复某些内容时,请考虑使用while
或for
循环。 while
循环适用于您希望连续重复直到某些条件为True
,并且for
循环用于您想要执行某些次数的操作时。例如:
def main():
done = False
while not done:
limit = ask_limit()
speed = ask_speed()
findfine(speed, limit)
done = raw_input("Done? ") == "yes"
注意我使用了另一个raw_input
来确保用户可以停止该程序。
请记住,每次都不会记住限制和速度。由于目前的程序,它不能返回票的总和。我会把它作为练习让你找出最好的方法。