【问题标题】:Setting conditions within functions to continue在函数中设置条件以继续
【发布时间】:2021-07-13 04:55:18
【问题描述】:

如何创建一个函数来测试变量是否满足给定的一组条件以继续,否则停止。如果变量满足第一组条件,则移动到下一组条件,否则停止。这将一直持续到满足所有条件以返回最终答案。

> #the following are variables that can be changed if wanted
> lst = [5,4.3,8,2,9,3]
> len = 2
> interval = [-2.6,3.1]
> threshold = 1
> min = 1

第一组条件是:

  1. len必须是大于等于1的正整数
  2. 对于intervalinterval[0] 必须严格小于interval[1]
  3. threshold 必须是严格介于 0 和 1 之间的浮点数,即不包括 0 和 1
  4. min必须是大于等于1的正整数

如果满足所有 4 个条件,则函数继续,否则返回字符串“无效”。

第二个条件: lst 必须至少包含 2 个或更多元素

如果第二个条件也满足,则函数继续返回最终答案,否则返回字符串'Not enough data'。

这是我到目前为止写的函数,但显然不正确:

> def conditions(lst,len,interval,threshold,min):
    if len >= 1 and interval[0] < interval[1] and 0 < threshold < 1 and min >= 1:
        continue 
    else:
        return str('Invalid')
    
    if lst >= 2
        continue 
    else:
        return str('Not enough data')
    
    return answer

【问题讨论】:

  • 调用变量lenmin 不是一个好习惯,因为它们是内置函数,您将用数值覆盖它们。

标签: python conditional-statements


【解决方案1】:

这不是continue 的用途。只需设计您的 if-else 块,使程序将根据条件是否满足而遵循不同的路径。

同时尝试使用不影响内置变量的变量名,以避免代码中出现不良行为:

def conditions(lst, length ,interval, threshold, minimum):
    if length >= 1 and interval[0] < interval[1] and threshold in range(0, 1) and minimum >= 1:
        if len(lst) < 2:
            answer = 'Not enough data'
        answer = "ok"
    else:
        answer = 'Invalid'
    return answer

【讨论】:

  • 如果我运行这段代码并且第一组条件不满足(即length =-2,函数是否会返回answer = 'Invalid'并停在那里,而不是继续测试len(lst) &lt; 2 ?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-23
  • 1970-01-01
  • 2014-11-11
  • 2021-11-26
  • 1970-01-01
  • 1970-01-01
  • 2015-12-21
相关资源
最近更新 更多