这是一个Pig拉丁游戏,它可以正常工作,但是现在,如果我输入变量“特殊”定义的任何字符,我将其返回为True,但如果添加另一个字符,则其将返回false。
因此,它仅检查整个字符串,而不是字符串的任何字符。 我希望如果我输入“ Ban /”,它将作为无效返回。因此,如果在“单词”中找到“特殊”中定义的任何字符,我希望它返回true。
special = list('[@_!#$%^&*()<>?/\|}{~:]')
word=input("\nType in a word : ")
if word in special:
print("Your entry is not valid.")
else:
pigLatin()
我之前也尝试过此操作,但本质上是相同的
if word[0:] in special:
如果有帮助,这里是full snipet。条件符合以下条件:41
请注意,我是几天前开始的,所以看起来真的很乱。
答案 0 :(得分:1)
浏览输入中的每个字符,然后逐个执行检查。您可以使用any()
和生成器理解来做到这一点:
if any(i in special for i in word):
print("Your entry is not valid.")
您还可以考虑通过检查sets
和word
之间的交点是否为空来使用special
:
if set(word) & set(special):
print("Your entry is not valid.")