Введение в переменные, константы и типы

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

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

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

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



Обратите внимание, что Python часто выпускает новые версии, поэтому не думайте, что вам нужна последняя версия. Если у вас самая последняя минорная версия (3.7), все будет в порядке.

По мере продвижения по этой серии я предоставлю вам еще несколько ссылок.

Чем отличается этот учебник

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

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

Что это за учебник

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

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

Чем не является это руководство

Этот учебник не научит вас, как использовать редакторы Python, как создавать экраны графического интерфейса, ‹вставлять сюда модуль Python›, записные книжки Jupyter, науку о данных или внутренние типы файлов.

Хотя некоторые из этих тем интересны, их охват слишком широк, чтобы сделать это руководство коротким.

Цель серии

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

В этом руководстве предполагается, что вы знаете:

  • Что такое компьютер
  • Какие программы есть
  • Достаточно логики, чтобы понять, каков ответ на 2 + 2
  • Достаточно логики, чтобы понять, есть ли у вас в холодильнике молоко

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

Если вы используете Mac, установите Python с помощью Homebrew:

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

После установки введите следующую команду, чтобы установить Python в вашей системе.

brew install python

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

python3 --version

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

choco install python

Если вы используете Ubuntu, вы можете установить последнюю версию с помощью следующей команды.

sudo apt install python3

Это установит Python 3.6.7 на Ubuntu 18.04, но этого должно быть достаточно для этого руководства.

На Centos вам нужно будет установить два пакета.

sudo yum install epel-release
sudo yum install python36

Это установит Python 3.6.3, что, опять же, должно быть достаточно хорошо.

В RHEL 7 вам необходимо включить коллекции программного обеспечения, прежде чем вы сможете установить Python 3.

sudo subscription-manager repos --enable rhel-server-rhscl-7-rpms
sudo yum install rh-python36

В RHEL 8 и Fedora вы можете установить поток приложения Python.

sudo yum module install python3

Возможно, вы захотите подобрать редактора. Visual Studio Code отлично справляется с Python, но если вам нужна полноценная IDE для python, я бы посоветовал JetBrains PyCharm Community Edition. Если вы выберете второй вариант, начните новый проект, выберите Pure Python в качестве типа проекта и выберите Python 3.x в качестве базового интерпретатора, чтобы продолжить. Оба они доступны для Mac, Windows и Linux.

Праймер

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

8 бит = 1 байт

1024 байта = 1 килобайт (КБ)

1024 КБ = 1 мегабайт (МБ)

1024 МБ = 1 гигабайт (ГБ) и так далее, и так далее.

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

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

Хватит предварительных вещей. Давайте начнем!

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

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

Переменные

Переменные в Python обычно создаются по мере их объявления. Объявление переменной означает создание корзины для хранения значения, создание экземпляра означает присвоение переменной некоторого значения. В переменных хранятся значения, которые можно изменить. При написании переменных следует использовать snake_case. Это означает, что слова в переменной разделяются знаком подчеркивания (_).

За кулисами ваш компьютер делает несколько вещей, когда вы создаете новую переменную. Сначала он смотрит на a и говорит: «Эй, мне нужно попросить RAM для памяти, посмотрим, сколько». Затем он смотрит на = 1 и говорит: «Хорошо, мне нужно запросить у ОЗУ достаточно памяти для хранения числа 1». Он запрашивает RAM для места; если RAM не видит проблем с выделением места, RAM говорит: «Эй, я могу это сделать». и значение сохраняется в памяти.

То же самое происходит с другими переменными.

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

a = 3
name = "John"

Изящная особенность Python, которую не могут сделать скомпилированные языки, заключается в том, что вы можете использовать переменную с другим типом. (Подробнее о типах позже)

a = 1
a = "Bob"

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

Не обращайте внимания на этот знак…

Константы

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

MEANING_OF_LIFE = 42
FIRST_NAME = "Bob"

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

Типы

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

  • Строка - строковый тип может содержать любое количество символов. Неважно, abc или supercalifragilisticexpalidocious. Это все еще просто строка. Начиная с Python 3, мы можем включать аннотации типов, чтобы определять переменную как определенный тип. Используйте my_awesome_variable: str, чтобы убедиться, что вы используете правильный тип. Строки обычно используют 2 байта памяти.
  • Целое число - целочисленный тип содержит числа. Что-то особенное в Python заключается в том, что вы не ограничены 2 миллиардами числовых ограничений на 32-битных машинах, как в скомпилированных программах. Python позволяет использовать весь доступный объем оперативной памяти для создания числа, что делает его отличным языком для науки о данных. Это также обратная сторона, потому что у вас нет верхнего предела для сбоя вашей программы. Вместо этого вы либо завершаете работу своей программы, когда достигнете предела памяти вашего оборудования, либо вы отказываетесь от своего компьютера из-за нехватки памяти. Не пытайтесь создать экземпляр переменной с запятыми для больших чисел, вместо этого используйте 2000 или для облегчения чтения 2_000. 32-битные программы хранят целые числа в 32/8 = 4 байта, а 64-битные программы хранят целые числа в 64/8 = 8 байтах.
  • Float. По сути, числа с плавающей запятой являются десятичными. В отличие от других языков, в которых используются числа типа double, обеспечивающие большую точность, числа с плавающей запятой в Python действуют как числа с плавающей запятой в том смысле, что вы используете много памяти для достижения точности с помощью числа с плавающей запятой. Он действительно отключается, но вы потеряете интерес к знанию полной стоимости с плавающей запятой, прежде чем дойдете до этой точки. Насколько мне известно, числа с плавающей запятой всегда представлены как 64 бита или 8 байтов.
  • Bool - логические значения в основном имеют значение True или False, 1 или 0. Они были названы в честь Джорджа Буля, который их придумал. Логические значения занимают только 1 байт памяти.
  • Комментарии. Комментарии - это не тип, но они помогают понять, что происходит в вашем коде. Вы не хотите писать код, вернуться к нему через год и не знать, что он делает. Комментарии вам помогут. Здесь я расскажу о двух типах комментариев: однострочные и многострочные.
# This is a single line comment
my_variable = "This is code that will run"  # this is a comment too
"""
This is a
multiline
comment!!
"""
my_second_variable = this is more code that will execute
'''
This is another
multiline comment
using single quotes
'''

Резюме

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

Что дальше?

Далее в этой серии мы рассмотрим ссылочные типы, указатели и типы коллекций.



Я не аффилирован с Python Software Foundation (PSF), Microsoft или JetBrains. Все рекомендации мои собственные. Ссылки предоставляются для удобства и только в информационных целях.