如果在用户输入中有str('a')或str('b')或str('c'),那么做一些事情

时间:2013-07-04 22:17:15

标签: python string

我想在一行

中为一个语句添加多个字符串:

input = str(raw_input(''))   
if str('a') or ('b') or ('c') in str(input):
    print "a string"
else:
    print "no"

是否可以为单个 语句中包含多个字符串?

2 个答案:

答案 0 :(得分:6)

首先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'))

答案 1 :(得分:3)

确实如此,但你写的东西完全不同。它检查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是内置的名称,因此我建议您重命名变量。