Я хочу сравнить одно значение переменной, которое является строкой, с другим строковым значением в операторе IF внутри кода Python. Но я не мог получить реальный результат.
Имя и значение переменной:: v1='purchased' Строковое значение:: 'покупка'
Если оба не равны, я хочу что-то напечатать.
v1 = 'purchase'
if (v1 != 'purchased') or (v1 != 'ordered'):
print("Both strings are not equal", v1) # return if true
else:
print("Both strings are equal", v1) # return if false
Чтобы сравнить переменную с разными значениями, не используйте and, вместо этого используйте in: if v1 in ("purchased", "ordered"):
Здесь, если я перехожу, купленный в V1, он входит в оператор if и говорит: «Обе строки не равны». Что не должно быть правильным.
Ваше условие if всегда истинно. Единственный способ достижения ветки else - это если "v1" одновременно равно "куплено" и "заказано", что невозможно.
Способ сделать это — не использовать or, потому что это логически неверно. Это вопрос не программирования, а рассуждения. Пожалуйста, смотрите связанный дубликат для более подробной информации.
С ИЛИ и другими вы всегда окажетесь в случае чего. Чтобы сравнить строки, измените следующее:
v1 = 'purchase'
if v1 != 'purchased' and v1 != 'ordered':
print("Both strings are not equal", v1) # return if true
else:
print("Both strings are equal", v1) # return if false
Другой способ - использовать оператор "in" следующим образом:
v1 = 'purchase'
if v1 not in ['purchased', 'ordered']:
print("Both strings are not equal", v1) # return if true
else:
print("Both strings are equal", v1) # return if false
Вы должны использовать и заявление, в вашем случае, если v1 == 'приобретен', тогда v1 != 'заказано', поэтому условие if выполняется.
Если v1 == 'заказано', то v1 != 'приобретено, так что условие if также выполняется.
Попробуй (v1 != 'purchased') and (v1 != 'ordered')
Или (v1 == 'purchased') or (v1 == 'ordered')
Я думаю, что ошибка исходит от вашего ().
Попробуйте это вместо этого:
v1 = 'ordered'
if v1 == 'purchased' or v1 == 'ordered':
print(f'Both Strings are equal {v1}')
else:
print(f'Both Strings are not equal {v1}')
И я также использовал f строк для удобства чтения.
Надеюсь, я помог.
Нет, скобки не проблема. С другой стороны, вы внесли другие изменения, которые даже не объяснили...
if string1 == "value1" or string2 == "value2":
Do Something
else:
Do something else
Я не понимаю вопроса; Вы хотели использовать and или хотите добиться чего-то другого?