【问题标题】:If I use a for loop with a string, will it check character by character?如果我对字符串使用 for 循环,它会逐个字符地检查吗?
【发布时间】:2014-04-12 01:26:29
【问题描述】:

我并不特别关心此时最后会发生什么。我只是想通过提出这个问题来更深入地了解 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中,在@987654324中对它做一些事情@(最终)。

我知道在某些时候我可能需要介绍 .find 并且代码不完整,但请幽默。我是一个初学者,所以我仍然只是想了解我什至想为字符串编写像上面这样的代码的原因。为此,我需要了解 for 循环如何与字符串交互并稍微玩一下。谢谢!

【问题讨论】:

  • 当您尝试使用循环体中的print 语句对字符串进行迭代时会发生什么?
  • 我同意@kindall 的观点,这绝对是一个你可以自己轻松尝试并弄清楚的例子。
  • @NateMara 我将此更多地理解为有人试图对代码进行推理(内部发生了什么)与动态编程练习的问题。
  • @Two-BitAlchemist 是的,这是正确的。谢谢你向其他人解释。 :)

标签: python string for-loop


【解决方案1】:

欢迎来到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 循环时,您认为会发生什么?

【讨论】:

  • 谢谢!感谢您花时间回答。这正是我需要知道的,在第一部分。没想到这样做。因为我学习的东西要复杂得多,所以有复杂的问题。我是个业余爱好者,哈哈。适应在线学习很难!习惯于从一本书上翻阅,略读,并通过重新阅读“教授 x 的地方”来提醒自己。现在,我必须筛选 100 个视频,才能找到合适的视频来教授我想要复习的概念!无论如何,谢谢大佬!如果我可以投票,我会的!
  • 别担心,伙计。如果你想尝试一门新的(但一开始很难)语言,它会真正迫使你内化多态性,试试 Haskell。 ;)
猜你喜欢
  • 2017-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多