Теоретический материал по теме "Введение в язык программирования Python"

Сайт: Информатикс
Курс: Python для подготовки к олимпиадам, начальный уровень (7-9 классы) (СОШ г. Набережные Челны)
Книга: Теоретический материал по теме "Введение в язык программирования Python"
Напечатано:: Гость
Дата: Четверг, 26 Июнь 2025, 23:30

О языке Python¶

Д.П. Кириенко - Программирование на языке Python (школа 179 г. Москвы)

Python - современный универсальный интерпретируемый язык программирования. Его достоинства:

  1. Кроссплатформенность и бесплатность.

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

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

  4. Богатая стандартная библиотека, возможность разработки промышленных приложений (для работы с сетью, GUI, базами данных и т.д.)

Большинство школьных олимпиад по информатике поддерживают язык Python. С 2015 года в текстах задач ЕГЭ примеры приводятся также и на языке Python.

Практика показывает, что задания ЕГЭ по информатике, в которых требуется написать программу, существенно проще решать с использованием языка Python, чем классических языков Бейсик, Паскаль, C/C++.

РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА

  • Билл Любанович "Простой Python. Современный стиль программирования" - современный учебник
  • Марк Лутц "Изучаем Python", 4-е издание - классический очень толстый и подробный учебник
  • Марк Саммерфилд "Программирование на Python 3" - менее толстый, не столь подробный классический учебник

Переменные в Python¶

Д.П. Кириенко - Программирование на языке Python (школа 179 г. Москвы)

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

Переменную в Python создать очень просто - нужно присвоить некоторому идентификатору значение при помощи оператора присваивания «=».

ПРИМЕР
а = 10
b = 3.1415926
c = "Hello"
d = [1, 2, 3]

В этом примере используются четыре переменные:

  • переменная а хранит значение типа int (целое число),
  • переменная b - типа float (действительное число),
  • переменная c - типа str (строка),
  • переменная d - типа list (список, в данном случае из трех целых чисел).

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

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

На самом деле переменная в python является лишь ссылкой на объект в памяти. При создании любой переменной (число, строка или массив) в неё записывается ссылка на объект, а сам объект находится где-то в оперативной памяти далеко от самой переменной со ссылкой. Таким образом, несколько переменных могут указывать на один объект, и при изменении объекта (например, списка) изменится результат обращения к нему с использованием каждой переменной.

Происходящее при выполнении следующего кода схематично можно изобразить так: arr = [1, 2, 3]

Все типы данных Python¶

Д.П. Кириенко - Программирование на языке Python (школа 179 г. Москвы)

int Целое а = 2
float Действительное а = 2.0
float Строка s = "Hello" или s = 'Hello'
bool Логический тип а = True или а = False
list Список (массив) А = [1, 2, 3] или А = []
tuple Кортеж А = (1, 2, 3) или А = ()
set Множество S = set() или S = {1, 2, 3}
dict Словарь D = dict() или D = {'one': 1, 'two': 2}
Специальное значение None можно использовать для обозначения отсутствия какого-либо другого значения (можно писать a = None). В любой момент можно удалить переменную при помощи операции del, например, del а.

Значения одного типа можно (в некоторых случаях) преобразовывать к значениям других типов. Наиболее часто приходится преобразовывать строковые данные в числа (например, при считывании данных) и числа в строковые данные (например, при выводе данных). В этом случае название типа используется, как функция. Например, int(s) возвращает значение типа int, полученное из значения s.

При преобразовании логических значений True переводится в 1, False переводится в 0. При преобразовании чисел в логические значения нулевое значение переводится в False, ненулевое значение переводится в True. При преобразовании строк, списков, кортежей, словарей, множеств пустые объекты (строки, списки, множества и т.д.) переводятся в False, а непустые — в True.

Примеры преобразование типов в Python

Д.П. Кириенко - Программирование на языке Python (школа 179 г. Москвы)

Иногда бывает полезно целое число записать как строку. И, наоборот, если строка состоит из цифр, то полезно эту строку представить в виде числа, чтобы дальше можно было выполнять арифметические операции с ней. Для этого используются функции, название которых совпадает с именем типа, то есть int, float, str. Например, int('123') вернет целое число 123, str(123) вернет строку "123", а следующая инструкция:

print (str (2 + 2) * int ('2 ' + '2'))

выведет символ "4", повторенный 22 раза.

Функция int также поможет превратить дробное число в целое, отбросив дробную часть: int(12.3) = 12, int(-12.3) = 12.

Еще один полезный пример использования - преобразование строки в список букв:

list('abc') = ['а', 'b', 'c']

Также преобразование типов активно используется с функцией map и генераторами, например,

numbers = list(map(int, input().split()))

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

Д.П. Кириенко - Программирование на языке Python (школа 179 г. Москвы)

Список арифметический операций для чисел:

А + В — сумма двух чисел.

А - В — разность чисел.

А * В — произведение.

А / В — частное. При этом результатом является действительное число (типа float). В целочисленных задачах, как правило, нужно использовать целочисленное деление //.

А ** В — возведение в степень. Полезно помнить, что квадратный корень из числа х — это х 0.5, а корень степени n — это х ** (1 / n).

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

Для целых чисел есть операции целочисленного деления // и взятия остатка от деления %. Например, при делении 17 // 5 результатом будет 3, а остаток 17 % 5 будет равен 2.

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

Основные операции над строками:

А + В — конкатенация (“сцепление” двух строк, сначала записывается строка А, затем В).

А * n — повторение п раз, значение n должно быть целого типа.

Например, получить строку, состоящую из 100 букв “а” можно очень просто: нужно повторить строку "а" 100 раз: S = 'а' * 100.

Аналогичные операции (конкатенация и повторение) есть для списков, например, для создания списка из 100 элементов можно воспользоваться командой А = [0] * 100.

Как и в языке С, есть операции присваивания +=, -=, *=, /=, //=, %=, **=. Запись а += b означает а = а + b и т.д.

Синтаксис языка Python

Д.П. Кириенко - Программирование на языке Python (школа 179 г. Москвы)

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

Основные приципы синтаксиса языка Python

  1. Конец строки является концом инструкции (точка с запятой не требуется).
    ПРИМЕР

    а = 5
    b = 3
    print (a + b)
    
  2. Вложенные инструкции объединяются в блоки по величине отступов. Отступ может быть любым, главное, чтобы в пределах одного вложенного блока отступ был одинаков.
    ПРИМЕР

    if а == 5:
        print('yes') 
        а += 1
    
  3. Вложенные инструкции в Python записываются в соответствии с одним и тем же шаблоном, когда основная инструкция завершается двоеточием, вслед за которым располагается вложенный блок кода, обычно с отступом под строкой основной инструкции.

Ввод/вывод в Python

Д.П. Кириенко - Программирование на языке Python (школа 179 г. Москвы)

Ввод данных

Для считывания строки со стандартного ввода используется функция input(), которая считывает строку с клавиатуры и возвращает значение считанной строки, которое сразу же можно присвоить переменным:

a = input() 
b = input()

Правда, функция input возвращает текстовую строку. Если нужно сделать так, чтобы переменные имели целочисленные значения, то сразу же после считывания выполним преобразование типов при помощи функции int, и запишем новые значения в переменные a и b:

а = int(a) 
b = int(b)

Можно объединить считывание строк и преобразование типов, если вызывать функцию int для того значения, которое вернет функция input():

а = int(input()) 
b = int(input())

Сложнее считать значения переменных, если они записаны в отдельной строке. Здесь нужно применить к считанной строке метод split(), который разделяет строку на части по одному или двум пробелам. Затем результат выполнения этой функции присвоим кортежу из двух или нескольких чисел. Например, если в строке вводятся два числа через пробел, то считать их можно так:

a, b = input().split()
а = int(а)
b = int(b)

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

a, b, c = input().split()

Можно также сразу же преобразовать считанные значения в числовой тип (например, int), если воспользоваться функцией map, которая применяет к каждому элементу списка заданную функцию (для преобразования к типу int нужно, соответственно, задать функцию int для применения к каждому элементу). Для начала можно просто запомнить эту конструкцию:

a, b, c = map(int, input().split()

Вывод данных

Для вывода данных используется функция print может выводить не только значения переменных, но и значения любых выражений. Например, допустима запись print(2 + 2 ** 2). Также при помощи функции print можно выводить значение не одного, а нескольких выражений, для этого нужно перечислить их через запятую:

a = 1; b = 2 ; print(a, '+', b, '=', a + b)

В данном случае будет напечатан текст 1 + 2 = 3. сначала выводится значение переменной а, затем строка из знака "+* затем значение переменной b, затем строка из знака "=", наконец, значение суммы а + b.

Обратите внимание, выводимые значение разделяются одним пробелом. Но такое поведение можно изменить, можно разделять выводимые значения двумя пробелами, любым другим символом, любой другой строкой, выводить их в отдельных строках или не разделять никак. Для этого нужно функции print передать специальный именованный параметр, называемый sep, равный строке, используемый в качестве разделителя (sep - аббревиатура от слова separator, т.е. разделитель). По умолчанию параметр sep равен строке из одного пробела и между значениями выводится пробел. Чтобы использовать в качестве разделителя, например, символ двоеточия нужно передать параметр sep, равный строке ":":

print (a, b, c, sep=":")

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

print (a, ' + ', b, a + b, sep='')

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

print(a, b, sep='\n')

Символ обратного слэша в текстовых строках является указанием на обозначение специального символа, в зависимости от того, какой символ записан после него. Наиболее часто употребляется символ новой строки '\n'. А для того, чтобы вставить в строку сам символ обратного слэша, нужно повторить его два раза: '\'.

Вторым полезным именованным параметром функции print является параметр end, который указывает на то, что выводится после вывода всех значений, перечисленных в функции print. По умолчанию параметр end равен '\n', то есть следующий вывод будет происходить с новой строки. Этот параметр также можно исправить, например, для того, чтобы убрать все дополнительные выводимые символы можно вызывать функцию print так:

print (a, b, c, sep='', end = '')