2014-03-26 65 views
0

这是我必须创建的程序指令: 该程序是警务人员必须输入他们所做的每个班次的“速度区域”。那个速度区域在他们输入的答案中是一个整数。然后他们得到第二个问题来填写问他们'汽车行驶的速度是什么?'。这个输入答案也必须是整数。如果汽车的行驶速度比他们在换班时只有一次的“速度区域”快,那么每超过“速度区域”1公里,罚款为10美元。所以,如果汽车超过10公里,100美元将被罚款。如果汽车的行驶速度在估算的“速度区域”之下,则不罚款罚单。如果任何罚单被罚款,警务人员必须输入车型名称。 I.E日产,奥迪,法拉利......他们都必须打印出来才能像警察票一样。除了'高速区'之外,这一切都必须重复。Python - 小初学者代码混淆

这里是我的代码:

fine=int(0) 

un_speed_limit = 0 

while not un_speed_limit: 

    speed_limit=int(input("What is your speed zone? ")) 
    try: 
     un_speed_limit = int(speed_limit) 
    except ValueError: 
     print("That is not a number! ") 
pass_car_speed=print("\nType '000' to kill program.\n\n") 

while pass_car_speed !=000: 

    try: 
     pass_car_speed=int(input("What speed is the car going? ")) 
    except ValueError: 
     print("Invalid number! ") 
    else: 
     if pass_car_speed==000: 
      break 
     if pass_car_speed > speed_limit: 
      fine=(pass_car_speed-speed_limit)*10 
    if pass_car_speed <= speed_limit: 
     print("This car is under the limit. No ticket needed! \n") 
    if pass_car_speed > speed_limit: 
     name=str(input("What is the car model name? ")) 
     print("____________________________________________\n") 
     print(" | P O L I C E T I C K E T | \n") 
     print(" | Speed: ",pass_car_speed," \n") 
     print(" | Fine Cost: ",fine," \n") 
     print(" | Car Name: ",name," ") 
     print("____________________________________________\n") 

代码停止: 唯一的常见的错误,我有这个代码和需要帮助的这个消息

ValueError: invalid literal for int() with base 10: (what ever I typed) 

这唯一的消息出现时,我不要为'你的速度区域是什么?'输入一个整数

回答

1

此代码中有许多错误。

这里是更正后的版本,你应该花点时间分析一下。

while True: 
    try: 
     speed_limit = int(input("What is your speed zone? ")) 
     break 
    except ValueError: 
     print("That is not a number! ") 
     continue 

while True: 
    print("What speed is the car going?") 
    try: 
     pass_car_speed = int(input("Enter speed, or 0 to quit: ")) 
    except ValueError: 
     print("Invalid number! ") 
     continue 

    if not pass_car_speed: # 0 is False, non-zero True 
     break # quit loop (and program) 

    if pass_car_speed <= speed_limit: 
     print("This car is under the limit. No ticket needed!") 
    else: 
     fine = (pass_car_speed - speed_limit) * 10 
     name = input("What is the car model name? ") 
     print("____________________________________________") 
     print(" | P O L I C E T I C K E T | ") 
     print(" | Speed: ",pass_car_speed," ") 
     print(" | Fine Cost: ",fine," ") 
     print(" | Car Name: ",name," ") 
     print("____________________________________________") 

print("Goodbye!") 

让我知道,如果你想要一些建议,你应该关注什么在学习中,以避免他们在将来。

+0

非常感谢!你不知道我肩上的压力有多大。知道你帮助过某人,你应该在脸上带着微笑入睡。再一次感谢你!非常感激。如果你能给我反馈我应该怎么做才能重点学习,并在将来避免它们,我会很喜欢它。 – user3462580

0

您试图将speed_limit转换为int两次。一个被Try/Except子句包围,一个不是。只需移除多余的一个事实并非int()呼叫,即行

speed_limit=int(input("What is your speed zone? ")) 

它也似乎分配un_speed_limit但从来没有使用它,你或许应该删除它,只是使用speed_limit

0

我不得不行

pass_car_speed=print("\nType '000' to kill program.\n\n") 

改变

pass_car_speed=input("\nType '000' to kill program.\n\n") 

,程序才能正常工作。