大家好,我是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: ")
答案 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
选项,有效地使输出变红。但是,我不确定这是否是一种“安全”技术。