Python:函数来确定元组是否包含偶数?

2024-10-02 12:33:05 发布

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

所以我想要的是一个函数,它从用户那里得到一个元组输入,然后判断这个元组是否包含偶数。我想知道如何用for或while循环来完成。我试过了,但代码不起作用。我有点东西,但没用:

def ifEven(x):
    i = -1
    if isinstance(x, tuple):
        while i < len(x):
            for i in x:
                i = i + 1
                if x[i] % 2 == 0:
                    return True
                else:
                    return False 

Tags: 函数代码用户inforlenreturnif
3条回答

for循环中i本身初始化并开始迭代元组。每次迭代时i的内容是元组中的一个元素。 让我们更深入地了解一下。让你的元组是(3, 4, 6, 7) 在第一次迭代中:

for i in x     # i=3
    i = i+1    # i = 4
    if x[i] %2 == 0 :    # x[4] % 2 == 0  => This will give you IndexError, since there is no index 4 in the tuple x(python uses zero based indexing)

因此,您不需要单独递增i,因为for将迭代变量增加到所提供序列的末尾(在您的例子中,它是到元组x中的最后一个元素)

而且由于i拥有元组本身的元素,所以通过增加它,你就增加了i中的值。然后从元组访问索引递增的元素。也就是说,如果元组元素是3,则首先将其递增1,使其成为4,然后检查元组第4个索引中的元素是否偶数,即x[4]是否偶数。但是由于我考虑过的元组是长度为4的,所以它将抛出IndexError

所以,这里不需要初始化i = -1,不需要使用while,也不需要在for循环内增加i。其余解由Selcuk给出。在

您应该阅读Python中关于for语句的文档:https://docs.python.org/2/tutorial/controlflow.html#for-statements。在

下面是一个工作代码:

def ifEven(x):
    if isinstance(x, tuple):
        for i in x:
            if i % 2 == 0:
                return True
    return False

也就是说,可以使用Python的生成器表达式将其重写为一行代码:

^{pr2}$

你的缩进看起来有点不对劲,但这可能就是你复制/粘贴的方式。在python中,True是“True”,而不是return函数中的“True”,这也可能会把您搞砸。在

相关问题 更多 >

    热门问题