Условные выражения и списки

Сегодня мы углубимся в основы Python во второй части моего руководства How to Python: The Basics. Исходный пост можно найти по ссылке ниже:



Мы начнем с того места, где остановились, и будем развивать концепции, использованные в первом уроке, поэтому, если у вас возникнут какие-либо проблемы после этого урока, обязательно нажмите на ссылку выше для получения разъяснений.
В примерах я предоставлю код, чтобы вы могли скопировать и вставить, если хотите следовать по этому пути, и за кодом будет следовать изображение кода, который был выполнен с помощью Jupyter Notebook, чтобы вы могли видеть, что должно произойти, когда вы запустите код.

Урок

Условные выражения
На последнем уроке мы увидели на примере типов данных, что один из типов данных, присущих Python, - это логическое значение (bool), которое является утверждением True или False. Когда мы говорим об условных операторах, мы говорим о коде, который что-то делает на основе условия. Чтобы проверить условие, мы используем логические значения, чтобы определить, является ли что-то истинным или ложным. Давайте посмотрим на это на примере:

# The code below will ask a user for a number input, and will then tell the user whether the number is even or odd.
Variable1 = int(input('Give me a number '))
if (Variable1 % 2) == 0:
    print("The number is even")
else:
    print("The number is odd")

И вот как это должно выглядеть, когда вы запустите его на своей стороне:

Хорошо, давайте распакуем фрагмент кода, показанный выше. Я решил объединить некоторые элементы из первого урока, чтобы показать вам, как можно использовать эти концепции. Итак, первая часть запрашивает ввод данных пользователем в виде числа, здесь нет ничего нового. Не стесняйтесь пробовать это с другими номерами, чтобы проверить код.

Новая часть - это следующая строка, которая начинается с if. Это условное утверждение. Эта строка сообщает компьютеру, чтобы он напечатал, что число четное, если дано четное число, и в противном случае (иначе) он напечатает, что число нечетное.

Кое-что новенькое, что я также решил показать здесь, это то, как определить, четное или нечетное число. Для этого в Python мы использовали оператор остатка%. В приведенном выше примере проверяется, что остаток (%) от числа, введенного пользователем (Variable1) при делении на 2 (который является 2 после оператора остатка), равен 0 (== 0). Двойной знак == позволяет проверить, что два выражения равны по значению.

Также важно отметить, что в Python 1 равно True, а 0 равно False. Если информации недостаточно, Python будет считать «Истинность» объекта ложной, а если информация есть, она будет считаться Истиной. Давайте подробнее рассмотрим метод bool ():

Не стесняйтесь возиться с методом bool () и операторами True / False, пока не почувствуете себя комфортно с концепцией.

Давайте сделаем еще один пример, чтобы подвести итог условным операторам:

days_off = 3
if days_off > 4:
    print("Woohoo! Vacation!!!")
elif days_off > 2:
    print("This is better than the weekend!")
else:
    print("I'm looking forward to some time off.")

А вот как это должно выглядеть в блокноте при запуске:

В приведенном выше примере часть, которую я действительно хотел продемонстрировать, - это оператор else if (elif), который является еще одним типом условного оператора, который действует как вторичный оператор if. В приведенном выше случае мы могли изменить количество days_off и получить разные ответы. Если число days_off больше 2, будет напечатано «Это лучше, чем выходные!» если бы выходных было больше 4, то было бы напечатано «Woohoo! Отпуск!!!" в противном случае он просто напечатал бы «Я с нетерпением жду отпуска».

Списки

Списки - это первая форма сбора, которую мы рассмотрим в этом руководстве. Когда мы говорим о коллекциях, мы имеем в виду метод группировки различных частей данных вместе. Давайте начнем с рассмотрения списка различных домашних животных в Python:

Для инициализации списка мы используем открывающую скобку [и заканчиваем список закрывающей скобкой]. В списке есть разные части, которые называются элементами, и каждый элемент отделяется запятой. В приведенном выше примере каждый элемент представляет собой строку, которую я обозначил названием вида домашнего животного.

Обычно при работе со списками вы хотите установить список как переменную, которой можно управлять разными способами:

pets = ['Dogs','Cats','Birds','Mice','Lizards','Horses']

Вот что происходит в записной книжке, когда мы определяем наш список как переменную, а затем запускаем его:

Списки - это их собственный тип данных в Python:

Доступ к элементам

Хорошо, теперь давайте узнаем, как мы можем управлять списком. Начнем с выбора элемента в списке. Давайте обратимся к первому элементу нашего списка, Dogs, а затем ко второму элементу, Cats:

pets[0]

Это должно получить доступ к собакам из нашего списка:

Получим доступ к кошкам:

Мы получаем доступ к элементам, добавляя скобку после переменной списка, а затем помещая число, которое представляет позицию элемента в списке. Такой доступ к элементу называется индексированием. Во многих языках программирования индекс начинается с 0, а не с 1. Итак, чтобы получить доступ к первому элементу, вам нужно будет индексировать с 0, для второго элемента он будет равен 1 и так далее ...

Это упрощает доступ к первым элементам списка, но что, если бы у нас был действительно длинный список, и мы хотели бы получить доступ к элементам с другого конца? Давайте взглянем.

Хорошо, мы видим, как это сделать, мы добавляем «-» в индекс по адресу для доступа к последнему элементу, это будет 1. Чтобы продолжить увеличение числа, мы будем перемещать нас справа налево в списке. Важно отметить, что вы можете устанавливать индексы из списков в переменные:

last_of_my_list = pets[-1]
last_of_my_list

В записной книжке:

Доступ к нескольким элементам в списке осуществляется через так называемый срез и аналогичен доступу к одному индексу, это не изменит исходный список:

pets[2:4]

Первый индекс в срезе - это место, где срез начнется, а последний индекс остановится на этом номере (это число не будет включено, поэтому оно будет включать индекс прямо перед ним). Давайте взглянем на наши списки ранее, чтобы убедиться:

Как и раньше, срезы можно задавать как переменные.

Изменение списков

Хорошо, давайте узнаем, как мы можем изменить список. Есть первый очевидный способ, который обычно менее практичен, и это просто установить переменную как измененный список.

pets = ['Dogs','Cats','Birds','Mice','Lizards','Horses','Pigs']
pets

Мы устанавливаем нашу переменную pets как список, включающий свиней. Часто это не лучший способ изменить список, и есть гораздо лучшие способы сделать это. Давайте сначала узнаем, как добавить элемент в список, добавив в него черепах. Чтобы добавить элемент, мы вызываем метод append ():

pets.append('Turtles')
pets

Давайте теперь посмотрим, как удалить элемент из списка. Для этого воспользуемся методом pop (). Если в методе не указан индекс, будет удален последний элемент списка.

pets.pop()
pets.pop(3)
pets

Ради урока давайте снова добавим наших черепах и мышей в список питомцев:

pets.append('Turtles')
pets.append('Mice')
pets

Мы также можем изменять элементы в списке, как при установке переменной:

pets[3] = 'Pigs'
pets

В приведенном выше примере мы изменили индекс 3, Ящерицы, на Свиньи, не удаляя другой элемент, Свиньи из списка.

Хорошо, мы почти закончили урок. Теперь у нас есть дубликат в нашем списке, но есть способ увидеть уникальные элементы в списке с помощью метода set (). Метод set () подсчитает каждый уникальный элемент один раз и составит их список. Мы установим наш уникальный список на новую переменную, чтобы не изменять первую. Также важно отметить, что набор похож на список, но имеет собственный тип данных:

unique_pets = set(pets)
unique_pets

В приведенном выше примере unique_pets - это то же самое, что и pets, за исключением того, что у него есть один повторяющийся элемент, Pigs, который отличается от нашего списка pets. Следовательно, в нем должно быть на один элемент меньше. Давайте проверим длину обеих этих переменных, чтобы убедиться, используя метод len (), который дает нам количество элементов в объекте:

Подтверждено, что unique_pets имеет на один элемент меньше, чем pets. Как дополнительное примечание, метод len () будет собирать длину элементов в любом объекте, к которому вы его применяете, поэтому, если мы попытаемся использовать его в строке, он будет подсчитывать количество символов для этой строки:

На прощание
На этом урок завершен. Я надеюсь, что все ясно, и если у вас есть какие-либо вопросы, не стесняйтесь комментировать ниже, и я сделаю все возможное, чтобы вернуться к вам. Мне понравилось делать это руководство, и я надеюсь, что вы получите удовольствие от его выполнения. Продолжайте исследовать, получайте удовольствие и проявляйте творческий подход!