ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.10.2023
Просмотров: 409
Скачиваний: 3
СОДЕРЖАНИЕ
Задание по программированию: Следующее и предыдущее
Примеры использования логических выражений
Вложенный условный оператор и "иначе-если"
Задание по программированию: Какое число больше?
Задание по программированию: Максимум трех чисел
Задание по программированию: Високосный год
Тренировочное задание по программированию: Ход короля
Тренировочное задание по программированию: Квартиры
Задание по программированию: Коровы
Задание по программированию: Упорядочить три числа
Задание по программированию: Сколько совпадает чисел
Тренировочное задание по программированию: Цвет клеток шахматной доски
Тренировочное задание по программированию: Шоколадка
Задание по программированию: Коровы
Задание по программированию: Узник замка Иф
Задание по программированию: Список квадратов
Задание по программированию: Минимальный делитель
Тренировочное задание по программированию: Список степеней двойки
Задание по программированию: Утренняя пробежка
Задание по программированию: Максимум последовательности
Подсчет суммы и оператор continue
Задание по программированию: Сумма квадратов
Задание по программированию: Длина последовательности
Задание по программированию: Сумма последовательности
Задание по программированию: Максимальное число подряд идущих равных
Задание по программированию: Количество четных элементов последовательности
Задание по программированию: Второй максимум
Задание по программированию: Количество элементов, равных максимуму
Как устроены вещественные числа
Основы работы с вещественными числами
Задание по программированию: Округление по российским правилам
Задание по программированию: Проценты
Задание по программированию: Квадратное уравнение - 1
Задание по программированию: Система линейных уравнений - 1
Задание по программированию: Делаем срезы
Задание по программированию: Первое и последнее вхождение
Задание по программированию: Удаление фрагмента
Задание по программированию: Второе вхождение
Задание по программированию: Переставить два слова
Задание по программированию: Количество слов
Задание по программированию: Замена подстроки
Задание по программированию: Удаление символа
Задание по программированию: Минимум 4 чисел
Возврат нескольких значений функцией
Задание по программированию: Принадлежит ли точка квадрату - 1
Задание по программированию: Принадлежит ли точка кругу
Задание по программированию: Минимальный делитель числа
Локальные и глобальные переменные
Задание по программированию: Проверка числа на простоту
Задание по программированию: Возведение в степень
Задание по программированию: Сложение без сложения
Задание по программированию: Быстрое возведение в степень
Задание по программированию: Сократите дробь
Задание по программированию: Сумма последовательности
Задание по программированию: Разворот последовательности
Задание по программированию: Ряд - 1
Задание по программированию: Ряд - 2
Кортеж может состоять из элементов произвольных типов и является неизменяемым типом, т.е. нельзя менять отдельные элементы кортежа, как и символы строки. Константные кортежи можно создавать в программе, записывая элементы через запятую и окружая скобками. Например, testTuple = (1, 2, 3). В случае, если кортеж является единственным выражением слева или справа от знака присваивания, то скобки могут быть опущены. Во всех остальных случаях скобки опускать не следует - это может привести к ошибкам.
Многие приемы и функции для работы со строками также подходят и для кортежей, например, можно складывать два кортежа:
a = (1, 2, 3)
b = (4, 5, 6)
print(a + b)
В результате применения этой операции будет выведено (1, 2, 3, 4, 5, 6). В случае сложения создается новый кортеж, который содержит в себе элементы сначала из первого, а затем второго кортежа (точно так же как и в случае со строками). Также кортеж можно умножить на число, результат этой операции аналогичен умножению строки на число.
Приведем пример, когда опускание скобок приводит к ошибке. (1, 2) + (3, 4) будет давать (1, 2, 3, 4), а 1, 2 + 3, 4 будет давать (1, 5, 4), т. к. сумма будет понята Питоном как выражение для второго элемента кортежа.
Кортеж можно получить из строки, вызвав функцию tuple от строки. В результате каждая буква станет элементом кортежа. К кортежу можно применять функцию str, которая вернет текстовое представление кортежа (элементы, перечисленные через запятую с пробелом и разделенные пробелами).
К кортежу можно применять функцию len и обращаться к элементам по индексу (в том числе по отрицательному) также как и к строкам.
В одном кортеже могут храниться элементы различных типов, например, строки, числа и другие кортежи вперемешку. Например, в кортеже myTuple = (('a', 1, 3.14), 'abc', ((1), (2, ))), myTuple[0] будет кортежем ('a', 1, 3.14), myTuple[1] строкой 'abc', а myTuple[2] кортежем состоящим из числа 1 и кортежа из одного элемента (2, ). Числа, записанные в скобках, интерпретируются как числа, в случае возникновения необходимости создать кортеж из одного элемента необходимо после значения элемента написать запятую. Если вывести myTuple[2][1], то напечатается (2,), а если вывести myTuple[2][1][0], то будет напечатано число 2.
Кортеж, содержащий в себе один элемент, называется синглтоном. Как и к строкам, к кортежам можно применять операцию среза с тем же смыслом параметров. Если в срезе один параметр, то будет возвращена ссылка на элемент с соответствующим номером. Например, print((1, 2, 3)[2]) напечатает 3. Если же в срезе более одного параметра, то будет сконструирован кортеж, даже если он будет синглтоном. Например, в случае вызова print((1, 2, 3)[1:]) будет напечатано (2, 3), а в случае вызова print((1, 2, 3)[2:]) будет напечатан синглтон (3,).
Кортежи, обычно, предназначаются для хранения разнотиповых значений, доступ к которым может быть получен в результате обращения по индексу или с помощью операции распаковки.
Распаковкой называется процесс присваивания, в котором кортеж, составленный из отдельных переменных находится в левой части выражения. В таком выражении справа должен находится кортеж той же длины. Например, в результате выполнения такого кода:
manDesc = ("Ivan", "Ivanov", 28)
name, surname, age = manDesc
В переменной name кажется ''Ivan'', в surname - ''Ivanov'', а в переменной age число 28. На английском распаковка кортежа называется tuple unpacking.
Функция range, цикл for
Процесс создания кортежа называется упаковкой кортежа. Если в одном выражении присваивания происходит и упаковка и распаковка кортежа, то сначала выполняется упаковка, а затем распаковка кортежа. Так, в результате работы программы:
a, b, c = 1, 2, 3
a, b, c = c, b, a
print(a, b, c)
будет выведено 3 2 1. Обратите внимание, что функции print передается в качестве параметра не кортеж, а три целых числа.
Главное что нужно понять, что записать вида (a, b, c) = (c, b, a) не эквивалентна цепочке присваиваний вида a = c; b = b; c = a. Такая цепочка присваиваний привела бы к тому, что в переменных a, b, c оказались бы значения 3, 2, 3.
Функция range
В языке Питон есть функция range, которая позволяет генерировать объекты типа iterable (к элементам которых можно получать последовательный доступ), состоящие из целых чисел.
Для вывода объектов типа iterable мы будем пользоваться функцией tuple, которая позволяет сделать кортеж, состоящий из всех элементов iterable, записанных последовательно.
Например, если запустить программу
print(tuple(range(10)))
то будет напечатано (0, 1, 2, 3, 4, 5, 6, 7, 8, 9). Функция range с одним параметром n генерирует iterable, содержащий последовательные числа от 0 до n-1.
Существует вариант range с двумя параметрами, range(from, to) сгенерирует iterable со всеми числами от from до to-1 включительно.
Также существует range с тремя параметрами range(from, to, step), который сгенерирует iterable с числами от from, не превышающие to с шагом изменения step. Если шаг отрицателен, то from должен быть больше to. Например, range(10, 0, -2) сгенерирует последовательность чисел 10, 8, 6, 4, 2. 0 не будет входить в эту последовательность.
Во многом параметры range напоминают значения параметров в срезах строк.
Цикл for
Цикл for позволяет поочередно перебрать элементы из чего-нибудь итерируемого (iterable или tuple). Например, мы можем перебрать названия цветов яблок таким способом:
for color in ('red', 'green', 'yellow'):
print(color, 'apple')
В результате выполнения этой программы будет напечатано:
красное яблоко
зеленое яблоко
желтое яблоко
На место переменной color будут поочередно подставляться значения из кортежа. В общем случае цикл for выглядит так for имяПеременной in нечтоИтерируемое:
Все действия, которые должны выполняться в for, должны выделяться отступом, как и в if или while. Работа цикла for может быть прервана с помощью команды break или может быть осуществлен переход к следующей итерации с помощью continue. Эти команды имеют тот же эффект, что и при работе с циклом while.
Часто for используется вместе с функцией range. Например, с помощью for можно напечатать нечетные числа от 1 до 100:
for i in range(1, 100, 2):
print(i)
Внутри for может быть расположен и другой for. Вот так выглядит код для вывода таблицы умножения всех чисел от 1 до 10 (не очень красивой):
for i in range(1, 11):
for j in range(1, 11):
print(i * j, end=' ')
print()
Как вы можете заметить, при использовании функции range в for мы не преобразовывали iterable в tuple. Это связано с тем, что for как раз хочет получать последовательный доступ, который умеет давать iterable. Tuple умеет намного больше, но здесь его использование приведет к ненужным затратам времени и памяти.
Задание по программированию: Ряд - 1
Даны два целых числа A и B (при этом A≤B). Выведите все числа от A до B включительно.
Формат ввода
Вводятся два целых числа.
a = int(input())
b = int(input())
for i in range(a, b+1):
print(i, end=' ')
Задание по программированию: Ряд - 2
Даны два целых числа A и В. Выведите все числа от A до B включительно, в порядке возрастания, если A < B, или в порядке убывания в противном случае.
Формат ввода
Вводятся два целых числа.
a = int(input())
b = int(input())
if a < b:
for i in range(a, b + 1):
print(i, end=' ')
elif a > b:
for i in range(a, b - 1, -1):
print(i, end=' ')
elif a == b:
print(a)
Задание по программированию: Флаги
Напишите программу, которая по данному числу n от 1 до 9 выводит на экран n флагов. Изображение одного флага имеет размер 4×4 символов, между двумя соседними флагами также имеется пустой (из пробелов) столбец. Разрешается вывести пустой столбец после последнего флага. Внутри каждого флага должен быть записан его номер — число от 1 до n.
Формат ввода
Вводится натуральное число.
n = int(input())
for i in range(1, n + 1):
print('+___', end=' ')
print()
for i in range(1, n + 1):
print('|', i, ' /', sep='', end=' ')
print()
for i in range(1, n + 1):
print('|__\ ', end='')
print()
for i in range(1, n + 1):
print('| ', end=' ')
Задание по программированию: Лесенка
По данному натуральному n≤9 выведите лесенку из n ступенек, i-я ступенька состоит из чисел от 1 до i без пробелов.
Формат ввода
Вводится натуральное число.
Тест 1
Входные данные:
3
Вывод программы:
1
12
123
Тест 2
Входные данные:
4
Вывод программы:
1
12
123
1234