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"))
它们不一样。仅当word
中的所有字符都不等于letter
时,第一个def
才会返回False
。
第二个只检查word
中的第一个字符,如果它们相等,则返回True
,如果它们不相等,则返回False
。
无需顺便循环,使用in
关键字
def letter_check(word, letter):
return letter in word
当您第二次调用letter_check("strawberry", "a")
时,该函数返回False
因为草莓的第一个字母是"s"而不是"a"。