【发布时间】:2013-12-28 20:55:07
【问题描述】:
这段代码一直有问题。看来我对Python中while循环和缩进的理解还是不完整的。
在下面的代码中,我应该比较两个语句。如果第二个(搜索)语句中的字符在第一个(目标)语句中,则结果应为“True”。否则,打印“False”。
x = "I am a horse."
y = "a r"
-
targetn引用目标字符串中的索引 -
searchn指的是搜索字符串中的索引 -
letter指目标字符串中的字符 -
word指的是搜索字符串中的字符
def search_in_string(search, target):
targetn = 0
searchn = 0
while (targetn + 1) != len(target):
letter = target[targetn]
word = search[searchn]
if word == letter:
targetn = targetn + 1
searchn = searchn + 1
if word != letter:
targetn = targetn + 1
if (searchn + 1) == len(searchn):
return True
else:
return False
print search_in_string(y, x)
在 Python 中运行代码时,由于searchn 超出范围,出现索引错误。我将不胜感激:
- 代码有什么问题和;
- 我对缩进和 while 循环的理解不完整。
【问题讨论】:
-
能否请您澄清一下这个函数应该做什么?我认为您的问题在于逻辑,而不是缩进,但我不确定您要做什么。 (我最好的猜测是,当且仅当
target是search的子字符串时,它应该返回True。) -
对我来说,你的缩进看起来不错。我完全同意 Zack,你的逻辑似乎有点不对劲。但是我们不知道这个函数应该做什么。预期的输入和输出是多少?
-
谢谢,我已经进行了编辑以澄清 - 是的,代码应该在最后返回 True 或 False。
标签: python string loops while-loop