我试图将用户输入作为字符串,并根据字符列表进行检查,我希望用户只使用列表中的字符创建一个单词。
到目前为止,我可以检查第一个字母是否正确,但超过这个数字,我的测试就失败了!
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")