2014-10-02 3 views
-3
while RUN2: 
    chose = int(input('Type the option number from 1 to 6:')) 

    if chose == 1: 
     print(grossPayMsg()) 
     print("Your gross pay is", grosspay(workhour, hourlywage))  

    elif chose == 2:  
     print(withHoldingsMsg()) 
     print("Your withholdings is", withhd(workhour, hourlywage))  

    elif chose == 3: 
     print(federalTaxMsg()) 
     print("Your Federal Tax is", fedtax(workhour, hourlywage)) 

    elif chose == 4:  
     print(marylandTaxMsg()) 
     print("Your Federal Tax is", mdtax(workhour, hourlywage)) 

    elif chose == 5:  
     print(netPayMsg()) 
     print("Your Federal Tax is", net(workhour, hourlywage)) 

    elif chose == 6: 
     print ("Thank you for using. Goodbye!") 
     RUN2 = False 

    else: 
     print("/////// Invalid option number ///////") 

======================================================================================================================================================= =========================Почему мой код python вызывает исключение ValueErrors?

Q. Как я могу избежать ValueErrors, как показано ниже, при попадании не вводить номера опций? Я знаю, что какой-то пользователь может попасть в цель с целью или случайно. Есть ли какое-нибудь заявление, чтобы избежать этого? Я узнал только Int (вход) или вход ...

ValueError: не удалось преобразовать строку плавать

ValueError: недопустимый буквального для междунар() с основанием 10: ''

==== =================================

Большое спасибо заранее ....

+0

, чтобы избежать «ValueErrors» вы можете обернуть входные заявления с примеркой, за исключением блока (https://docs.python.org/2/tutorial /errors.html), а 'None' - это потому, что вы вызываете функцию, у которой нет оператора return, но вы печатаете все, что оно возвращает –

+0

Добро пожаловать в StackOverflow. Кажется, вы получаете близкие голоса, потому что ваша публикация содержит несколько вопросов (только один вопрос на вопрос, пожалуйста) и запрос на проверку кода (для этого есть отдельный сайт: http://codereview.stackexchange.com/). Возможно, вы хотите изменить свой вопрос или удалить его и начать с одного или нескольких конкретных, не дублированных вопросов, для которых можно выбрать четкий, исчерпывающий правильный ответ в качестве предпочтительного решения. – tripleee

ответ

1

Вы можете удалить none, изменив данный код

if chose == 1: 
     print(grossPayMsg()) 
     print("Your gross pay is", grosspay(workhour, hourlywage)) 

в

if chose == 1: 
      grossPayMsg() # print is removed because when you use print it prints the return value of grossPayMsg() 
      print("Your gross pay is", grosspay(workhour, hourlywage)) 

Вы можете использовать strng.isnumeric() функцию, чтобы проверить, является ли введенная строка числовой. После этого преобразования в float и хранить его в workhour и hourlywage

strng = input("What's your hours worked?:") 
if strng.isnumeric() : 
    workhour = float(strng) 
Смежные вопросы