如何查看字符串是否只包含某些字符,如果包含,则返回True,否则返回False:Python

2024-10-01 02:35:43 发布

您现在位置:Python中文网/ 问答频道 /正文

对于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。在


Tags: or字符串代码infalsetrueforreturn
3条回答

我只需要使用all函数。在

def isItBinary(myString):
    return all(x in ('0', '1') for x in myString)

x in ('0', '1')检查x中的字符是否为“0”或“1”。在

你的程序在遇到第一个字符时立即返回值,你甚至没有遍历整个字符串。下面的方法检查条件在任何时候是否无效,返回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,因为按照您编写它的方式,它将在第一个字符被检查后立即返回。在

一个简单的方法是:

def binaryChar(myCharacter):
    return myCharacter == '1' or myCharacter == '0'

然后将其应用于字符串中的所有字符,如下所示:

^{pr2}$

当然,这些可以用更易读的方式简化:

def isItBinary(myString):
    return all(c in '01' for c in myString)

或者通过lambda函数:

isItBinary = lambda myString: all(c in '01' for c in myString)

相关问题 更多 >