Как сравнить два строковых значения внутри оператора IF с помощью оператора или в Python

Я хочу сравнить одно значение переменной, которое является строкой, с другим строковым значением в операторе 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 или хотите добиться чего-то другого?

B Remmelzwaal 16.02.2023 15:58

Чтобы сравнить переменную с разными значениями, не используйте and, вместо этого используйте in: ​​if v1 in ("purchased", "ordered"):

Sembei Norimaki 16.02.2023 16:01

Здесь, если я перехожу, купленный в V1, он входит в оператор if и говорит: «Обе строки не равны». Что не должно быть правильным.

user3040157 16.02.2023 16:01

Ваше условие if всегда истинно. Единственный способ достижения ветки else - это если "v1" одновременно равно "куплено" и "заказано", что невозможно.

Simon 16.02.2023 16:02

Способ сделать это — не использовать or, потому что это логически неверно. Это вопрос не программирования, а рассуждения. Пожалуйста, смотрите связанный дубликат для более подробной информации.

Karl Knechtel 16.02.2023 20:37
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Веб-скрейпинг, как мы все знаем, это дисциплина, которая развивается с течением времени. Появляются все более сложные средства борьбы с ботами, а...
Библиотека для работы с мороженым
Библиотека для работы с мороженым
Лично я попрощался с операторами print() в python. Без шуток.
Эмиссия счетов-фактур с помощью Telegram - Python RPA (BotCity)
Эмиссия счетов-фактур с помощью Telegram - Python RPA (BotCity)
Привет, люди RPA, это снова я и я несу подарки! В очередном моем приключении о том, как создавать ботов для облегчения рутины. Вот, думаю, стоит...
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
Учебник по веб-скрапингу
Учебник по веб-скрапингу
Привет, ребята... В этот раз мы поговорим о веб-скрейпинге. Целью этого обсуждения будет узнать и понять, что такое веб-скрейпинг, а также узнать, как...
Тонкая настройка GPT-3 с помощью Anaconda
Тонкая настройка GPT-3 с помощью Anaconda
Зарегистрируйте аккаунт Open ai, а затем получите ключ API ниже.
3
5
55
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

С ИЛИ и другими вы всегда окажетесь в случае чего. Чтобы сравнить строки, измените следующее:

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 строк для удобства чтения.

Надеюсь, я помог.

Нет, скобки не проблема. С другой стороны, вы внесли другие изменения, которые даже не объяснили...

Tomerikoo 16.02.2023 16:07
if string1 == "value1" or string2 == "value2":
    Do Something
else:
    Do something else

Другие вопросы по теме