我知道这个标题有点乱,如果有人想修改它,他们非常欢迎。在
不管怎么说,我在查询一个包含多个值的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、 它仍然会检测到'!'并评估为真。在
如果你循环输入字符串,你应该能够得到你想要的解决方案。这样的怎么样?在
raw_input()
避免了一些麻烦。在我改变之前,我得到了一个unexpected EOF while parsing
错误。我更改了变量的名称以帮助避免潜在的冲突。在通过将
return False
行移到for
循环之外,它允许循环首先检查输入字符串中的每个字符。如果它检查每一个,但没有匹配项,那么它将默认返回False
。在另外,您的问题中有两个调用
symbol()
,我认为这是没有必要的。一个if
可以检查True
返回值。否则,我们就转到else
语句,可以安全地知道函数返回了False
。在相关问题 更多 >
编程相关推荐