Python中两个简单的if-else代码,它们是否应该返回相同的值?为什么每个人都返回其他东西。
def letter_check(word, letter):
for i in word:
if i == letter:
return True
return False
# This returns True
print(letter_check("strawberry", "a"))
# Same function?
def letter_check(word, letter):
for i in word:
if i == letter:
return True
else:
return False
# This returns False
print(letter_check("strawberry", "a"))
它们不一样。仅当def
中的所有字符都不等于False
时,第一个word
才返回letter
。
第二个仅检查word
中的第一个字符,如果相等则返回True
,如果不相等则返回False
。
无需循环,请使用in
关键字
def letter_check(word, letter):
return letter in word
[第二次调用letter_check("strawberry", "a")
时,函数返回False
,因为草莓的第一个字母是's'而不是'a'。