Умскул учебник стремится стать лучше! Если вы наткнулись на ошибку или неточность в нашем материале - просто сообщите нам, мы будем благодарны!
Информатика

Основы программирования на языке Python. Часть 1

3.5.2022
15991

На этой странице вы узнаете

  • Как подготовиться к написанию программ?
  • Что общего у собаки и переменной?
  • Чем типы данных похожи на породы собак?

С чем у вас ассоциируется слово «питон»? Если со змеей, то пора расширить свой круг мышления! В этой статье мы узнаем, в чем особенности программирования на «змеином» языке, выберем себе необходимые инструменты для работы и напишем свою первую программу.

Вводная информация. Инструменты для работы

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

Файлы кода, написанного на Python, имеют расширение .py. Для их работы на компьютер необходимо установить интерпретатор языка – программу, которая и будет выполнять написанный нами код. Найти его установочный файл можно на официальном сайте python.org во вкладке Downloads.

Как подготовиться к написанию программ?

Важно обращать внимание на то, что некоторые версии этого языка несовместимы с определенными операционными системами. Например, все версии Python выше 3.9 не работают на Windows 7 или ниже.

Информация об этом прописана рядом со скачиваемыми версиями. Если вам необходима более ранняя версия Python для своей ОС, ее можно найти в той же вкладке в разделе All releases.

Помимо интерпретатора, который будет читать наш код, нам необходимо приложение, где мы будем его писать — среда разработки. И здесь появляется большое количество вариантов. Самыми популярными средами разработки являются:

  • IDLE. Эта среда разработки идет в комплекте с интерпретатором и является самой простой из всех. Во всех смыслах слова «простой».

    Преимущества:
    — малый вес и небольшое количество потребляемой памяти позволят запустить его на любом устройстве;
    — максимально простая организация — отдельный файл открывается в отдельной вкладке.

    Недостатки:
    — никакого дополнительного функционала — это просто блокнот, который лишь немного выделит код для удобства и запустит его.
  • PyCharm. Это как танк Т-34, по сравнению с которым IDLE — трехколесный велосипед.

    Преимущества:
    — мощный функционал, в том числе более удобная подсветка кода, автоматическая помощь при написании кода, удобное выделение ошибок прямо в коде и так далее.

    Недостатки:
    — требовательность — установленная среда разработки весит около 1 гигабайта и потребляет большое количество ресурсов при своем запуске;
    — сложность внутренней организации — программа не позволяет запускать отдельно файлы с программами. Эти файлы должны объединяться в проекты, а настройка проектов иногда может быть довольно проблематичным занятием.

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

  • Visual Studio Code (VS Code). Редактор кода, разработанный компанией Microsoft. Он предоставляет среду разработки с расширенными функциональными возможностями для различных языков программирования. Доступен на множестве операционных систем, включая Windows, macOS, Linux.

    Преимущества:
    — поддержка большого количества языков программирования;
    — широкий выбор расширений, которые позволяют адаптировать программу под свои нужды;
    — понятный и простой интерфейс.

    Недостатки:
    — большой объем занимаемой памяти;
    — настройка программы может потребовать много времени.

Несмотря на недостатки, Visual Studio Code является популярным и мощным выбором для разработки!

Вывод и ввод данных. Переменные

Программам почти всегда приходится работать с какой-то информацией — данными. Они ее получают от пользователя, как-то преобразуют и сообщают о результатах своих действий. По своей сути слова «данные» и «информация» являются равнозначными, так что не удивляйтесь, если мы или кто-то другой будут употреблять эти слова в качестве синонимов. 

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

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

Давайте научим нашу программу писать сообщения и отображать их на экран! Но для начала научимся создавать файл, в котором мы и будем писать наш код. Рассмотрим на примере PyCharm. 

  1. Откройте PyCharm и выберите проект, в котором вы хотите создать файл .py (или создайте новый).
  2. В главном меню выберите «File» (Файл) и затем «New» (Создать).
  3. В раскрывающемся меню выберите «Python File» (Файл Python).
  4. Появится диалоговое окно, где вы можете ввести имя нового файла. Убедитесь, что имя файла заканчивается на «.py», чтобы он был распознан как файл Python. Например, «example.py».
  5. Нажмите «OK»  и новый файл .py будет создан в рабочей директории вашего проекта в PyCharm.

Теперь вы можете открыть созданный файл .py и начать писать код на языке Python.
Открываем файл и ищем свою первую программу:

print(“Hello world”)

После ее запуска будет выведено сообщение: Hello world.

Поздравляем, вы стали программистом!

А теперь начнем становиться хорошими программистами и разберемся с тем, что мы написали:

  • print – функция вывода данных на экран.
    После функции в скобках нужно записать текст, который мы хотим вывести. Если вписать в скобках несколько значений через запятую, они будут выведены на экран в одну строку через пробел.
  • “Hello world” – это строка (= просто кусочек текста), которую мы создали и сразу передали в функцию print.

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

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

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

Что общего у собаки и переменной?

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

Переменная — это именованная информация, которая хранится в компьютере при работе программы.

Схема создания переменной:

имя_переменной = значение

Давайте сохраним строку “Hello world” как переменную, присвоив ей имя s.

Какое имя дать переменной — извечная проблема программирования. Основные правила и советы по именованию переменных:

  1. Имя переменной может состоять только из букв латинского алфавита, цифр и символа «_».

    Например, запись «числоСтрок» не может быть именем переменной, так как использует русский, а не латинский алфавит. А вот «linesNumber» или «lines_number» — вполне. Так что в программировании знание английского важно. Впрочем, никто не запретит вам использовать «chislo_strok» в качестве имени переменной, и так иногда делают (хотя это считается плохой практикой).
  1. Имя переменной не может начинаться с цифры, начинать его с символа «_» также не рекомендуется.
  2. Не рекомендуется давать переменным имена встроенных функций, иначе последние будут невидимы для программы и их нельзя будет использовать. 

    Например, print. Создав переменную с таким именем, функцию вывода на экран мы потеряем.
  1. Хорошей практикой является давать переменным осмысленные имена. 

Последний совет стоит раскрыть. Например, для строки “Hello world” можно было бы выбрать имя string (строка) или подобное, а для переменной, которая что-то считает — count (счет). Главное, чтобы было по названию понятно, что в ней

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

Ввод данных с клавиатуры — самый простой способ передать значения программе в процессе ее работы. Он происходит с помощью функции input(), после срабатывания которой программа останавливается и ждет, пока мы введем в нее значение. В скобках функции можно указать сообщение, которое будет выведено программой перед тем, как она «перейдет в режим ожидания».

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

Типы данных

Выше мы разобрались, что являет собой переменная s. А что еще можно записать в переменную?  

Типы данных — виды значений, которые может принимать переменная. 

Чем типы данных похожи на породы собак?

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

Большую часть из типов данных мы подробно будем изучать по мере необходимости. Для начала неплохо хотя бы знать о существовании основных и об их обозначениях в Python:

  • Целые числа (int) – хранят любые целые числа. Это ноль, а также все положительные и все отрицательные числа, используемые при счете.

    Например, в записи x = 5 переменная x хранит целое число, то есть имеет тип данных int.
  • Вещественные числа (float) – хранят десятичные дроби, дробная часть отделяется от целой точкой.

    Например, в записи number = 5.05 переменная number хранит вещественное число, то есть имеет тип float.
  • Строки (str) – хранят любые наборы символов, которые создаются с помощью кавычек: одинарных ‘’ или двойных “”. Между одинарными и двойными кавычками нет разницы, но важно, чтобы они были одинаковыми.

    Например, в записи name = “Vasiliy” переменная name хранит строку, то есть имеет тип str.
  • Списки (list) – тип данных, хранящий в себе последовательность других данных. Его можно сравнить со списком покупок для магазина — пишем все, что нам нужно, главное – не забыть разделить запятой.

    Так, запись list_of_numbers = [1, 2, 3] — это список, хранящий в себе целые числа 1, 2, 3.
  • Логические значения (bool) – могут принимать только одно из двух значений True (Истина) или False (Ложь) и используются в логических элементах.

    Так, запись boolean = True хранит в переменной boolean типа bool значение True.

Один тип данных может быть приведен к другому по обозначению. Например:

  • Дробное число можно привести к целому, прописав его внутри команды int — тогда его дробная часть просто отбрасывается. Если привести целое число к дробному командой float, оно получит десятичную дробную часть, равную 0.
  • Строки, состоящие только из цифр, можно привести к целочисленному типу командой int (допустим, для корректной работы математических операций), и наоборот — число можно сделать строкой командой str.
  • Логические значения имеют соответствие с целыми числами: значение True соответствует 1, а False – 0. Такие результаты мы и получим при переводе из числа в логическое значение командой bool, или наоборот — командой int.

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

Математические операции

Как работать с числами и какие математические действия применимы к строкам?

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

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

Например: 20 / 6 = 3 (ост. 2) – целой частью от деления будет 3, остатком от деления — 2.

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

Переменная может записывать саму себя в собственное изменение, то есть у нас есть возможность быстро поменять значение переменной, используя ее текущее значение. Здесь для большего удобства можно применять краткую запись оператора — когда он прописывается перед знаком = (равно), а после него — значение, на которое должна измениться переменная.

Так, следующий код

выведет на экран число 6.

У нас также есть возможность проводить операции между величинами разных типов данных.

Например, в коде

переменная а имеет тип int, переменная b имеет тип float, и их сумма, записанная в переменную с, тоже имеет тип float.

Какой приоритет операций будет соблюдаться в программе? Такой же, как в обычной математике:

  1. Возведение в степень.
  2. Умножение/деление.
  3. Сложение/вычитание.

Для изменения порядка операций также можно использовать скобки.

Сложение и умножение также применимы к строкам:

  • Складывать можно несколько строк — они будут «слипаться», создавая одну большую строку.
  • Возможно умножение строки на целое число. Тогда будет создана новая строка, состоящая из повторяющейся исходной. 

Здесь важно помнить, что строка, состоящая только из цифр, — все равно строка, и применение этих операторов к ней будет применено именно как к строке, а не числу:

Практика

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

Попробуем написать простую программу.

Пользователь вводит в программу 2 числа, программа возвращает ему их сумму.

Вариант 1.

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

Вариант 2. 

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

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

Вариант 3.

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

Вариант 4. Можно даже так:

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

Помимо этого Python поддерживает работу с двоичными разрядами чисел. Для этого существуют битовые операторы!

Для начала вспомним про двоичную систему счисления в статье «Системы счисления». Каждое число представляется в виде последовательности двоичных разрядов, которые принимают значение 0 или 1. Над такими числами можно выполнить следующие операции:

  • Побитовое И (&)
    Оператор & возвращает 1 в каждом бите, если оба операнда (в данном случае разряды чисел) содержат 1, иначе возвращает 0.
a = 5 # 0101 в двоичной системе
b = 3 # 0011 в двоичной системе
c = a & b # 0001 в двоичной системе
print(c) # выводит 1
  • Побитовое ИЛИ (|)
    Оператор | возвращает 1 в каждом бите, если хотя бы один операнд содержит 1, иначе возвращает 0.
a = 5 # 0101 в двоичной системе
b = 3 # 0011 в двоичной системе
c = a | b # 0111 в двоичной системе
print(c) # выводит 7
  • Побитовое исключающее ИЛИ (^)
    Оператор ^ возвращает 1 в каждом бите, если только один из операндов содержит 1, иначе возвращает 0.
a = 5 # 0101 в двоичной системе
b = 3 # 0011 в двоичной системе
c = a ^ b # 0110 в двоичной системе
print(c) # выводит 6
  • Побитовый сдвиг вправо (>>)
    Оператор >> сдвигает биты числа вправо на указанное количество позиций.
a = 5 # 0101 в двоичной системе
b = a >> 1 # 0010 в двоичной системе
print(b) # выводит 2
  • Побитовый сдвиг влево (<<)
    Оператор << сдвигает биты числа влево на указанное количество позиций.
a = 5 # 0101 в двоичной системе
b = a << 1 # 1010 в двоичной системе
print(b) # выводит 10

Потренируемся применять полученные навыки на примере задачи 15.2 номера ОГЭ.

Задание.  Написать программу, которая в последовательности натуральных чисел определяет сумму чисел, кратных 4. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 4. Количество чисел не превышает 100. Введённые числа не превышают 300. Программа должна вывести число  — сумму чисел, кратных 4.

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

1. Для того, чтобы посчитать количество чисел, а также сами числа, будем использовать конструкцию:

n = int(input()) # для количества чисел
a = int(input()) # для самих чисел подряд

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

2. Далее необходимо задать переменную для хранения суммы всех чисел, которые кратны 4:

sum_chisel = 0 # переменная для хранения суммы

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

Число кратно 4 в том случае, если его остаток от деления на 4 равен 0, поэтому записать это можно так:

a % 4 == 0 # проверка на кратность

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

sum_chisel = sum_chisel + a # добавление текущего числа к общей сумме

5. Чтобы в конце программы увидеть сумму, которую мы получили:

print(sum_chisel)

Для дальнейшего решения мы будем использовать информацию из второй части статьи

6. Мы точно не знаем, сколько чисел будет изначально вводится, у нас пользователь задает это число. Ранее мы его считали. Тогда какую конструкцию необходимо использовать, чтобы сделать проверку каждого числа? Это range. То есть программа n раз повторит то, что будет находиться в цикле.

for i in range(n): # проверка всех чисел на условие

7. Теперь необходимо сделать проверку чисел на кратность. Выше мы уже написали часть этой проверки. Изучив вторую часть статьи, сразу становится понятно, что использовать нужно if. Если условие кратности выполнилось, то к сумме таких чисел добавляем текущее число:

if a % 4 == 0:
          sum_chisel = sum_chisel + a

Тогда получим следующий код:

n = int(input())
sum_chisel = 0 

for i in range(n):
      a = int(input())
      if a % 4 == 0:
                 sum_chisel = sum_chisel + a
print(sum_chisel)

Таким образом, даже самые простые задачи можно решать множеством способов, и вам предстоит научиться выбирать из них наилучший. Впереди нас ждет знакомство с еще большим количеством особенностей языка и их практическим применением. Приглашаем вас продолжить изучение данной темы в статье «Основы программирования на языке Python. Часть 2», а также потренироваться применять полученные знания на практике. 

Фактчек

  • Для работы программ, написанных на языке Python, необходим интерпретатор языка. Написание программы можно производить в любой из удобных сред разработки.
  • Для вывода данных на экран используется функция print(); для ввода данных с клавиатуры используется функция input().
  • Для долгосрочной работы с данными используются переменные, которым могут быть присвоены различные типы данных. Между типами данных возможен перевод, для этого используются их обозначения.
  • Python поддерживает все основные математические операторы для работы с числами.
  • Битовые операторы это операторы, которые выполняют операции над битами двоичного представления чисел. Они позволяют производить побитовые операции И, ИЛИ, исключающее ИЛИ, а также сдвиги битов влево и вправо.

Проверь себя

Задание 1.
Файл с расширением .py — это…

  1. Ссылка на русскоязычный сайт
  2. Файл программы Python
  3. Установочный файл интерпретатора Python
  4. Такого не бывает

Задание 2.
Выберите допустимое имя переменной:

  1. 123number
  2. constant!
  3. eto_Stroka
  4. count-strings

Задание 3.
Результатом записи выражения “23” * 2 будет:

  1. 23
  2. 2323
  3. 232
  4. 46

Задание 4.
Результатом записи int(2.88) ** 4 будет:

  1. 8
  2. 12
  3. 16
  4. 81

Ответы: 1. 2; 2. 3; 3. — 2; 4. — 3.

Понравилась статья? Оцени:
Читайте также:

Читать статьи — хорошо, а готовиться к экзаменам
в самой крупной онлайн-школе — еще эффективнее.

50 000
Количество
учеников
1510
Количество
стобальников
>15000
Сдали на 90+
баллов