虽然'asduas'中没有'jpg'或'jpeg'或'png'或'bmp'或'gif',但仍保持打印'已发现'。我究竟做错了什么? :■
if 'jpg 'or 'jpeg' or 'png' or 'bmp' or 'gif' in 'asduas':
print('found')
else:
print('not found')
答案 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。