Python 试图在字符串中查找字符时,字符串中的多个字符返回假布尔值
当我把它放进接线员的时候 isItThereS(“h”,“你好,世界”) 真的 但是当我去寻找一个重复像“l”或“o”的字符时,它返回false isItThereS(“l”,“你好,世界”) 假的Python 试图在字符串中查找字符时,字符串中的多个字符返回假布尔值,python,string,python-3.x,character,Python,String,Python 3.x,Character,当我把它放进接线员的时候 isItThereS(“h”,“你好,世界”) 真的 但是当我去寻找一个重复像“l”或“o”的字符时,它返回false isItThereS(“l”,“你好,世界”) 假的 我如何才能让它不返回false,而是返回True,因为从技术上讲,字符在字符串中。您可以简单地使用in运算符 #Function takes a character and a string and returns a boolean reflecting if #the character is
我如何才能让它不返回false,而是返回True,因为从技术上讲,字符在字符串中。您可以简单地使用in运算符
#Function takes a character and a string and returns a boolean reflecting if
#the character is found in the string.
def isItThereS(letter, word):
letInWord = 0
for l in word:
if l == letter:
letInWord += 1
return letInWord == True
您可以简单地使用in操作符
#Function takes a character and a string and returns a boolean reflecting if
#the character is found in the string.
def isItThereS(letter, word):
letInWord = 0
for l in word:
if l == letter:
letInWord += 1
return letInWord == True
如果真的想使用自定义函数,请将return改为
return letInWord>=1
。因为除了1==True
之外的所有内容都将计算为False
。(因此,对于函数来说,更合适的名称应该是is\u it\u there\u only\u only
)
否则,请使用armak提供的解决方案。如果您确实想使用自定义函数,请将您的return更改为
return letInWord>=1
。因为除了1==True
之外的所有内容都将计算为False
。(因此,对于函数来说,更合适的名称应该是is\u it\u there\u only\u only
)
否则,请使用armak提供的解决方案。因为
True
的计算结果为1
,因此如果出现次数大于1,则会得到错误的输出。必须使用内置方法,如str.find()
来执行此类操作,或者如果仍要修改这段代码,请使用return not letInWord==False
,因为True
的计算结果为1
,因此如果出现次数大于1,则会得到错误的输出。必须使用内置方法,如str.find()
来执行此类操作,或者如果仍要修改这段代码,请使用return not letInWord==False
顺便说一句,函数名是可以改进的,可以做到这一点!非常感谢。:)顺便说一句,函数名是可以改进的!非常感谢。:)