超速罚单计算

时间:2013-09-17 16:05:44

标签: python

此程序计算超速罚单

政策是每张车票超过限额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()

1 个答案:

答案 0 :(得分:3)

每当您想要重复某些内容时,请考虑使用whilefor循环。 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来确保用户可以停止该程序。

请记住,每次都不会记住限制和速度。由于目前的程序,它不能返回票的总和。我会把它作为练习让你找出最好的方法。