【问题标题】:Python calculator - input validationPython 计算器 - 输入验证
【发布时间】:2017-03-31 14:49:51
【问题描述】:

大家好,这里是 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)

【问题讨论】:

  • 问题解决了吗?

标签: python validation input


【解决方案1】:

我建议您使用一个列表来保存您想要向用户显示的所有“变量”('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)

在输入列表上循环并直接对元素求和。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-20
    • 2014-06-04
    • 2022-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    相关资源
    最近更新 更多