我正在尝试获取列表的最后一个元素并将它们与字符串中的每个字符进行比较但是我的答案一直都是假的,谢谢
def isWordIn(secretWord, lettersGuessed):
for i in secretWord:
if lettersGuessed[-1:] == i:
return True
else:
return False
print(isWordIn('tat', ['t']))
答案 0 :(得分:0)
def isWordIn(haystack, needles):
for i in range(0, len(haystack)):
if needles[-1] == haystack[i]:
return True
return False
print(isWordIn('tat', ['t', 'a']))
我忘记了range()
我认为,或者至少部分是这样
执行for i in len(...)
就像执行for i in 10
一样,您无法迭代整数。所以使用range
。 for i in range(len(x))
与for i in range(0, len(x))
相同,但我认为它看起来更清晰
其次,执行else: return
会导致函数立即返回内容。你需要将负返回值放在循环之外并在找到某些东西时返回,否则你会过早地中断循环。
你也可以这样做:
def isWordIn(haystack, needles):
for c in haystack:
if needles[-1] == c:
return True
return False
print(isWordIn('tat', ['t', 'a']))
但是我没有看到总是抓住最后一针的点......
def isWordIn(haystack, needles):
for c in haystack:
for i in range(0, needles-1):
if needles[i] == c:
return True
return False
print(isWordIn('tat', ['t', 'a']))
但那会很慢:)。
答案 1 :(得分:0)
正如其他人所说:关键问题是,当代码命中return
时,它将执行该行并退出该函数。
如果你想要做的就是找出lettersGuessed [-1]是否在secretWord中你可能会找到
def isWordIn(secretWord, lettersGuessed):
return lettersGuessed[-1] in secretWord
有用