如果我使用for循环处理字符串,会逐个字符检查吗?
我现在并不太在乎最后会发生什么。我只是想更深入地了解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 个回答
3
欢迎来到神奇的多态性世界。这是编程中最酷的东西之一!
你有没有想过为什么叫它字符串?因为它是一串字符。如果你脑海中想象的是一串字母,像是挂在一根线或毛线上的样子,那就对了!
在Python中,字符串是可迭代的。这意味着我们可以把它们当作列表
来使用。毕竟,从某种意义上说,它们确实是列表:字符的列表。
这在实际操作中意味着我们可以对它们进行循环:
>>> 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
循环中时,你觉得会发生什么呢?