根据字符列表检查用户输入



我试图将用户输入作为字符串,并根据字符列表进行检查,我希望用户只使用列表中的字符创建一个单词。

到目前为止,我可以检查第一个字母是否正确,但超过这个数字,我的测试就失败了!

wordInput = str(input("words please: "))
if wordInput in ['w', 'v', 'g']:
print("yes")
else:
print("no")

我不知道如何接受输入并将其拆分,以便我的测试识别输入的每个单独字符,而不是根据列表中的字符来测试输入。

如有任何帮助,我们将不胜感激,谢谢

这里的Python方法是使用集合:

def validate_input(userword, accepted_chars):
return set(accepted_chars).issuperset(userword)
def main():
# input() always returns a string in Py3    
userword = input("words please:")
if validate_input(userword, "wvg"):
print("ok")
else:
print("ko")
if __name __ "__main__":
main()

这里的Python方法是使用all:

word_input = input("words please: ")
if all(ch in ['w','v','g'] for ch in word_input):
print("yes")
else:
print("no")

CCD_ 2逐个生成CCD_ 3中的每个字符。一旦测试ch in [..]失败,all将返回False;如果所有测试都通过,则返回True

一种方法是根据主列表匹配所有字符。

wordInput = str(input("words please: "))
only_valid_characters = ['w', 'v', 'g']
validatedInput = [valid_char for valid_char in wordInput if valid_char in only_valid_characters]
if len(wordInput) == len(validatedInput):
print("yes")
else:
print("no")

最新更新