如果我使用带字符串的for循环,它会逐字符检查吗?

时间:2014-04-12 01:26:30

标签: python string for-loop

我并不特别关心此时最后会发生什么。我只是通过提出这个问题,试图通过字符串输入更加密切地理解Python的行为。

具体来说,我想知道在这个例子中使用应用于字符串的for循环会做什么。它是否查找整个字符串并在检查整个字符串后考虑循环,或者它是否会单独查找字符串中的每个字符(或者这些都不是,如果不是,那么?)?

def some_procedure(sentence,characters):
    for character in characters:
        if character in sentence:
            do something

print some_procedure('This is a test','iae')

我希望代码循环遍历给定字符串中的每个字符并查看另一个字符串以查看是否存在任何这些字符,然后在我理解这部分代码的工作原理后再执行其他操作。为了特定于上面的示例,我想循环遍历字符串characters中的所有字符(' i',' a',' e)一个角色在sentence中,在sentence(最终)中做了一些事情。

我知道我可能需要在某个时候引入.find并且代码不完整,但请幽默我。我是初学者,所以我仍然只是想了解我甚至想要为字符串编写类似上述代码的原因。要做到这一点,我需要了解for循环如何与字符串交互并稍微玩一下。谢谢!

1 个答案:

答案 0 :(得分:3)

欢迎来到polymorphism的精彩世界。它是编程中最酷的东西之一!

你有没有想过为什么他们称之为字符串?因为它是字符串。如果你想象一下你心中的一串实际字符串或一条纱线,好!

与Python中的许多内容一样,字符串可迭代。这意味着我们可以像lists一样对待它们。毕竟,在某种程度上,他们列表:字符列表。

实际上,这意味着我们可以循环使用它们:

>>> for letter in 'hello':
...   print(letter)
...
h
e
l
l
o

我们可以采用切片

>>> 'hello'[:2]
'he'
>>> 'hello'[3:]
'lo'
>>> 'hello'[2:4]
'll'

我们甚至可以索引他们!

>>> 'hello'[0]
'h'

那么,当我们将它们传递给for循环时,您认为会发生什么?