[英]Python calculator - input validation
大家好,我是Python的新手,我刚刚创建了一个简单的程序,该程序要求三个输入,检查是否等待直到这些输入为数字,然后打印出它们的总和。
我的问题是:如何使我的代码更紧凑? 例如,我可以只使用一个代码块,而不是三个? 我可以使输入检查更智能吗?
欢迎任何建议。 谢谢。
print ("-ADD THREE NUMBERS-")
while True:
a = input("Please enter a:")
try:
a = float(a)
break
except ValueError:
print ("'a' must be a number.")
while True:
b = input("Please enter b:")
try:
b = float(b)
break
except ValueError:
print ("'b' must be a number.")
while True:
c = input("Please enter c:")
try:
c = float(c)
break
except ValueError:
print ("'c' must be a number.")
print(a+b+c)
我建议您使用列表保存要显示给用户的所有“变量”(“ a”,“ b”,“ c”)。
因此,代码变得更加紧凑:
input_requested = ['a', 'b', 'c']
results = []
print ("-ADD THREE NUMBERS-")
for input in input_requested:
while True:
user_input = input("Please enter '{}':".format(input))
try:
results.append(float(user_input))
break
except ValueError:
print ("'{}' must be a number.".format(input))
print(sum(i for i in results))
输入正确后,将其保存在列表中,否则捕获类似代码的异常。
最后,要打印所有输入的总和,可以使用
sum(i for i in results)
在输入列表上循环并直接求和元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.