Python验证和要求用户输入的数字

时间:2015-02-11 14:11:56

标签: validation python-3.x error-handling

大家好,我是python的新手,我正在努力学习成为一名高效的程序员。附上一些验证用户输入的代码是一个数字> = 0.我希望这里的专家可以告诉我是否有更有效的方法来做到这一点。

由于

budget = input("Please enter your budget for the month: ")
while type(budget) == str or budget < 0:
   try:
       budget = float(budget)
       while budget < 0:
           budget = input("Error, Please enter a positive number for the budget: ")
           try:
               budget = float(budget)
           except ValueError:
               break
   except ValueError:
       budget = input("Error, text is not valid - Please enter a number for the budget: ")

1 个答案:

答案 0 :(得分:0)

这就是我想出的。它使用try/except语句的鲜为人知的特性,即else子句。此外,我还将您的错误与输入分开,以使其更简单。

budget = ""
while type(budget) == str or budget < 0:
    budget = input("Please enter your budget for the month: ")
    try:
        budget = float(budget)
    except ValueError:
        print("Error: text is not valid")
    else:
        if budget >= 0: break
        else: print("Error: number must be positive") 

如果您希望真的,那么您可以导入sys并为每个错误生成print语句也包含file=sys.stderr选项,有效地使输出变红。但是,我不确定这是否是一种“安全”技术。