检测值已返回到低于阈值,然后允许更改值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检测值已返回到低于阈值,然后允许更改值相关的知识,希望对你有一定的参考价值。

我正在尝试设计一个系统,该系统需要用户输入(来自无级调幅电位计0-100),并使用该输入来设置值,我正在寻找一种处理故障情况的好方法。 >

我需要处理系统中的错误,一旦检测到该错误,便将该值设置为零,并要求用户将输入恢复到低于阈值的较低值,然后用户才能再次根据需要增加该值。如果允许更简单的逻辑,我也希望该值返回零。

这似乎是相当普遍的软件安全逻辑,但是我一直在努力地在互联网上找到有关此问题的任何信息。 (我以为它可能与施密特触发器共享某些逻辑?)

如果您对这个问题有想法,或者知道它的名字/很高兴获得一系列资源。

我已经开发了一个简单的python程序作为示例来执行此操作,但是我确信这不是解决此问题的最可靠或最有效的方法。

# check value has returned to below 5% before allowing
# increase after failure case
value = 0
user_command = 0
failure_case = True

while True:
    ## get input
    raw_input = input()
    if (raw_input == 'e'):
        # if input is 'e'
        # enter failure case
        failure_case = True
    else:
        try:
            # if input is a number 
            user_command = int(raw_input)
        except:
            pass

    if (failure_case):
        # a failure has been detected
        print("Waiting for value to return to below 5")
        # set value to zero
        value = 0

        # only remove the error flag once the
        # input value is below 5
        if (user_command < 5):
            failure_case = False
    else:
        # no error thus set value to the user input
        value = user_command
    # print the accepted value
    print(value);

任何帮助将不胜感激。谢谢。

我正在尝试设计一个系统,该系统需要用户输入(来自无级调幅电位计0-100),并使用该输入来设置值,我正在寻找一种处理...的好方法。 >

答案

这是一种方法:

while True:
    raw_input = input()
    if raw_input == 'e':
        print("Waiting for value to return to below 5")
        # set value to zero
        value = 0

        # only remove the error flag once the
        # input value is below 5
        if user_command < 5:
            failure_case = Falsea

    elif raw_input.isnumeric():
        user_command = int(raw_input)
        value = user_command

    print(value)

以上是关于检测值已返回到低于阈值,然后允许更改值的主要内容,如果未能解决你的问题,请参考以下文章

在Python中实现阈值检测功能

用python中的默认值替换高于和低于阈值的列表值?

如果 JUnit 覆盖率低于某个阈值,如何使 Maven 构建失败

PySpark 将低于计数阈值的值替换为值

为超过/低于阈值的值制作不同颜色的ggplot2热图

你将如何抑制低于阈值的值并用 Python 中的字符串替换