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

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

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

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

Добавлен: 25.10.2023

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

Скачиваний: 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

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

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



В логических выражениях допустимы следующие знаки сравнений:

Знак сравнения

Описание

<

меньше

>

больше

<=

меньше либо равно

>=

больше либо равно

==

равно

!=

не равно

В Питоне допустимы и логические выражения, содержащие несколько знаков сравнения, например x < y < z. При этом все сравнения обладают одинаковым приоритетом, который меньше, чем у любой арифметической операции.

Результат вычисления логического выражения можно сохранять в переменную, которая будет иметь тип bool. Переменные такого типа, как и числа и строки, являются неизменяемыми объектами.

Строки также могут сравниваться между собой. При этом сравнение происходит в лексикографическом порядке (как упорядочены слова в словаре).

Логические операции

Чтобы записать сложное логическое выражение, часто бывает необходимо воспользоваться логическими связками "и", "или" и "не". В Питоне они обозначаются как and, or и not соответственно. Операции and и or являются бинарными, т.е. должны быть записаны между операндами, например x < 3 or y > 2. Операция not - унарная и должна быть записана перед единственным своим операндом.

Все логические операции имеют приоритет ниже, чем операции сравнения (а значит, и ниже чем арифметические операции). Среди логических операций наивысший приоритет имеет операция not, затем идет and и наименьший приоритет имеет операция or. На порядок выполнения операций можно влиять с помощью скобок, как и в арифметических выражениях.

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


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

isEven = number % 2 == 0

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

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

is1startIn2 = start2 <= start1 <= finish2

is1finishIn2 = start2 <= finish1 <= finish2

is1in2 = is1startIn2 or is1finishIn2

is2startIn1 = start1 <= start2 <= finish1

is2finishIn1 = start1 <= finish2 <= finish1

is2in1 = is2startIn1 or is2finishIn1

answer = is1in2 or is2in1

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

answer = start1 <= finish2 and start2 <= finish1

Такой способ значительно проще.

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




Наиболее частое применение логические выражения находят в условных операторах.

Условный оператор позволяет выполнять действия в зависимости от того, выполнено условие или нет. Записывается условный оператор как ''if <логическое выражение>:'', далее следует блок команд, который будет выполнен только если логическое выражение приняло значение True. Блок команд, который будет выполняться, выделяется отступами в 4 пробела (в IDE можно нажимать клавишу tab).

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

x = int(input())

if x < 0:

x = -x

print(x)

В этой программе с отступом записана только одна строка

, x = -x. При необходимости выполнить несколько команд все они должны быть записаны с тем же отступом. Команда print записана без отступа, поэтому она будет выполняться в любом случае, независимо от того, было ли условие в if'е истинным или нет.

В дополнение к if можно использовать оператор else: (иначе). Блок команд, который следует после него, будет выполняться если условие было ложным. Например, ту же задачу о выводе модуля числа можно было решить, не меняя значения переменной x:

x = int(input())

if x >= 0:

print(x)

else:

print(-x)

Все команды, которые выполняются в блоке else, должны быть также записаны с отступом. Else должен следовать сразу за блоком команд if, без промежуточных команд, выполняемых безусловно. Else без соответствующего if'а не имеет смысла.

Если после if записано не логическое выражение, то оно будет приведено к логическому, как если бы от него была вызвана функция bool. Однако, злоупотреблять этим не следует, т.к. это ухудшает читаемость кода.

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

В Питоне, как и во многих других языках программирования, если результат вычисления выражения однозначно понятен по уже вычисленной части, то оставшаяся часть выражения даже не считается. Например, выражение True or 5 // 0 == 42, не будет вызывать ошибки деления на ноль, т.к. по левой части выражения (True) уже понятно, что результат его вычисления также будет True и арифметическое выражение в правой части даже не будет вычисляться.

Максимум из двух

Напишите программу, которая считывает два целых числа A и B и выводит наибольшее значение из них. Числа — целые от 1 до 1000.

Формат ввода

Вводятся два числа.

Формат вывода

Выведите ответ на задачу.

a = int(input())
b = int(input())
if a >= b:
print(a)
else:
print(b)

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


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


Внутри блока команд могут находиться другие условные операторы. Посмотрим сразу на примере. По заданному количеству глаз и ног нужно научиться отличать кошку, паука, морского гребешка и жучка. У морского гребешка бывает более сотни глаз, а у пауков их восемь. Также у пауков восемь ног, а у морского гребешка их нет совсем. У кошки четыре ноги, а у жучка – шесть ног, но глаз у обоих по два. Решение:

eyes = int(input())

legs = int(input())

if eyes >= 8:

    if legs == 8:

        print("spider")

    else:

        print("scallop")

else:

    if legs == 6:

        print("bug")

    else:

        print("cat")

Если вложенных условных операторов несколько, то, к какому из них относится else, можно понять по отступу. Отступ у else должен быть такой же, как у if, к которому он относится.

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


В некоторых ситуациях необходимо осуществить выбор больше чем из двух вариантов, которые могут быть обработаны с помощью if-else. Рассмотрим пример: необходимо вывести словом название числа 1 или 2 или сообщить, что это другое число:

number = int(input())

if number == 1:

    print('One')

elif number == 2:

    print('Two')

else:

    print('Other')

Здесь используется специальная конструкция elif, обозначающая "иначе, если", после которой записывается условие. Такая конструкция введена в язык Питон, потому что запись if-else приведет к увеличению отступа и ухудшению читаемости.

Конструкций elif может быть несколько, условия проверяются последовательно. Как только условие выполнено, запускается соответствующий этому условию блок команд и дальнейшая проверка не выполняется. Блок else является необязательным, как и в обычном if.

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


Даны два целых числа. Программа должна вывести число "1", если первое число больше второго, число "2", если второе больше первого или число "0", если они равны.

Формат ввода

Вводятся два целых числа.


Формат вывода

Выведите ответ на задачу.

Примечания

Эту задачу желательно решить с использованием каскадных инструкций if... элиф... еще.

a = int(input())
b = int(input())
if a > b:
print("1")
elif b > a:
print("2")
else:
print("0")

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


Даны три целых числа. Найдите наибольшее из них (программа должна вывести ровно одно целое число).

Какое наименьшее число операторов сравнения (>, <, >=, <=) необходимо для решения этой задачи?

Формат ввода

Вводится три целых числа.

Формат вывода

Выведите ответ на задачу.

a = int(input())
b = int(input())
c = int(input())
if a < b:
a = b
if a < c:
a = c
print(a)

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


Дано натуральное число. Требуется определить, является ли год с данным номером високосным. Если год является високосным, то выведите YES, иначе выведите NO. Напомним, что в соответствии с григорианским календарем, год является високосным, если его номер кратен 4, но не кратен 100, или же если он кратен 400.

Формат ввода

Вводится одно натуральное число.

Формат вывода

Выведите ответ на задачу.

year = int(input())
if year % 4 == 0 and not year % 100 == 0 or year % 400 == 0:
print('YES')
else:
print('NO')

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


Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 1 клетку. Даны две различные клетки шахматной доски, определите, может ли король попасть с первой клетки на вторую одним ходом.

Формат ввода

Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.

Формат вывода

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

a1 = int(input())