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)
知道了!!谢谢你的解释!!知道了!!谢谢你的解释!!你可以接受帮助你解决问题的答案:干杯你可以接受帮助你解决问题的答案:干杯