首页 > 解决方案 > 如果(x % i)== 0,列表 x 是如何操作的

问题描述

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

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 条件,它说:(letter % i) == 0对我来说,这意味着当我们开始第二个 for 循环时,(5 % 2) == 0 (1) == 0我知道这实际上是不正确的,因为word在这种情况下是一个变量而不是一个列表。但是,如果我这样设置letter,那么每个单词的位置ox= len(0)对我来说都没有意义,这就是我的想法。不幸的是,shell 给了我这个

    2 ox
    3 cat
    2 lion
    4 lion
    5 tiger
    2 bobcat
    3 bobcat
    6 bobcat

我真的无法弄清楚这个循环是如何工作的,但我真的很想了解。我尝试了几件事,但在逻辑上没有任何效果。

我希望你能帮助初学者:) PS对不起我的英语不好哈哈

标签: python

解决方案


一开始,len(word)不一定是5,它是当前单词的长度。所以,首先是 2,然后是 3,然后是 4,然后是 5,然后是 6。你已经做到了,所以程序只在(letters % i) == 0. 对于长度为 2 的单词,仅在i == 2. 对于长度为 3 的单词,当 时发生这种情况i == 3。但是,对于长度为 4 的单词,这发生在 wheni == 2和 also i == 4。您可以通过查看 i 打印出来的值来看到这一点。

那有意义吗?如果您想让我澄清任何事情,请发表评论:)


推荐阅读