Python 3.x 字符串和条件:循环返回true和false,为什么输出结果只返回一个true

Python 3.x 字符串和条件:循环返回true和false,为什么输出结果只返回一个true,python-3.x,Python 3.x,我正在为这个问题编写代码:“编写一个名为letter\u check的函数,它接受两个输入,word和letter。如果单词包含字母,该函数应返回True,如果不包含字母,则返回False。”该函数提供的答案如下: def letter_check(word, letter): for m in word: if m == letter: return True return False print(letter_check("strawberry","a")) 我想不

我正在为这个问题编写代码:“编写一个名为
letter\u check
的函数,它接受两个输入,
word
letter
。如果单词包含字母,该函数应返回
True
,如果不包含字母,则返回
False
。”该函数提供的答案如下:

def letter_check(word, letter):
  for m in word:
   if m == letter:
     return True
  return False
print(letter_check("strawberry","a"))
我想不出这是怎么回事。例如,我认为
草莓
中的第一个字符是
s
,进入
For
循环
s
不等于
a
,退出循环并返回
False
。第二个字符的结果相同(
False
)。然后继续。。对于第四个字母
a
,结果为
True
。其余部分再次返回
False

所以我认为
字母检查(“草莓”,“a”)
的结果是
。(由于最后一个字符与“
a
”不匹配,因此最后一个
返回值
false
)。我不明白为什么结果是
真的


后来我知道我可以在中使用
,但我希望知道为什么上面的编码返回
true

return语句是任何函数执行的最后一条语句。执行return语句后,控件移出函数体。因此,一旦条件在循环本身内匹配,函数将返回true。只有当控件在前面没有遇到
return
语句时,它才会从循环中移到
return false
语句,这意味着if条件永远不会为true。

return语句是任何函数执行的最后一条语句。执行return语句后,控件移出函数体。因此,一旦条件在循环本身内匹配,函数将返回true。只有当控件前面没有遇到
return
语句时,它才会从循环中移到
return false
语句,这意味着if条件从来都不是真的。

从@Tojrah已经解释过的原因开始,您可以使用布尔标志和索引变量来检查字符的存在性:

def letter_check(word, letter):
  isFound = False
  Index = None
  for m in word:
     if m == letter:
        isFound = not isFound     # set the flag to true
        Index = word.index(m)     # get the index pos of the letter
  return isFound, Index

print(letter_check("strawberry","a"))
print(letter_check("strawberry","o"))
输出

(True, 3)
(False, None)

从@Tojrah已经解释过的原因开始,您可以使用布尔标志和索引变量来检查字符的存在性:

def letter_check(word, letter):
  isFound = False
  Index = None
  for m in word:
     if m == letter:
        isFound = not isFound     # set the flag to true
        Index = word.index(m)     # get the index pos of the letter
  return isFound, Index

print(letter_check("strawberry","a"))
print(letter_check("strawberry","o"))
输出

(True, 3)
(False, None)

知道了!!谢谢你的解释!!知道了!!谢谢你的解释!!你可以接受帮助你解决问题的答案:干杯你可以接受帮助你解决问题的答案:干杯