如何查询python列表中每个都有多个字符

2024-04-19 14:12:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这个标题有点乱,如果有人想修改它,他们非常欢迎。在

不管怎么说,我在查询一个包含多个值的python列表时遇到了一些问题,我已经研究过其他Stackoverflow问题,但似乎没有一个与我所寻找的相匹配。在

所以,这是我到目前为止的代码,它应该使用for循环语句,以便它遍历每个字符,然后使用and if in语句检查用户输入中的字符是否与列表中的任何字符匹配。在

在我的例子中,它只使用符号,但希望这不是什么大问题

不管怎样,这是密码

string = input("What symbol character would you like to check")
symbols=[' ', '!', '#', '$', '%', '&', '"', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', '{', '|', '}', '~',"'"]
def symbol():
    for string in symbols:
        if string in symbols:
            return True
        elif string not in symbols:
            return False

if symbol():
    print('ok')
if not symbol():
    print('What Happened?')

*更新,我还需要解决方案,能够接受字母和数字以及符号。在

例如,如果用户进入!a、 它仍然会检测到'!'并评估为真。在


Tags: in标题列表forstringreturnif符号
1条回答
网友
1楼 · 发布于 2024-04-19 14:12:11

如果你循环输入字符串,你应该能够得到你想要的解决方案。这样的怎么样?在

input_string = raw_input("What symbol character would you like to check? ")
symbols = [' ', '!', '#', '$', '%', '&', '"', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', '{', '|', '}', '~',"'"]
def symbol(input_str):
    for char in input_str:
        if char in symbols:
            return True
    return False

if symbol(input_string):
    print('ok')
else:
    print('What Happened?')

raw_input()避免了一些麻烦。在我改变之前,我得到了一个unexpected EOF while parsing错误。我更改了变量的名称以帮助避免潜在的冲突。在

通过将return False行移到for循环之外,它允许循环首先检查输入字符串中的每个字符。如果它检查每一个,但没有匹配项,那么它将默认返回False。在

另外,您的问题中有两个调用symbol(),我认为这是没有必要的。一个if可以检查True返回值。否则,我们就转到else语句,可以安全地知道函数返回了False。在

相关问题 更多 >