Python中两个简单的if-else代码,难道它们不返回相同的值吗?为什么每个人还返回其他东西

问题描述 投票:0回答:2

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"))
python if-statement controls flow
2个回答
0
投票

它们不一样。仅当def中的所有字符都不等于False时,第一个word才返回letter

第二个仅检查word中的第一个字符,如果相等则返回True,如果不相等则返回False

无需循环,请使用in关键字

def letter_check(word, letter):
    return letter in word

0
投票

[第二次调用letter_check("strawberry", "a")时,函数返回False,因为草莓的第一个字母是's'而不是'a'。

© www.soinside.com 2019 - 2024. All rights reserved.