我想將多個字符串放在一個中聲明一行:如果在用戶輸入中有str('a')或str('b')或str('c')然後做任何事情
input = str(raw_input(''))
if str('a') or ('b') or ('c') in str(input):
print "a string"
else:
print "no"
是否有可能有在聲明一個多個字符串?
我想將多個字符串放在一個中聲明一行:如果在用戶輸入中有str('a')或str('b')或str('c')然後做任何事情
input = str(raw_input(''))
if str('a') or ('b') or ('c') in str(input):
print "a string"
else:
print "no"
是否有可能有在聲明一個多個字符串?
這是,但你寫的是做了完全不同的事情。它檢查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
是內建的名稱,所以我建議你重命名你的變量。
首先str('a') == 'a'
(因爲'a'
已經是一個字符串),所以你可以不要這樣。
'a' or 'b' or 'c' in input
該表達式解析爲以下幾點:
('a') or ('b') or ('c' in input)
所以你檢查是否'a'
或'b'
evalute爲true,這是這種情況。如果你想檢查它們全部採用in
運營商,你必須明確地規定:
'a' in input or 'b' in input or 'c' in input
您也可以簡化,那麼:
any(x in input for x in ('a', 'b', 'c'))
其「輸入」應該由「a」,「b」,「c''組成? –
@GrijeshChauhan相反,如果任何'a','b'或'c'是'input'的子串。所以'foo'將是錯誤的,但'bar'會是真的,因爲'a'在那裏。 – poke
我認爲你可以這樣做:'如果(輸入('a','b','c')):' –
@GrijeshChauhan不,這將檢查'輸入'是否等於這三個字符串中的任何一個。 – poke
@poke是的,這不是他想要的嗎? –