Python 如果变量==';字符串';:doSomething()?

Python 如果变量==';字符串';:doSomething()?,python,dictionary,if-statement,Python,Dictionary,If Statement,我将if语句控制流中列表的每个元素与如下字符串进行比较: charlist = ['a','b'] for el in charlist: if el is'a' or 'A': print('a is done') if el is 'b' or 'B': print('b is done') if el is 'c' or 'C': print('why c?') 输出为: a完成了 b完成了 为什么是c 为什么要执

我将if语句控制流中列表的每个元素与如下字符串进行比较:

charlist = ['a','b']

for el in charlist:
    if el is'a' or 'A':
        print('a is done')
    if el is 'b' or 'B':
        print('b is done')
    if el is 'c' or 'C':
        print('why c?')
输出为:
a完成了
b完成了
为什么是c

为什么要执行“if el是'c'或'c':”语句?
我想只有前两个被处决了

但是这个解决方案对我有效

for el in charlist:
    if el == 'a' or el == 'A':
       print('a is done')
    if el == 'b' or el == 'B':
       print('b is done')
    if el == 'c' or el == 'C':
       print('c is done')

为了清晰起见,请尝试这样做:

charlist = ['a','b']

for el in charlist:
  if el =='a' or el =='A':
     print('a is done')
  if el == 'b' or el =='B':
     print('b is done')
  if el == 'c' or el == 'C':
      print('why c?')

el是'c'或'c'
:->
el=='c'或el=='c'
@EliKorvigo他们是ifs,不是elifs。这对我来说很有效@mad\,thx@dfundako没错,我已经删除了我的评论。我的视觉皮层中的模式匹配器将
if el
误认为
elif
。你也可以看看这个,因为它与你的问题完全相同,并且注释显示出比你选择的更好的解决方案。