Python 如果(x%i)==0,列表x如何运行

Python 如果(x%i)==0,列表x如何运行,python,Python,所以我现在正在学习编码几个星期,刚刚克服了一些我自己无法解释的事情 for word in ['ox', 'cat', 'lion', 'tiger', 'bobcat']: for i in range(2, 7): letters = len(word) if (letters % i) == 0: print(i, word) 当我们定义变量letter=len(word)时,它的字面意思是letter=5对吗?如果它这样做

所以我现在正在学习编码几个星期,刚刚克服了一些我自己无法解释的事情

for word in ['ox', 'cat', 'lion', 'tiger', 'bobcat']:
    for i in range(2, 7):
        letters = len(word)
        if (letters % i) == 0:
            print(i, word)
当我们定义变量
letter=len(word)
时,它的字面意思是
letter=5
对吗?如果它这样做了,我们转到If条件,它说:
(字母%i)==0
对我来说,这意味着当我们开始第二个for循环时
(5%2)==0(1)==0
我知道这实际上是不对的,因为在这种情况下,单词是一个变量,而不是一个列表。但是如果我设置字母,那么每个单词的位置,比如说,ox=len(0)对我来说也没有意义,这就是我的想法。不幸的是,shell给了我这个

    2 ox
    3 cat
    2 lion
    4 lion
    5 tiger
    2 bobcat
    3 bobcat
    6 bobcat
我真的不知道这个循环是如何工作的,但我真的想了解。我试过好几件事,但从逻辑上讲,什么都不管用

我希望你能帮助初学者:)p.S.抱歉我的英语不好哈哈

首先,
len(word)
不一定是5,它是当前单词的长度。首先是2,然后是3,然后是4,然后是5,然后是6。您已将其设置为仅当
(字母%i)==0
时程序才会打印。对于长度为2的单词,只有当
i==2
时才会发生这种情况(在2到7的范围内)。对于长度为3的单词,当
i==3
时会发生这种情况。但是,对于长度为4的单词,当
i==2
i==4
时,会发生这种情况。通过查看我打印出来的值可以看到这一点


这有意义吗?如果您想让我澄清什么,只需留下一条评论:)

缩进在Python中很重要。请修复
%
是模运算符。只要搜索“python模运算符”@RedCricket他似乎明白,他知道
(5%2)
1
。我不明白这个问题
word
是一个值为字符串的变量。所以
len(word)
是字符串的长度。在['ox','cat','lion','tiger','bobcat']中尝试
单词:打印(word)
,您将看到
word
是什么(提示:它不是列表)。好的,谢谢。我真的需要澄清。谢谢:)没问题。欢迎来到堆栈溢出!如果这解决了您的问题,您可以将答案标记为已接受,如果您愿意:)