我一直有這段代碼的問題。似乎我對Python中while循環和縮進的理解仍然不完整。2個字符串之間的匹配字符
在下面的代碼中,我應該比較兩個語句。如果第二個(搜索)語句中的字符位於第一個(目標)語句中,則結果應爲「True」。否則,打印「假」。
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
超出範圍。我將不勝感激:
- 這是什麼問題的代碼和;
- 我對indentations和while循環的理解是不完整的。
您能否澄清一下這個函數應該做什麼?我認爲你的問題與邏輯有關,而不是縮進,但我不確定你要做什麼。 (我最好的猜測是,當且僅當'target'是'search'的子串時,它應該返回'True'。) – zwol
對我來說,你的縮進看起來很好。我完全同意Zack的看法,你的邏輯看起來有點偏離。但是我們不知道這個功能應該做什麼。預期的投入和產出是什麼? – aIKid
謝謝,我做了編輯澄清 - 是的,代碼應該在最後返回True或False。 – user3081750