简单的如果其他条件出错了

时间:2014-04-28 06:39:17

标签: python python-2.7 if-statement

虽然'asduas'中没有'jpg'或'jpeg'或'png'或'bmp'或'gif',但仍保持打印'已发现'。我究竟做错了什么? :■

if 'jpg 'or 'jpeg' or 'png' or 'bmp' or 'gif' in 'asduas':
    print('found')

else:
    print('not found')

4 个答案:

答案 0 :(得分:2)

另一种方式:

if any(x in 'asudas' for x in ('jpg','jpeg','png','bmp','gif')):
    print('Found')

答案 1 :(得分:1)

执行此操作的正确方法是:

if 'jpg' in 'asduas'  or 'jpeg' in 'asduas' or 'png' in 'asduas' or 'bmp' in 'asduas' or 'gif' in 'asduas':
    print('found')

答案 2 :(得分:1)

您的if评估以下任何一项是否导致True

'jpg'
'jpeg'
'png'
'bmp'
'gif' in 'asduas'

因为'jpg'评估为True,所以它将永远输入。

你可能想要什么

if any(x in 'asduas' for x in ('jpg', 'jpeg', 'png', 'bmp', 'gif')):

答案 3 :(得分:0)

你误解了布尔表达式的工作原理。您正在寻找:

if 'jpg' in 'asduas'  or 'jpeg' in 'asduas' or 'png' in 'asduas' or 'bmp' in 'asduas' or 'gif' in 'asduas':
    print('found')

else:
    print('not found')

你甚至可以缩短它:

if any(x in 'asduas' for x in ('jpg','jpeg','png','bmp','gif')):
    print('found')

else:
    print('not found')

因为jpg给出True,所以if语句将始终返回true。