我是python的新手,想要在数字和特殊字符的字符串中过滤我正在使用的内容打印出是(如果有数字或特殊字符)和否(如果没有)这样的人物) 这就是我现在使用的内容:
name_letters="123456789/*-.,`~<>?\:;!@#$%^&*()-_=+{}[]"
name= '123456'
def check_letters (text,char):
count= 0
for char in name:
let= text[count]
if name_letters== let:
print('Yes')
else:
print("No")
count+=1
for char in name_letters:
check_letters(name,name_letters)
出现的问题是:
在玩变量之后,它总是只返回是或否,而不是两者的变体
这不是一个大问题,但循环运行的时间超过了
答案 0 :(得分:0)
我认为过滤器不是您正在寻找的词,而是更多的检查它是否存在。因此,您可以使用built-in any()函数查看字符串内是否有任何字符匹配。
使用in运算符,您可以检查字符串中是否存在单个字符:
'$' in string # found
'$' not in string # not found
在代码中处理此问题的pythonic方法如下所示:
#Returns boolean True/False if any character exists in string
def check_letters(string, characters):
charset = set(characters)
return any((c in charset) for c in string)
print "Yes" if check_letters(name, name_letters) else "No"