Автор оригинала: Rafal Jasionowski.
Чтобы проверить несколько переменных х
, y
, z
против значения V
Используйте заданную операцию членства v в {x, y, z}
Это использует в ключевое слово, чтобы проверить, если значение V
соответствует любому значению в комплекте {x, y, z}
Отказ Возвращаемое значение – это логическое значение, а сложность выполнения – это o (1) для проверки членства и O (n) для создания временного набора.
Причина ошибок
Многие начинающие программисты борются с написанием состояния, которое сравнивает много переменных к целому числу или строке. В этом руководстве вы найдете несколько способов предотвращения проблем с такими условиями:
x, y, z = 2, 3, 4 print('Test!') if x or y or z == 1: print('We do not want this line of code to be printed out.')
Выход:
Test! We do not want this line of code to be printed out.
Теперь мы можем быть запутаны и спросить, почему наша программа не работает? В конце концов, не должно быть результатов! Тем не менее, есть, и причина проста, потому что условие соответствует, если хотя бы одно значение – Правда
И в нашем коде, даже два условия встречаются, вы можете спросить: как? Они встречаются, потому что когда мы пишем этот путь:
if x or y or z == 1: # your code here
Python видит эту линию немного по-другому, чем мы делаем, а именно значение x и y – это не 2 и 3 в этом случае, но верно и верно, поэтому наша программа работает, но не так, как мы хотели бы, чтобы это работало.
Так как сделать нашу программу работать так, как мы планировали это? К счастью, есть пара методов для этого. Вы можете получить быстрый обзор в нашей интерактивной оболочке:
Упражнение : Запустите оболочку и проверьте, является ли вывод одинаковым для всех четырех способов. Теперь погрузитесь в каждый метод, чтение в статье!
Метод 1: отдельные условия
Исправьте строку, которая проверяет, соответствует ли каждая переменная условия, добавив условие для каждой переменной вручную, в этом случае замените x или y или z на x или y или z.
print('Test!') if x == 1 or y == 1 or z == 1: print('We do not want this line of code to be printed out')
Выход:
Test!
Как видно, теперь наш сценарий работает правильно, но с большими программами потребуется много времени, однако существует более эффективные методы.
Способ 2: Членство
В Python мы можем написать условие, используя кортеж, это быстрее, чем добавление того же условия для каждой переменной в строкой линии. В нашем случае код будет выглядеть следующим образом:
print('Test!') if 1 in (x, y, z): print('We do not want this line of code to be printed out')
Выход:
Test!
Это способ, которым требуется меньше места и является быстрее, но если вы хотите проверить, будет ли условие выполнено в большем количестве переменных, то было бы еще лучше использовать набор, потому что набор не позволяет одни и те же значения появиться в нем. Просто измените (…) на {…}.
Метод 3: Словарь
Иногда мы также можем использовать словарь. В зависимости от того, что наша программа делает, это может быть хорошим выбором, например, если вы хотите добавить письмо на основе значения переменной в список, вы должны использовать словарь вместо того, чтобы написать программу таким образом:
x, y, z, mylist = 1, 2, 3, [] if 1 in {x, y, z}: mylist.append("A") if 2 in {x, y, z}: mylist.append("X") if 3 in {x, y, z}: mylist.append("E")
Если вы используете словарь, он будет выглядеть так:
x, y, z, mylist = 1, 2, 3, [] numbers_to_letters = {1: "A", 2: "X", 3: "E"} for number in numbers_to_letters: if number in {x, y, z}: mylist.append(numbers_to_letters[number])
Вывод будет такой же (топор), но словарь выглядит лучше, и когда вам нужно написать большую программу, запись займет меньше времени.
Метод 4: одноклассник
И что, если мы хотим написать однострочное решение? Есть также способ сделать это со списком пониманием! И это выглядит так:
mylist = [{1: 'A', 2: 'X', 3: 'E'}[i] for i in [0, 1, 2, 3] if i in (x, y, z)]
В начале создается список, а затем A для цикла проходит через значения 1, 2, 3 и проверяет, будут ли эти номера равны любую из переменных. Если это так, в зависимости от того, какое значение я представляет, он добавляет букву в список, который можно найти в словаре, например, Если и одна из переменных также равна 1, то буква A добавляется в список под названием MyList и так далее.
Резюме
Мы узнали, почему вы не можете писать такие условия: Если x или y или z
А как писать такие условия правильно, а также что делать, если вы хотите добавить, например, буквы, которые соответствуют нашему условию в списке.
Я надеюсь, что эта статья в блоге помогла вам понять возможную причину неточного результата из-за неправильно написанного состояния и предоставила вам подходящий метод.
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!