如何查看字符串是否仅包含某些字符,如果包含,return True,否则 return False:Python
How to see if a string only contains certain characters, and if they do, return True, else return False: Python
对于 python 3.4.1,您将如何查找字符串中是否包含某些字符?我试过这样做:
def isItBinary(myString):
for ele in myString:
if ele == '1' or if ele == '0':
return True
else:
return False
此代码的问题在于,如果我键入 isItBinary('102'),它将 return 为真。我只希望它 return 当且仅当它包含“1”或“0”时才为真。
您想对多个字符应用 isitBinary
,因为按照您编写的方式,一旦选中第一个字符,它就会 return。
一个简单的方法来做你想做的事:
def binaryChar(myCharacter):
return myCharacter == '1' or myCharacter == '0'
然后将其应用于字符串中的所有字符,如下所示:
def isItBinary(myString):
return all(binaryChar(c) for c in myString)
当然,这些可以用更易读的方式简化:
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
函数。
def isItBinary(myString):
return all(x in ('0', '1') for x in myString)
x in ('0', '1')
检查 x
中的字符是“0”还是“1”。
你的程序一遇到第一个字符就返回值,你甚至没有遍历整个字符串。下面的这种方法检查条件是否在任何时候无效,returns False
否则迭代整个字符串和 returns 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
使用集:
def is_it_binary(s):
return not (set(s) - set("01"))
如果从字符串构造的集合包含任何不在第二个集合中的字符,则减法给出一个非空集合。否则,如果它仅包含第二组中的字符,您将得到一个空集,not
将翻转为 True
。
或者只是:
def is_it_binary(s):
allowed = set("01")
return all(c in allowed for c in s)
它具有短路的优点(即一旦发现无效字符就会爆炸)。
对于 python 3.4.1,您将如何查找字符串中是否包含某些字符?我试过这样做:
def isItBinary(myString):
for ele in myString:
if ele == '1' or if ele == '0':
return True
else:
return False
此代码的问题在于,如果我键入 isItBinary('102'),它将 return 为真。我只希望它 return 当且仅当它包含“1”或“0”时才为真。
您想对多个字符应用 isitBinary
,因为按照您编写的方式,一旦选中第一个字符,它就会 return。
一个简单的方法来做你想做的事:
def binaryChar(myCharacter):
return myCharacter == '1' or myCharacter == '0'
然后将其应用于字符串中的所有字符,如下所示:
def isItBinary(myString):
return all(binaryChar(c) for c in myString)
当然,这些可以用更易读的方式简化:
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
函数。
def isItBinary(myString):
return all(x in ('0', '1') for x in myString)
x in ('0', '1')
检查 x
中的字符是“0”还是“1”。
你的程序一遇到第一个字符就返回值,你甚至没有遍历整个字符串。下面的这种方法检查条件是否在任何时候无效,returns False
否则迭代整个字符串和 returns 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
使用集:
def is_it_binary(s):
return not (set(s) - set("01"))
如果从字符串构造的集合包含任何不在第二个集合中的字符,则减法给出一个非空集合。否则,如果它仅包含第二组中的字符,您将得到一个空集,not
将翻转为 True
。
或者只是:
def is_it_binary(s):
allowed = set("01")
return all(c in allowed for c in s)
它具有短路的优点(即一旦发现无效字符就会爆炸)。