繁体   English   中英

Python计算器-输入验证

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM