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

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

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

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

Добавлен: 25.10.2023

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

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

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

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

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


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

int - округляет в сторону нуля (отбрасывет дробную часть)

round - округляет до ближайшего целого, если ближайших целых несколько (дробная часть равно 0.5), то к чётному

floor - округляет в меньшую сторону

ceil - округляет в большую сторону

Примеры для различных чисел:



Функции floor и ceil находятся в библиотеке math. Есть два способа получить воспользоваться ими в своей программе.

В первом способе импортируется библиотека math, тогда перед каждым вызовом функции оттуда нужно писать слово ''math.'', а затем имя функции:

import math
print(math.floor(-2.5))

print(math.ceil(-2.5))

Во втором способе из библиотеки импортируются некоторые функции и доступ к ним можно получить без написания ''math.'':

from math import floor, ceil
print(floor(-2.5))

print(ceil(-2.5))

Второй способ предпочтительно применять в случае, если какие-то функции используются часто и нет конфликта имен (функций с одинаковыми именами в нескольких подключенных библиотеках).

В библиотеке math также есть функция округления trunc, которая работает аналогично int.

Задача

Дробная часть

Дано положительное действительное число X. Выведите его дробную часть.

Формат ввода

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

Тест 1

Входные данные:

17.9

Вывод программы:

0.9
Тест 2

Входные данные:

10.34

Вывод программы:

0.34
Тест 3

Входные данные:

0.001
Вывод программы:

0.001
Решение

n = float(input())
print('{0:.3}'.format(n % 1))

Пояснение: остаток от деления на 1 позволяет напечатать дробную часть числа.

Задача. Цена товара

Цена товара обозначена в рублях с точностью до копеек, то есть действительным числом с двумя цифрами после десятичной точки. Запишите в две целочисленные переменные стоимость товара в виде целого числа рублей и целого числа копеек и выведите их на экран. При решении этой задачи нельзя пользоваться условными инструкциями и циклами.


Формат ввода

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

n = float(input())
a = int(n // 1)
b = round(n % 1 * 100)
print(a, b)

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


По российский правилам числа округляются до ближайшего целого числа, а если дробная часть числа равна 0.5, то число округляется вверх. Дано неотрицательное число x, округлите его по этим правилам. Обратите внимание, что функция round не годится для этой задачи!

Формат ввода

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

Решение

from math import *
n = float(input())
if int((n % 1) * 10) >= 5:
print(ceil(n))
else:
print(floor(n))

Примечание: ceil(n) целая часть дробного числа + 1

floor(n) целая часть дробного числа

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


Процентная ставка по вкладу составляет P процентов годовых, которые прибавляются к сумме вклада. Вклад составляет X рублей Y копеек. Определите размер вклада через год. При решении этой задачи нельзя пользоваться условными инструкциями и циклами.

Формат ввода

Программа получает на вход целые числа P, X, Y.

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

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

p = int(input())
x = int(input())
y = int(input())
money = x * 100 + y
total = money + money * (p / 100)
print(int(total/100), int(total % 100))

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


Даны действительные коэффициенты a, b, c, при этом a != 0. Решите квадратное уравнение ax²+bx+c=0 и выведите все его корни.

Формат ввода

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

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

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

from math import sqrt
a = float(input())
b = float(input())
c = float(input())
d = b**2 - 4 * a * c
x = -b / (2 * a)
x1 = (-b - sqrt(abs(d))) / (2 * a)
x2 = (-b + sqrt(abs(d))) / (2 * a)
if d < 0:
print('')
elif d == 0:
print(x)
else:
if x1 < x2:
print(x1, x2)
else:

print(x2, x1)

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


Даны вещественные числа a, b, c, d, e, f. Известно, что система линейных уравнений:

ax + by = e

cx + dy = f

имеет ровно одно решение. Выведите два числа x и y, являющиеся решением этой системы.

Формат ввода

Вводятся шесть чисел a, b, c, d, e, f

- коэффициенты уравнений системы.

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

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

b = float(input())
c = float(input())
d = float(input())
e = float(input())
f = float(input())

# ax + by = e
# cx + dy = f
# только одно решение

x = (d * e - b * f) / (d * a - b * c)
y = (e * c - f * a) / (b * c - d * a)

if x % 1 == 0 and y % 1 == 0:
print(int(x), int(y))
elif x % 1 > 0 and y % 1 == 0:
print(x, int(y))
elif x % 1 == 0 and y % 1 > 0:
print(int(x), y)
elif x % 1 > 0 and y % 1 > 0:
print(x, y)

Срезы строк


Нам известны способы считывать, выводить и задавать константные строки, а также склеивать строки между собой и умножать строку на число.

Чтобы определить длину строки s можно воспользоваться функцией len(s) - она возвращает целое число, равное длине строки.

Срез - это способ извлечь из строки отдельные символы или подстроки. При применении среза конструируется новая строка, строка, к которой был применён срез, остается без изменений.

Простейший вид среза - это обращение к конкретному символу строки по номеру. Чтобы получить i-ый символ строки нужно написать s[i]. В результате этого будет сконструирована строка, содержащая только один символ --- тот, который стоял на месте i. Нумерация символов идет с нуля, при попытке обратиться к символу с номером больше либо равном длине строки возникает ошибка.

В языке Питон присутствует и нумерация символов строки отрицательными числами. Последний символ строки имеет номер -1, предпоследний -2 и так далее. При попытке обратиться к символу с номером, меньшим чем -len(s) возникает ошибка.

Нумерация символов в строке ''String'' представлена в таблице:

S

t

r

i

n

g

0

1

2

3

4

5

-6

-5

-4

-3

-2

-1


Получить доступ, например, к символу n, можно двумя способами s[4] и s[-2].

Также существуют срезы с двумя параметрами: в результате применения среза s[a:b] будет сконструирована подстрока начиная с символа на позиции a и заканчивая символом на позиции b-1 (правая граница не включается). Каждый из индексов может быть как положительным, так и отрицательным.

Например, при s = "String", s[1:5] будет равно "trin", это можно было бы записать и как s[1:-1]. Если в качестве второго числа в срезе взять число, больше либо равное длине строки, то ошибки не возникнет и будут взяты все символы до конца строки.

В случае, если нужно взять все символы строки начиная с позиции a и до конца, то второй параметр можно опускать. Например, s[2:] будет равно "ring".

Если опустить первый параметр в срезе, то будет взята подстрока с начала, например s[:2] будет равно "St". Если же написать S[:] то будет взята вся строка от начала до конца.

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

Также существует срез с тремя параметрами, где третий параметр задает шаг, с которым нужно брать символы. Например, можно взять все символы с начала до конца с шагом 2, это будет выглядеть как s[::2], в результате чего получится строка "Srn". Естественно, первый и второй параметры можно не опускать. Если третий параметр не указан, т.е. в квадратных скобках записано только одно двоеточие, то шаг считается равным 1.

Шаг в срезе может быть и отрицательным, в таком случае первый параметр должен находится правее второго. Например, s[5:1:-2] даст строку "gi - 5-ый и 3-ий символы, а символ с номером 1 уже не входит. Развернутую строку можно получить срезом s[::-1] -все символы от "начала" до "конца" в обратном порядке. Если третий параметр отрицательный, то началом среза считается последний символ, а концом - позиция перед нулевым символом.