我有以下代码,假设在字符串中搜索字母'e',如果在字符串中找到'e'则返回False
并返回True
是'e'没找到:
def has_no_e(word):
for letter in word:
if letter == 'e':
return False
return True
根据我的理解,for
循环将逐个访问word
中的字符,并根据我设置的条件检查它们,即if letter == 'e'
每次我运行程序时,似乎for循环只是出于某种原因检查第一个字母!
因此,使用has_no_e('dde','e')
调用该函数将返回True
。但如果我将其切换为has_no_e('edd','e')
,它将返回False
我在x86 Windows 7旗舰机上运行Python 2.7.3 ...谢谢
答案 0 :(得分:7)
其他人指出了你的错误,但整个功能过于复杂。你可以这样做:
def has_no_e(word):
return 'e' not in word
答案 1 :(得分:3)
return True
位于for循环体内,因此在检查第一个字母是否为'e'
之后会立即执行(除非第一个字母为e
,否则它将返回False
)。
答案 2 :(得分:3)
您的return
缩进错误。 unindent it(与for
处于同一级别),并且它将起作用