我想在语句中为一个放置多个字符串,一行一行:
input = str(raw_input(''))
if str('a') or ('b') or ('c') in str(input):
print "a string"
else:
print "no"
单个in语句是否可以有多个字符串?
首先str('a') == 'a'
(因为'a'
已经是一个字符串),所以你可以忽略它。
'a' or 'b' or 'c' in input
这个表达式被解析如下:
('a') or ('b') or ('c' in input)
因此,您正在检查是否'a'
或'b'
评估为真,就是这种情况。如果要使用in
运算符检查它们,则必须明确指定:
'a' in input or 'b' in input or 'c' in input
您还可以简化:
any(x in input for x in ('a', 'b', 'c'))
是的,但你写的东西完全不同。它检查是否str('a')
为真,是否'b'
为真,或是否'c'
在input
. 虽然 Python 可读性很强,但它不会对您编写的内容做出假设。你必须明确:
if 'a' in input or 'b' in input or 'c' in input:
...
或者:
strings = ('a', 'b', 'c')
if any(s in input for s in strings):
...
使用字符串参数调用str()
是没有意义的。另外,input
是内置的名称,所以我建议你重命名你的变量。