2024-10-01 02:35:43 发布
网友
对于python3.4.1,如何查找字符串中是否有某些字符?我试着这样做:
def isItBinary(myString): for ele in myString: if ele == '1' or if ele == '0': return True else: return False
这段代码的问题是,如果我输入isItBinary('102'),它将返回True。我只希望它在包含“1”或“0”时返回True。在
我只需要使用all函数。在
all
def isItBinary(myString): return all(x in ('0', '1') for x in myString)
x in ('0', '1')检查x中的字符是否为“0”或“1”。在
x in ('0', '1')
x
你的程序在遇到第一个字符时立即返回值,你甚至没有遍历整个字符串。下面的方法检查条件在任何时候是否无效,返回False,否则迭代整个字符串并返回True。在
False
True
def isItBinary(myString): for ele in myString: if not ele in ("0","1"): return False return True print isItBinary("102") >>> False print isItBinary("101") >>> True
您希望对多个字符应用isitBinary,因为按照您编写它的方式,它将在第一个字符被检查后立即返回。在
isitBinary
一个简单的方法是:
def binaryChar(myCharacter): return myCharacter == '1' or myCharacter == '0'
然后将其应用于字符串中的所有字符,如下所示:
当然,这些可以用更易读的方式简化:
def isItBinary(myString): return all(c in '01' for c in myString)
或者通过lambda函数:
isItBinary = lambda myString: all(c in '01' for c in myString)
我只需要使用
all
函数。在x in ('0', '1')
检查x
中的字符是否为“0”或“1”。在你的程序在遇到第一个字符时立即返回值,你甚至没有遍历整个字符串。下面的方法检查条件在任何时候是否无效,返回
False
,否则迭代整个字符串并返回True
。在您希望对多个字符应用
isitBinary
,因为按照您编写它的方式,它将在第一个字符被检查后立即返回。在一个简单的方法是:
然后将其应用于字符串中的所有字符,如下所示:
^{pr2}$当然,这些可以用更易读的方式简化:
或者通过lambda函数:
相关问题 更多 >
编程相关推荐