Теоретический материал по теме "Введение в язык программирования Python"
Сайт: | Информатикс |
Курс: | Python для подготовки к олимпиадам, начальный уровень (7-9 классы) (СОШ г. Набережные Челны) |
Книга: | Теоретический материал по теме "Введение в язык программирования Python" |
Напечатано:: | Гость |
Дата: | Четверг, 26 Июнь 2025, 23:30 |
О языке Python¶
Д.П. Кириенко - Программирование на языке Python (школа 179 г. Москвы)
Python - современный универсальный интерпретируемый язык программирования. Его достоинства:
Кроссплатформенность и бесплатность.
Простой синтаксис и богатые возможности позволяют записывать программы очень кратко, но в то же время понятно.
По простоте освоения язык сравним с бейсиком, но куда более богат возможностями и значительно более современен.
Богатая стандартная библиотека, возможность разработки промышленных приложений (для работы с сетью, 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} |
Значения одного типа можно (в некоторых случаях) преобразовывать к значениям других типов. Наиболее часто приходится преобразовывать строковые данные в числа (например, при считывании данных) и числа в строковые данные (например, при выводе данных). В этом случае название типа используется, как функция. Например, 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
- Конец строки является концом инструкции (точка с запятой не требуется).
ПРИМЕРа = 5 b = 3 print (a + b)
- Вложенные инструкции объединяются в блоки по величине отступов. Отступ может быть любым, главное, чтобы в пределах одного вложенного блока отступ был одинаков.
ПРИМЕРif а == 5: print('yes') а += 1
- Вложенные инструкции в 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 = '')