为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕丝7291255 2022-09-06 17:29:46
我正在尝试将用户输入作为字符串进行检查,并将其与字符列表进行检查,我希望用户仅使用列表中的字符创建单词。到目前为止,我可以检查第一个字母是否正确,但除此之外,我的测试失败了!wordInput = str(input("words please: "))if wordInput in ['w', 'v', 'g']:print("yes")else:    print("no")我不确定如何获取输入并将其拆分,以便我的测试识别输入的每个单独字符,而不是针对列表中的字符逐字测试输入。任何帮助将不胜感激,谢谢
查看完整描述

3 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

这里的 pythonic 方法是使用 all:


word_input = input("words please: ")

if all(ch in ['w','v','g'] for ch in word_input):

    print("yes")

else:

    print("no")

.. for ch in word_input逐个生成每个字符。一旦测试失败,就会返回;如果所有测试都通过,则返回 。word_inputch in [..]allFalseTrue


查看完整回答
反对 回复 2022-09-06
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

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


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()


查看完整回答
反对 回复 2022-09-06
?
动漫人物

TA贡献1815条经验 获得超10个赞

一种方法是将所有字符与主列表进行匹配。


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")


查看完整回答
反对 回复 2022-09-06
  • 3 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信