Давайте погрузимся в логические значения, строки, целые числа, числа с плавающей запятой, словари, множества, списки и многое другое!

Переменные являются ключевой частью любого языка, и каждая переменная содержит данные определенного типа. В этой статье мы рассмотрим все основные типы переменных в Python и выделим некоторые ключевые операции.

Там так много подробностей, что вы можете погрузиться в полную документацию по Python, но я думаю, что для того, чтобы быстро начать, лучше прочитать краткое изложение, которое сначала даст вам ключевые моменты. Я настоятельно рекомендую открыть Python IDE, чтобы вы могли самостоятельно запускать эти фрагменты кода.

Теперь давайте погрузимся!

Типы

Python не является статически типизированным языком. В Python есть типы, но вам не нужно объявлять типы, и вы можете неявно изменить тип переменной, переназначив значение нового типа.

логический

Самый простой вид переменной — логическая переменная — это просто True или False, да или нет, 1 или 0. Иногда ее называют флагом.

Давайте определим логическое значение:

is_cool = True

Здесь мы определяем новую переменную с именем is_cool и присваиваем ей значение True. Обратите внимание, что использование заглавной буквы T в True необходимо для Python, чтобы знать, что вы имеете в виду истинное значение True, а не какую-то переменную, которую вы назвали true, которая не существует.

Использование

Логические значения могут использоваться в операторах if:

is_cool = True 
if is_cool: 
  print('Wow this is cool. ') 
else: 
  print("This isn't very cool...")

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

Вы также можете использовать их в условиях цикла:

import time 
running = True 
start_time = time.time() 
while running: 
  current_time = time.time() 
  if current_time - start_time <5: 
    print(f'We are still running at time = {current_time}...') 
    time.sleep(1) 
  else: 
    running = False 
print('Ending the loop!')

Здесь мы видим, что цикл завершается, когда логическая переменная running становится False.

Операции

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

Например, можете ли вы предсказать, что выведет эта программа?

owns_coat = True 
lost_coat = False 
raining = False 
cold_outside = True 
print((raining or cold_outside) and owns_coat and not lost_coat)

Если вы угадали True, вы правы! Мы используем несколько логических операторов и скобки, чтобы убедиться, что используется правильный порядок операций.

Вы можете узнать больше о логических значениях в официальной документации.

Нить

Строка — это тип данных, предназначенный для текста. Например, мы можем определить новую строковую переменную, такую ​​как my_string = "Hello World!".

Обратите внимание, что строки могут быть определены с помощью одинарных или двойных кавычек. Обычно это не имеет значения, за исключением случаев, когда у вас есть кавычки в строке, которую вы хотите сохранить, например, если вы хотите сохранить строку "Can't", вам нужно использовать двойные кавычки, чтобы одинарная кавычка в слове не заканчивала строку раньше.

Использование

Строки используются повсеместно, часто для хранения текста, который будет использоваться для взаимодействия с пользователем, или для хранения информации.

Например, вы можете захотеть записать имя пользователя в программе:

greeting = "Welcome! " 
print(greeting) 
name = input("What is your name? ") 
print(f"Nice to meet you, {name}.")

Здесь мы определяем строку приветствия, которая будет напечатана, а затем получаем имя пользователя. Чтобы получить их имя, мы передаем строку, которая будет показана пользователю, чтобы сообщить ему, что вводить. Затем мы сохраняем их ввод в строковой переменной с именем name, которую затем печатаем внутри другой строки. Вот как выглядит диалог, когда вы запускаете его и вводите свое имя:

Операции

Для строк доступно множество различных методов и операций, например, вы можете объединить (сложить конец в конец) две строки вместе с "Hello " + "World", и вы получите Hello World.

Вы можете преобразовать строку в нижний регистр с помощью my_string.lower() .

Часто вы хотите разбить входное предложение на список отдельных слов, вы можете сделать это с помощью метода my_string.split(separator), где, например, строка "Hello I like dogs".split(' ') разделит эту строку на пробелы и приведет к списку ['Hello', 'I', 'like', 'dogs'].

Еще одна очень распространенная вещь, которую нужно делать со строками, — это форматирование строк. Форматирование строк — это когда вы хотите вставить значения в строки. Как в примере выше, где мы напечатали строку «Приятно познакомиться» с именем пользователя, вставленным в конце. Вы можете сделать это с помощью синтаксиса f"Hey my favourite colour is {fav_color}". В этой строке вы ставите f непосредственно перед строкой, чтобы указать, что Python должен искать любые совпадающие фигурные скобки в строке для вставки переменных. Затем вы помещаете переменную, которую хотите вставить, в данном случае строковую переменную, содержащую любимый цвет пользователя, в паре фигурных скобок. Предполагая, что любимый цвет пользователя — синий, это вернет строку «Эй, мой любимый цвет — синий».

Вы можете ознакомиться с другими строковыми методами в этом списке от W3Schools.

Целое число

Целочисленные переменные содержат целые числа, положительные и отрицательные. Например, мы можем определить новое целое число num_eggs = 12

Использование

Целые числа можно использовать по-разному, и одно из них — для подсчета вещей. Например, вы можете подсчитать, сколько раз кто-то пытался ввести пароль, и сравнить его с пределом.

max_tries = 3 
current_tries = 0 
password = "Apples" 
while current_tries < max_tries: 
  current_tries = current_tries + 1 
  user_input = input('Please input the password: ') 
  if password == user_input: 
    print('Access Granted!') 
    break 
  else: 
    print('That is incorrect. ')

В приведенном выше коде вы можете видеть, как мы инстанцируем (определяем в первый раз) несколько переменных перед циклом, а затем запускаем цикл по условию, сравнивая два целых числа. Внутри цикла мы увеличиваем количество попыток до тех пор, пока целое число не станет достаточно большим для завершения цикла.

Или, альтернативно, если указан правильный пароль, мы прервем цикл до достижения предела.

Операции

Целые числа можно использовать во всех обычных математических операциях:

height = 10 
width = 5 
print(height * width) 
print(height + width) 
print(height - width) 
print(height // width)

Вы также можете применять эти операции во время назначения. Например, если вы хотите увеличить переменную на 1, вы можете написать my_variable = my_variable + 1 или вы можете написать my_variable +=1, что является короткой формой, которая позволит вам увеличить на число и переназначить саму себя. Вы можете сделать это с другими операторами, такими как my_variable *=3, чтобы утроить значение переменной.

Вы также можете использовать оператор по модулю, чтобы вернуть остаток после целочисленного деления. Например, 15 % 11 == 4, потому что 15 разделить на 11 равно 1 с остатком 4. Это удобно в таких случаях, как запись времени, так как когда вы достигаете 60 минут, он переходит к следующему часу, а минуты обнуляются.

Ознакомьтесь с этой документацией для числовых типов, которая охватывает все операторы.

Плавает

Поплавки — это сокращение от числа с плавающей запятой, что означает числа с десятичными разрядами. В этих переменных можно хранить такие числа, как 3,34 или -0,0056. Вы можете определить переменную с плавающей запятой, например my_float = 3.14.

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

Списки

Списки просты, но очень универсальны в Python. Список — это упорядоченный набор вещей. Вы можете иметь любые типы значений в списке, и список может содержать элементы разных типов.

Вы можете создать экземпляр пустого списка, такого как my_list = [], или вы можете создать экземпляр нового списка с элементами, которые уже есть в нем grocery_list = ["apples", "mangoes", "carrots"].

Специальные примечания

Списки в Python упорядочены, поэтому вы можете ссылаться на элементы в списке по их позициям в списке. Мы называем их индексами элементов или индексами любого конкретного элемента. Например, если у меня есть список продуктов, как в приведенном выше примере, я могу получить доступ к «яблокам» по термину grocery_list[0]. Это использует квадратные скобки, чтобы указать, что вы хотите получить элемент (ы) из списка, и предоставит индекс для этого.

Списки в Python имеют нулевую индексацию. Это означает, что индексы списка начинаются с 0, поэтому, если вы попытаетесь использовать первый индекс, такой как grocery_list[1], вы фактически получите второй элемент.

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

Использование

Список можно использовать по-разному, но обычно используется для накопления результатов. Например, если вы хотите получить список имен от пользователя:

users = [] 
for i in range(3): 
  user = input("What is the name of the user you want to add? ") 
  print(f'Adding {user} to the list...') 
  users.append(user) 
print("Our users are: ") 
print(users)

Операции

Обычно используемый метод списка — это метод .append(item). Вы можете увидеть пример этого в предыдущем примере. Этот метод добавит элемент в список, который вы используете для его вызова.

Точно так же есть метод под названием .insert(position, item), который позволит вам вставить элемент в любое место в списке. Помните, что списки имеют нулевой индекс, поэтому my_list.insert(0, item) вставит элемент в начало списка.

Вы можете переназначить элементы в списке, установив значение списка по индексу. Например, чтобы переназначить второй элемент в product_list как «яйца», вы можете использовать grocery_list[1] = "eggs".

Другим распространенным методом списков является my_list.pop(index), который удаляет элемент из списка в указанной позиции. Если вы не укажете индекс, он удалит элемент с конца. Он вернет элемент, который он выталкивает.

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

Набор

Набор похож на список, за исключением того, что он не имеет порядка и не содержит дубликатов.

Вы создаете пустой набор, подобный этому favourite_colours = set(), или вы можете создать набор с такими элементами, как этот favourite_colours = {"blue", "red", "orange"}.

Использование

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

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

tasks = ['do_homework', 'make_website', 'call_friend', 'make_website', 'walk_dog'] 
completed_tasks = set() 
for task in tasks: 
  if task not in completed_tasks: 
    print(f"Performing task: {task}") 
    completed_tasks.add(task) 
  else: 
    print(f"Skipping task: {task} because it is already done.") 
print(completed_tasks)

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

Операции

Основными операциями для набора являются добавление элемента, удаление элемента и проверка наличия элемента в наборе.

Вы можете добавлять элементы, используя метод my_set.add(item), и вы можете удалять элементы из набора, используя метод my_set.pop(item) для удаления и возврата элемента из набора.

Вы можете проверить, находится ли что-то в наборе, используя синтаксис Python, очень близкий к английскому: item in my_set, который вернет True или False в зависимости от того, находится ли элемент в наборе. Или, как в моем примере выше, вы можете добавить оператор not, чтобы получить item not in my_set, который возвращает обратное значение.

Подробнее читайте в разделе Наборы в официальной документации.

Словари

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

Вы можете определить пустой словарь просто с помощью пары фигурных скобок my_dictionary = {} или с помощью некоторых пар ключ-значение, таких как my_dictionary = {"apple": 3, "eggs": 6, "bananas": 2}.

Вы также можете добавить пары ключ-значение в словарь после его создания с помощью операции: my_dictionary['bread'] = 4.

Словари во многом похожи на наборы в том, как они спроектированы, поэтому они быстро проверяют, есть ли что-то в словаре, и ищут значение по заданному ключу. Например, если я хочу быстро проверить цену на яйца, я могу print(my_dictionary['eggs']), и это найдет «яйца» в нашем словаре и вернет связанное с ним значение, 6.

Использование

Словари очень универсальны, но есть два распространенных способа их использования. Первый — сделать отображение, а второй — хранить информацию о чем-то.

Рассмотрим проблему отображения псевдонимов. Мы заранее знаем имена и прозвища каждого, и когда кто-то представляет себя как свое имя, вы на самом деле хотите обращаться к нему по его прозвищу.

names_to_nicknames = {'Jacob': 'Jake', 'Emily':'Em', 'Alexander': 'Alex'} 
user_name = input('What is your name? ') 
if user_name in names_to_nicknames: 
  nickname = names_to_nicknames[user_name] 
  print(f'Hey {nickname}, good to see you again!') 
else: 
  print('Hey stranger! Nice to meet you. ')

Здесь мы использовали словарь, чтобы решить проблему преобразования имен в псевдонимы.

Второе распространенное использование словаря — это хранение информации о вещах. Например, вы можете хранить записи о домах. Разумным способом хранения информации для одного дома является словарь, и вы можете поместить один из этих словарей в список для каждого дома:

houses = [] 
house1 = {'Address':'100 Birch Street', 'City': 'Atlantis', 'Value':300000, 'Year Built': 1905} 
house2 = {'Address':'742 Evergreen Terrace', 'City': 'Springfield', 'Value':425000, 'Year Built': 1987} 
houses.append(house1) 
houses.append(house2) 
print(f"The price of house1 is {houses[0]['Value']}") 
print(f"The address of house2 is {houses[1]['Address']}")

Здесь мы видим, что как только мы соберем этот список словарей, мы сможем получить информацию из него осмысленным образом.

Операции

Выше я упомянул, как создавать словари, но другие распространенные операции — это добавление пары ключ-значение, удаление пары ключ-значение и изменение значения ключа.

Способ добавления нового ключа-значения на самом деле такой же, как и способ изменения пары ключ-значение. Вы можете использовать my_dictionary['new_key'] = 'new_value', и если в my_dictionary существовал 'new_key', то значение будет заменено на new_value. Если его не было, то он будет добавлен.

Удаление пары ключ-значение выполняется my_dictionary.pop('key'), и это вернет значение для ключа, который вы вытолкнули, и удалит ключ-значение из словаря.

Подробнее о словарях можно прочитать в официальной документации.

Заключение

Если вы добрались до этого места, поздравляю!! Это очень насыщенная информацией статья, но если вы поняли концепции, изложенные в этой статье, вы уже на пути к написанию собственных программ на Python. В этой серии скоро будет больше контента, поэтому, если вы нашли это полезным, не стесняйтесь подписаться :)

Первоначально опубликовано на https://www.jacobtalkstech.com 14 ноября 2022 г. Посетите мой веб-сайт здесь, чтобы найти больше контента!