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

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

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

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

Добавлен: 25.10.2023

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

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

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

СОДЕРЖАНИЕ

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

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

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

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


Рассмотрим, как создать свою функцию, на примере вычисления факториала. Текст программы без функции выглядит так:

n = int(input())

fact = 1

i = 2

while i <= n:

    fact *= i

    i += 1

print(fact)

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

print(factorial(n))

Описание функции должно идти в начале программы. На самом деле, оно может быть в любом месте, до первого вызова функции factorial.

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

Команды, выполняемые в функции должны записываться с отступом, как в блоках команд if или while.

В нашей функции num - это параметр, на его место подставляется то значение, с которым функция была вызвана. Действия внутри функции точно такие же, как в обычной программе, кроме дополнительной команды return. Команда return возвращает значение функции (оно должно быть записано через пробел после слова return) и прекращает её работу. Возвращенное значение подставляется на то место, где осуществлялся вызов функции.

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

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


Функцию подсчета факториала можно использовать для подсчета биномиальных коэффициентов (числа сочетаний). Формула для подсчета числа сочетаний выглядит так: n! / (k! * (n - k)!).

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

print(factorial(n) // (factorial(k) * factorial(- k)))


Подсчет биномиальных коэффициентов можно также оформить в виде функции с двумя параметрами:

def binomial(n, k):

    return factorial(n) // (factorial(k) * factorial(n - k))



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


Напишите функцию min4(a, b, c, d), вычисляющую минимум четырех чисел, которая не содержит инструкции if, а использует стандартную функцию min от двух чисел. Считайте четыре целых числа и выведите их минимум.

Формат ввода

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

def min(a, b):
if a < b:
return a
else:
return b
a, b, c, d = int(input()), int(input()), int(input()), int(input())
min1 = min(a, b)
min2 = min(min1, c)
min3 = min(min2, d)
print(min3)



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


Как было сказано выше, выполнение функции прерывается по команде return. Для примера рассмотрим функцию поиска максимума из двух чисел, которые передаются ей в качестве параметров:

def max2(a, b):

    if a > b:

        return a

    else:

        return b

Её можно было бы записать и по-другому:

def max2(a, b):

    if a > b:

        return a

    return b

Если условие в if'е было истинным, то выполнится команда return a и выполнение функции будет прекращено - до команды return b выполнение просто не дойдет.

С помощью функции max2 можно реализовать функцию max3, возвращающую максимум из трех чисел:

def max3(a, b, c):

    return max2(max2(a, b), c)    

Эта функция дважды вызывает max2: сначала для выбора максимума среди чисел a и b, а затем для выбора максимума между найденным значением и оставшимся числом c.

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

Наши функции max2 и max3 будут работать не только для чисел, но и для любых сравнимых объектов, например, для строк.

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


Рассмотрим случай, когда функция должна вернуть несколько значений на примере функции, упорядочивающей два числа. Чтобы вернуть несколько значений, достаточно записать их в return через запятую. Аналогично, через запятую должны быть перечислены переменные, в которые будут попадать вычисленные значения.

def sort2(a, b):

    if a < b:

        return a, b

    else:

        return b, a

a = int(input())

b = int(input())

minimum, maximum = sort2(a, b)

print(minimum, maximum)

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

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


Иногда удобно оформлять даже простые вещи в виде функций, чтобы повысить читаемость программы. Например, если нужно проверить число на четность, то гораздо понятнее будет каждый раз вызывать функцию isEven(n), а не писать каждый раз n % 2 == 0.

Такая функция может выглядеть так:

def isEven(n):

    return n % 2 == 0

Результатом работы этой функции будет истина или ложь. Теперь функцию очень удобно применять в if'ах:

if isEven(n):

    print("EVEN")

else:

    print("ODD")

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

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


Даны два действительных числа x и y. Проверьте, принадлежит ли точка с координатами (x,y) заштрихованному квадрату (включая его границу). Если точка принадлежит квадрату, выведите слово YES, иначе выведите слово NO. На рисунке сетка проведена с шагом 1.




Решение должно содержать функцию IsPointInSquare(x, y), возвращающую True, если точка принадлежит квадрату и False, если не принадлежит. Основная программа должна считать координаты точки, вызвать функцию IsPointInSquare и в зависимости от возвращенного значения вывести на экран необходимое сообщение. Функция IsPointInSquare не должна содержать инструкцию if.

Формат ввода

Вводятся два действительных числа.

def IsPointInSquare(x, y):
return -1 <= x <= 1 and - 1 <= y <= 1
X, Y = float(input()), float(input())
if IsPointInSquare(X, Y):
print('YES')
else:
print('NO')

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


Даны пять действительных чисел: x, y, xc, yc, r.

Проверьте, принадлежит ли точка (x,y) кругу с центром (xc, yc) и радиусом r.

Если точка принадлежит кругу, выведите слово YES, иначе выведите слово NO.

Решение должно содержать функцию IsPointInCircle(x, y, xc, yc, r), возвращающую True, если точка принадлежит кругу и False, если не принадлежит.

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

Формат ввода

Вводится пять действительных чисел.

def IsPointInCircle(x, y, xc, yc, r):
return (x - xc) ** 2 + (y - yc) ** 2 <= r ** 2
x = float(input())
y = float(input())
xc = float(input())
yc = float(input())
r = float(input())
if IsPointInCircle(x, y, xc, yc, r):
print('YES')
else:
print('NO')

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


Дано натуральное число n>1. Выведите его наименьший делитель, отличный от 1. Решение оформите в виде функции MinDivisor(n). Алгоритм должен иметь сложность порядка корня квадратного из n.

Указание. Если у числа n нет делителя не превосходящего корня из n, то число n — простое и ответом будет само число n. А у всех составных чисел обязательно есть делители, отличные от единицы и не превосходящие корня из n.

Формат ввода

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

import math



def MinDivisor(n):
i = 2
while n % i != 0:
i += 1
if i > math.sqrt(n):
i = n
break
return i


n = int(input())
print(MinDivisor(n))