2014-03-26 79 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") 

,程序才能正常工作。