2014-10-02 69 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?我知道有些用户可能会故意或意外地输入密码。是否有任何声明可以避免这种情况?与基地10个无效字面INT():我只学会INT(输入)或输入...

ValueError异常:无法将字符串转换为浮动

ValueError异常 ''

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

非常感谢你提前......

+0

避免“ValueErrors”你可以用一个try-except块(https://docs.python.org/2/tutorial包装您的输入语句/errors.html),而'None'是因为你调用了一个没有return语句的函数,但是你正在打印它返回的任何内容 – 2014-10-02 04:08:25

+0

欢迎来到StackOverflow。由于您的帖子包含多个问题(请每个问题只有一个问题)和代码审阅请求(这里有一个单独的网站http://codereview.stackexchange.com/),您似乎收到了密切的投票。也许你想编辑你的问题,或删除它,并从一个或多个特定的,非重复的问题开始,为此可以选择一个清晰,详尽,正确的答案作为您的首选解决方案。 – tripleee 2014-10-02 04:29:05

回答

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并将其存储在workhourhourlywage

strng = input("What's your hours worked?:") 
if strng.isnumeric() : 
    workhour = float(strng) 
相关问题