为什么我的双循环打印出一个奇怪的值

2024-10-01 02:23:11 发布

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

编辑:我在手机上,格式不正确。这是我第一次使用堆栈溢出

我对编程非常陌生,甚至不知道如何表达和搜索我试图回答的问题

当我运行时:

Magicians = ['kory', 'bob', 'jamie', 'cody']
for Magicians in Magicians:
    print(Magicians)
for Magicians in Magicians:
    print(Magicians)

我明白了: 科里 鲍勃 杰米 科迪 c o d 是的

有人能帮我理解吗?我正在读Eric matthes的python速成课程,它没有涵盖任何关于这方面的内容,我想不出来

谢谢


Tags: in编辑for堆栈格式编程cody手机
3条回答

您的第一个循环要求将Magicians拆分为多个项,因此第一个迭代将是“kory”。您的下一个循环(只针对最后一个值“cody”运行,因为它没有嵌套)将被告知进一步将其拆分为多个项。它是通过把字符串“cody”拆分成字母来实现的。然后打印每个字母!你知道吗

您可以尝试以下操作:

Magicians = ['kory', 'bob', 'jamie', 'cody']
for Magician in Magicians:
    print(Magician)
    for letter in Magician:
        print(letter)

这将打印“kory k o r y bob b o b jamie j a m i e cody c o d y”,我想这基本上是你想要做的事情的例证。你知道吗

它打印c o d y,因为在最后一个循环中,您使用了变量Magicians作为迭代变量。因此,第一个循环后面的Magicians等于字符串"cody"。在python中,可以将字符串作为列表进行迭代,这就是为什么在第二个循环中,会得到"cody"的字母。你知道吗

Magicians = ['kory', 'bob', 'jamie', 'cody']
for Magicians in Magicians:
    print(Magicians)
# Prints: kory   bob  jaime  cody
#Now Magicians = 'cody'
for Magicians in Magicians:
    print(Magicians)
#Prints: c o d y

一个简单的列表理解可以帮助您理解循环是如何工作的

这将吐出列表中每个machigian的所有字符Magicians

Magicians = ['kory', 'bob', 'jamie', 'cody']
[[char for char in magician] for magician in Magicians]

输出:

[['k', 'o', 'r', 'y'],
 ['b', 'o', 'b'],
 ['j', 'a', 'm', 'i', 'e'],
 ['c', 'o', 'd', 'y']]

相关问题 更多 >