要求用户输入浮点值。如果无效输入超过两次,请使用python退出程序

2024-06-16 10:52:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须创建一个函数,它向用户请求非零浮点值;当用户输入0时,输出输入的数字之和。当用户在一行中输入两个无效输入时,函数终止。在

我有以下代码:

def inValues():
    counter = 0
    s = 0

    while True:
        if counter <= 2:
            try:
                digit = input('Please enter a number: ')
                counter += 1
                floatDig = float(digit)
                break
        else:
            break
        except:
            print('Error. Please re-enter the value.')
    if floatDig == 0:
        s += sum(floatDig)
        return s

但运行时,它只请求一个输入,然后停止。我很确定代码是相当混乱和破坏,所以任何帮助是感激的。在


Tags: 函数代码用户ifdefcounter数字浮点
1条回答
网友
1楼 · 发布于 2024-06-16 10:52:30

注意事项:

  • 一个while循环可以有一个条件-所以我将它用于错误计数
  • break退出了while循环,因此我删除了它(我们现在使用它来监视错误计数)。在
  • 我立即检查用户是否想退出
  • 错误计数器只在出错时增加。在

代码:

def inValues():
    errorcounter = 0
    s = 0

    while errorcounter < 2: # errorcounter = [0, 1] ...
        digit = input('Please enter a number: ')
        if digit == '0':
            # return sum of numbers
            return s
        try:
            # try and summarize input
            s += float(digit)
        except:
            print('Error. Please re-enter the value.')
            errorcounter += 1

    print("Too many errors.")
    # possibly return indicative value (None?)

相关问题 更多 >