Файл: Типы данных и функции вывода.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.10.2023

Просмотров: 409

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Onlinegdb.com – онлайн компилятор PythonИспользованы материалы сайта https://www.coursera.org/learn/python-osnovy-programmirovaniya/home/week/1Типы данных и функции вывода Sep – разделительEnd – что будет печататься в конце.По умолчанию sep – это пробел, end – перевод строки.Переменные и арифметические выраженияa**b а в степени ba // b целочисленное деление а на b (целая часть от деления)a % b остаток от деления а на b Speed, time, dist – переменные. Имя переменной не должно совпадать со стандартной функцией языка Python. Лучше давать переменным осмысленные имена.Операции над строкамиСтроки также можно сохранять в переменные и использовать в некотором ограниченном количестве выражений. В частности, можно склеивать две строки с помощью операции +: Чтение данныхМожно умножить строку на целое неотрицательное число, в результате получится исходная строка, повторенная заданное число раз: Программы, которые умеют только писать, но не умеют читать, редко представляют интерес для пользователей. Узнавать что-то из внешнего мира наши программы будут с помощью функции input(). Эта функция считывает строку из консоли, чтобы закончить ввод строки нужно нажать Enter. Под строкой в данном случае понимается английское слово line, что означает "строка, оканчивающаяся переводом строки". Например, если в такую программу: ввести слово Python, то она напечатает I love Python.Во многих задачах нам требуется работать со введенными числами, а читать мы умеем только строки. Чтобы преобразовать строку, состоящую из цифр (и, возможно, знака "-" перед ними) в целое число можно воспользоваться функцией int (сокращение от английского integer, "целое число"). Например, решение задачи о сложении двух чисел будет выглядеть так: Функция int может быть применена не только к результату, возвращаемому функцией input, но и к произвольной строке.В строках могут быть не только буквы, цифры и прочие знаки препинания, но и, например, символы табуляции и перевода строки. Чтобы использовать эти символы в константной строке в коде программы необходимо записывать их как \t и \n соответственно. Использование бэкслеша перед символом называется экранирование. Также существуют и другие символы, которые требуют бэкслеша перед собой. Например, это кавычки \' и \'' (использование бэкслеша просто необходимо, если в строке используются оба типа кавычек), а также, собственно, символ бэкслеша, который надо записывать как \\.В случае считывания с помощью input символы в консоли экранировать не нужно.Задача 1Hello Задание по программированию: Пингвины Напишите программу, которая по данному числу N от 1 до 9 выводит на экран N пингвинов. Изображение одного пингвина имеет размер 5×9 символов, между двумя соседними пингвинами также имеется пустой (из пробелов) столбец. Разрешается вывести пустой столбец после последнего пингвина. Для упрощения рисования скопируйте пингвина из примера в среду разработки.Формат вводаВводится натуральное число.Примечания В задачах нашего курса не нужно проверять ограничения входных данных: гарантируется, что введут данные, соответствующие условию. Т. е. например в этой задаче введенное число N точно будет не меньше 1 и не больше 9. Напоминаем, что во всех задачах этого курса решения должны выдавать в точности требуемый ответ. В частности, не надо выводить призыв к вводу вроде "Введите количество пингвинов". Пожалуйста, протестируйте свое решение на примерах ввода/вывода, а также придумайте свои удовлетворяющие условию примеры и протестируйте свое решение на них. Учтите, что вывод данных на экран производится построчно, а не попингвинно. Не забудьте, что для вывода бекслеша надо написать два бекслеша подряд. m = int(input())s1 = " _

Задание по программированию: Следующее и предыдущее

Примеры использования логических выражений

Условный оператор

Вложенный условный оператор и "иначе-если"

Вложенный условный оператор

Конструкция ''иначе-если''

Задание по программированию: Какое число больше?

Задание по программированию: Максимум трех чисел

Задание по программированию: Високосный год

Тренировочное задание по программированию: Ход короля

Тренировочное задание по программированию: Квартиры

Задание по программированию: Коровы

Задание по программированию: Упорядочить три числа

Задание по программированию: Сколько совпадает чисел

Тренировочное задание по программированию: Цвет клеток шахматной доски

Тренировочное задание по программированию: Шоколадка

Задание по программированию: Коровы

Задание по программированию: Узник замка Иф

Цикл while

Задание по программированию: Список квадратов

Задание по программированию: Минимальный делитель

Тренировочное задание по программированию: Список степеней двойки

Задание по программированию: Утренняя пробежка

Задание по программированию: Максимум последовательности

Подсчет суммы и оператор continue

Задание по программированию: Сумма квадратов

Задание по программированию: Длина последовательности

Задание по программированию: Сумма последовательности

Задание по программированию: Максимальное число подряд идущих равных

Задание по программированию: Количество четных элементов последовательности

Задание по программированию: Второй максимум

Задание по программированию: Количество элементов, равных максимуму

Как устроены вещественные числа

Основы работы с вещественными числами

Проблемы вещественных чисел

Округление вещественных чисел

Задание по программированию: Округление по российским правилам

Задание по программированию: Проценты

Задание по программированию: Квадратное уравнение - 1

Задание по программированию: Система линейных уравнений - 1

Срезы строк

Метод find

Задание по программированию: Делаем срезы

Задание по программированию: Первое и последнее вхождение

Задание по программированию: Удаление фрагмента

Задание по программированию: Второе вхождение

Задание по программированию: Переставить два слова

Методы rfind, replace и count

Задание по программированию: Количество слов

Задание по программированию: Замена подстроки

Задание по программированию: Удаление символа

Функции

Использование функций

Вызовы функций из функции

Задание по программированию: Минимум 4 чисел

Возврат значений

Возврат нескольких значений функцией

Возврат логических значений

Задание по программированию: Принадлежит ли точка квадрату - 1

Задание по программированию: Принадлежит ли точка кругу

Задание по программированию: Минимальный делитель числа

Локальные и глобальные переменные

Задание по программированию: Проверка числа на простоту

Рекурсия

Использование рекурсии

Задание по программированию: Возведение в степень

Задание по программированию: Сложение без сложения

Задание по программированию: Быстрое возведение в степень

Задание по программированию: Сократите дробь

Задание по программированию: Сумма последовательности

Задание по программированию: Разворот последовательности

Кортежи

Функция range, цикл for

Функция range

Цикл for

Задание по программированию: Ряд - 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