大家都是这里的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)
答案 0 :(得分:0)
我建议您使用列表来保存所有"变量" (' 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)
在输入列表上循环并直接对元素求和。