如果在python循环中返回问题

时间:2018-05-27 09:10:26

标签: python if-statement return

函数应该计算y在请求中有多少表达式,如果请求函数中没有y,则返回"请求中没有y"。我需要减少其他返回表达式,但在这种情况下,progran doestn无法正常工作。 我需要将表达式表达为:

def foo():    
    number = 0
    for x in request:
       if x == y:
           number += 1

        return "there is no y in request"

    return number

但即使x是y,它也会给出" x不是y"。如果我使用其他像:

def foo():
    number = 0
    for x in request:
       if x == y:
          number += 1

       else:
           return "there is no y in request"

    return number

但是返回是反对语法rools。如何更正代码?

1 个答案:

答案 0 :(得分:0)

我可以看到这段代码存在一些问题:

  • 很明显,number应该计算yrequest的总出现次数。 return语句会立即终止返回值的函数。当您想要迭代并处理request的每个元素时,您需要继续执行。该代码不起作用,因为它停在第一个不是y的元素并返回,而是继续。
  • y未定义
  • 从语义上讲,函数是可重用的,因为您可以传递的参数可以根据您的需要改变其调用

以下作品:

y = 5

def foo(request):
    number = 0
    for x in request:
       if x is y:
          number += 1
    return "there is no y in request" if number == 0 else number

foo([1,2,5])