Python | Яндекс Практикум глава 2.1 | Решение + пояснение за код | End Way - форум программирования и сливов различных скриптов
  • Присоединяйтесь к нам в телеграм канал! EndWay канал | EndSoft канал | EWStudio канал
  • Хочешь поставить скрипт, но не умеешь?
    А может ты хочешь свой скрипт на основе слитого?

    Тогда добро пожаловать в нашу студию разработки!

    Телеграм бот: EWStudioBot
    Телеграм канал: EWStudio

Python | Яндекс Практикум глава 2.1 | Решение + пояснение за код

lolzteam

Сеньор
Автор темы
😈MORGENSHTERN😈
8 Янв 2023
148
72
0
1681597512872
Категорически приветствую, в данной теме мы решим задачки из курса Яндекс Практикума и поясним за код в главе 2.1 Вводи и вывод данных. Операции с числами, строками. Форматирование.

A - Привет, Яндекс!
Решение:
print("Привет, Яндекс!")
Тут все понятно, выводим строку через функцию print
B - Привет, всем!
Решение:
Решение:
print("Как Вас зовут?")
name = input()
print("Привет, " + name)
Через функцию print выводим вопрос, потом используем input для заполнения имени в переменную namе и выводим все это.
Почему нельзя сделать вот так:
Python:
name = input("Как Вас зовут?")
print("Привет, " + name)
, потому что input не переносит строку и в итоге у нас получится 1681590722237, а надо 1681590748504
C - Излишняя автоматизация
Решение:
Решение:
name = input()
print(name)
print(name)
print(name)
Тут все просто, задаем input для приема текста от юзера и выводим переменную name через print три раза.
D - Сдача
Решение:
Решение:
bob = 38 * 2.5
cash = int(input())
sdacha = cash - bob
print(int(sdacha))
В переменной bob мы узнаем сумму, которую покупатель должен заплатить за 2.5кг черешни по цене 38руб/кг, используем int(input) для ввода пользователем целого числа и в переменной сдача вычисляем размер сдачи. В print нам обязательно нужно указать что мы выводим целое число, поэтому используем print(int(sdacha)), чтобы у нас получилось вот так: 1681591454262, а не так:16815914694401681591469440
E - Магазин
Решение:
Решение:
cena = int(input())
ves = int(input())
summa = int(input())
kgves = int(cena * ves)
sdacha = int(summa - kgves)
print(int(sdacha))
Задаем инпуты для цены, веса и количества денег у юзера, все через int(input()), так как работаем с целыми числами. После, в переменной kgves считаем окончательную стоимость товара и в сдаче отнимаем от количества money у user кгвес, выводим результат через print(int())
F - Чек
Решение:
Решение:
tovar = input()
price = int(input())
ves = int(input())
summ = int(input())
kgves = price * ves
sdacha = summ - kgves

print("Чек")
print(strtovar + " - " + ves + "кг" + " - " + price + "руб/кг"))
print("Итого: " + str(kgves) + "руб")
print("Внесено: " + str(summ) + "руб")
print("Сдача: " + str(sdacha) + "руб")
Задаем переменные для ввода товара, цены, веса и денег usera, заносим в переменную kgves руб/кг товара, задаем переменную сдачи и высчитываем в ней сдачу, потом, через принты выводим все это в красивом формате, как в примере от яндекса
G - Делу - время, потехе - час
Решение:
Решение:
x = int(input())
for i in range(x):
    print("Купи слона!")
Честно говоря, не знаю как решить эту задачку без циклов или условий, в данной главе мы их не проходим, но я решил ее так:catlove, задаем инпут на число строк и выводим строку купи слона через цикл фор используя range(x)
H - Наказание
Решение:
Решение:
n = int(input())
x = (input())
for i in range(n):
    print('Я больше никогда не буду писать "' + x + '"!')
Не знаю как решить без использования циклов или условий, поэтому работаем по такой же схеме как в задаче G
I - Деловая колбаса
Решение:
Решение:
m = int(input())
n = int(input())
summ = n * m
print(summ // 2)
Задаем два int(input()), для кусков колбасы/минуту и количества детей, задаем переменную summ в которой перемножаем куски на детей и в print целочислено делим сумму на 2
J - Детский сад - штаны на лямках
Решение:
Решение:
name = input()
number = input()
print("Группа №" + str(number[0]) + ".")
print(str(number[2]) + ". " + str(name) + ".")
print("Шкафчик: " + str(number) + ".")
print("Кроватка: " + str(number[1]) + ".")
Задаем два инпута, в которые будет вводиться имя ребенка и номер шкафчика, далее делаем красивый вывод через принт в котором достаем первую, вторую и третью цифру шкафчика через number[0]/[1]/[2], этим методом мы обращаемся к первому/второму/третьему элементу в строке с номером шкафчика
K - Автоматизация игры
Решение:
Решение:
number = str(input())
print(f'{number[1]}{number[0]}{number[3]}{number[2]}')
Задаем инпут для цифры и придаем ему тип данных: строка, делаем print и выводим в строку цифры как указано в задаче, используя number[0]/[1]/[2]/[3], этим методом мы обращаемся к первому/второму/третьему/четвертому элементу в строке
L - Интересное сложение
Решение:
a = input().zfill(3)
b = input().zfill(3)
def sum_nums(a, b):
    return str(int(a) + int(b))[-1]
print(sum_nums(a[0], b[0]), sum_nums(a[1], b[1]), sum_nums(a[2], b[2]), sep="")
  1. Считывание двух чисел a и b из ввода с помощью функции input().zfill(3). Метод zfill() добавляет в начало числа нули, чтобы число имело три цифры.
  2. Определение функции sum_nums, которая принимает два аргумента - цифры чисел a и b и возвращает строковое представление суммы этих двух цифр. Для этого она складывает две цифры с помощью оператора + и преобразует результат с помощью функции str(). Затем она берет последнюю цифру этого числа с помощью индексации и возвращает ее с помощью оператора return.
  3. Вызов функции sum_nums для каждой цифры чисел a и b. Результаты суммирования выводятся на экран с помощью функции print(), разделенные пустым пространством.
Таким образом, данный код работает следующим образом: сначала считывает два числа из ввода, затем выполняет сложение цифр чисел a и b без учета переносов.
M - Дед мороз и конфеты
Решение:
child = int(input())
sweets = int(input())
x = sweets // child
z = x * child
y = sweets - z
print(x)
print(y)
Тут все просто, задаем импуты, проводим расчеты целочислено ( "//" ) деля конфеты на детей, потом умножаем это дело на детей и отнимаем от количества конфет, все это переменные x,z,y, остается только вывести x, y - задачка решена
N - Шарики и ручки
Решение:
x = int(input())
y = int(input())
z = int(input())
d = x + z + 1
print(d)
Задаем 3 инпута для целых чисел, но считать будем только красные и синие шарики, так как если вытащить все шарики этих цветов, следующий будет - зеленый, поэтому добавляем в переменную d к сложению красных и синих один шарик. выводим переменную d через print.
O - В ожидании доставки
Решение:
n = int(input())
m = int(input())
t = int(input())

vremya = (n * 60 + m + t) % 1440
print(f"{vremya // 60:02d}:{vremya % 60:02d}")

Сначала считываются значения трех переменных: n, m и t, которые соответствуют часам и минутам заказа доставки, и времени, которое требуется на доставку.

Далее вычисляется общее время в минутах, когда привезут продукты, используя формулу (n * 60 + m + t), где n * 60 переводит часы в минуты, m добавляет минуты, когда был сделан заказ, а t добавляет время, которое требуется на доставку.

После этого вычисленное время в минутах остатком от деления на 1440, то есть на количество минут в 24 часах. Это необходимо, чтобы время было в диапазоне от 00:00 до 23:59.

Затем время в минутах преобразуется в строку, соответствующую формату времени в виде двух чисел, разделенных двоеточием: часы и минуты соответственно. Для этого используется функция print() с форматированием строк с помощью метода format().

Также вместо метода format() в примере использован метод f-строк, который позволяет вставлять переменные внутрь строки, указывая их в фигурных скобках, начиная со знака $.

vremya // 60 вычисляет количество часов, прошедших с полуночи до нужного времени.
vremya % 60 вычисляет количество минут, оставшихся после вычисления часов.
:02d задает формат вывода для числа, обозначающего количество часов или минут. Число выводится с лидирующим нулем, если оно состоит из одной цифры. Например, число 8 выводится как 08.
P - Доставка
Решение:
x = int(input())
y = int(input())
z = int(input())
xy = (y - x) / z
print(xy)
На первых трех строках происходит считывание входных данных: расстояния, которое нужно пробежать (x), начальной (y) и конечной (z) скорости бегуна.

На следующей строке вычисляется время, за которое бегун пробежит заданное расстояние. Для этого из конечного времени y вычитается начальное время x (это даст время, за которое бегун пробежит заданное расстояние со скоростью z), а затем результат делится на скорость z. Время сохраняется в переменную xy.

Наконец, на последней строке результат выводится на экран. Обратите внимание, что по умолчанию Python выводит дробные числа с точностью до 16 знаков после запятой, но в данном случае мы получаем целое число (если расстояние x и скорость z целочисленные, то время будет также целочисленным). Если вы хотите вывести дробное число с определенной точностью, можно воспользоваться функцией форматирования строк, как это сделано в вашем коде.
Q - Ошибка кассового аппарата
Решение:
x = input()
a = input()
print(int(a, 2) + int(x))
Задаем два инпута и выводим их сразу считая в print, в питоне можно использовать функцию int() с параметром 2 для перевода двоичного числа в десятичное. как в нашем коде
R - Сдача 10
Решение:
x = input()
a = input()
print(int(a) - int(x, 2))
Задаем два инпута для цены покупки и номинала купюры пользователя, после, в print вычитаем из номинала купюры цену товара предварительно переведя ее из двоичного типа данных, в десятичное число с помощью int(name, 2) задавая функции int параметр 2
S - Украшение чека
Решение:
tovar = input()
price = input()
mass = input()
cash_user = input()
k_oplate = int(mass) * int(price)
cdacha = int(cash_user) - int(k_oplate)


header = '================Чек================'


def print_line(label, value):
    print(f'{label}: {" " * (len(header) - len(label) - len(value) - 2)}{value}')


print(header)
print_line('Товар', tovar)
print_line('Цена', f'{mass}кг * {price}руб/кг')
print_line('Итого', f'{k_oplate}руб')
print_line('Внесено', f'{cash_user}руб')
print_line('Сдача', f'{cdacha}руб')
print('=' * len(header))
  1. Считывание данных из ввода с помощью функции input(): наименования товара (переменная tovar), цены за килограмм (переменная price), количества килограммов товара (переменная mass) и внесенной суммы денег (переменная cash_user).
  2. Вычисление стоимости товара (переменная k_oplate) как произведения цены и количества товара.
  3. Расчет сдачи (переменная cdacha) как разницы между внесенной суммой и стоимостью товара.
  4. Определение функции print_line, которая принимает два аргумента - метку и значение и выводит их на экран с отступом для выравнивания. Для этого используется строковый метод .format(), который вычисляет количество пробелов, необходимых для выравнивания метки и значения.
  5. Вывод чека на экран с помощью функции print(). Сначала выводится заголовок чека (строка '================Чек================'), затем каждый элемент (метка и значение) с помощью функции print_line(), разделенные пустым пространством. Для того, чтобы линии элементов чека были одинаковой длины, используется строковый метод * для повторения символа '='.
Данный код работает следующим образом: считывает данные из ввода, вычисляет стоимость товара и сдачу, а затем выводит на экран чек с указанием наименования товара, цены, количества, итоговой суммы, внесенной суммы и сдачи.
T - Мухи отдельно, котлеты отдельно
Решение:
n = int(input())
m = int(input())
k1 = int(input())
k2 = int(input())

n1 = int(n * (m - k2) / (k1 - k2))
print(n1, n - n1)
Код решает задачу методом алгебраических вычислений, без использования формул.

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

Далее мы вычисляем вес первой партии котлет n1 следующим образом: мы находим разность между ценами на первый и второй вид котлет (k1 - k2) и находим произведение этой разности на вес всей партии котлет n * (m - k2). Затем мы делим это произведение на разность цен на первый и второй вид котлет (k1 - k2) и преобразуем результат в целочисленный тип.

Для вычисления веса второй партии котлет мы просто вычитаем вес первой партии из общего веса n.

Итак, мы получаем два числа - вес первой и вес второй партии котлет, которые выводим в консоль с помощью функции print().

Спасибо за прочтение данной темы, надеюсь, некоторым она поможет разобраться в принципе работы некоторых методов и функций.
 
Последнее редактирование:
Like
  • 1
Реакции: 1 user
Активность:
Пока что здесь никого нет