Задача на работу с функцией и списками может показаться немного запутанной из-за множественных присвоений и изменения элементов. Давайте разберём её пошагово, чтобы понять, почему правильный ответ именно такой. Задачу решили 16% из 30-ти человек.
Код задачи:
Разбор задачи
Определяем функцию
Внутри функции сначала происходит обмен значений переменных
Теперь
Затем происходит обмен первых элементов списков:
Теперь первый элемент нового
Возвращаем кортеж изменённых списков.
Далее создаём две переменные со списками
И передаём их в функцию
После выполнения функции, результат присваивается переменным
Получается следующий результат:
- Переменная
- Переменная `c` ссылается на список
Мы только изменили первые значения списков. Поскольку список, это ссылочный тип данных, то передав список в функцию и изменив его, меняется и "оригинал".
Далее, мы делаем две замены:
- Присваиваем `a[1] = 7`. Это изменяет второй элемент списка
- Присваиваем
Выводим все четыре переменные на экран.
Правильный ответ:
Почему такой ответ?
Все переменные ссылаются на списки, и изменения отражаются на всех переменных, ссылающихся на тот же список. В Python списки изменяемы, и при передаче их в функции или присвоении переменных, фактически передаются ссылки на эти списки, а не их копии. Поэтому изменения в одном месте могут отразиться на всех переменных, ссылающихся на тот же объект.
Код задачи:
def shuffle_lists(x: list, y: list):
x, y = y, x
x[0], y[0] = y[0], x[0]
return x, y
a = [1, 2, 3]
b = [4, 5, 6]
c, d = shuffle_lists(a, b)
a[1] = 7
d[2] = 8
print(a, b, c, d)
Разбор задачи
Определяем функцию
shuffle_lists, принимающую два списка x и y.Внутри функции сначала происходит обмен значений переменных
x и y, в этой строке:x, y = y, x
Теперь
x ссылается на список, который изначально был y, а y ссылается на список, который изначально был x.Затем происходит обмен первых элементов списков:
x[0], y[0] = y[0], x[0]
Теперь первый элемент нового
x (который изначально был списком y) и новый y (который изначально был списком x) меняются местами.Возвращаем кортеж изменённых списков.
Далее создаём две переменные со списками
a = [1, 2, 3] и b = [4, 5, 6].И передаём их в функцию
shuffle_lists.После выполнения функции, результат присваивается переменным
c и d.Получается следующий результат:
- Переменная
d ссылается на список a и он имеет значение `[4, 2, 3].- Переменная `c` ссылается на список
b, и он имеет значение `[1, 5, 6].Мы только изменили первые значения списков. Поскольку список, это ссылочный тип данных, то передав список в функцию и изменив его, меняется и "оригинал".
Далее, мы делаем две замены:
- Присваиваем `a[1] = 7`. Это изменяет второй элемент списка
a, который теперь становится [4, 7, 3]. Это же изменяет и связанный список d.- Присваиваем
d[2] = 8. Так как d ссылается на тот же объект, что и a, изменяется третий элемент списка a, который теперь становится [4, 7, 8].Выводим все четыре переменные на экран.
Правильный ответ:
[4, 7, 8] [1, 5, 6] [1, 5, 6] [4, 7, 8].Почему такой ответ?
Все переменные ссылаются на списки, и изменения отражаются на всех переменных, ссылающихся на тот же список. В Python списки изменяемы, и при передаче их в функции или присвоении переменных, фактически передаются ссылки на эти списки, а не их копии. Поэтому изменения в одном месте могут отразиться на всех переменных, ссылающихся на тот же объект.
🔥5🤔1
Привет, друзья!
Прошла еще одна неделя, и у нас накопилось много интересных материалов: статьи, новости и полезные советы. Вот наш недельный дайджест:
Понедельник (26.08.2024) Пагинация в aiogram 3
Вторник (27.08.2024) Опрос
Четверг (29.08.2024) FastAPI 1. Инициализация проекта
Пятница (30.08.2024) Пятничный кинорелакс
Суббота (31.08.2024) Задача
Воскресенье (01.09.2024) Видео разбор субботней задачи и Текстовый разбор задачи
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе!
С уважением,
Команда канала "Код на салфетке".
#дайджест #материалы #новости #код_на_салфетке
Прошла еще одна неделя, и у нас накопилось много интересных материалов: статьи, новости и полезные советы. Вот наш недельный дайджест:
Понедельник (26.08.2024) Пагинация в aiogram 3
Вторник (27.08.2024) Опрос
Четверг (29.08.2024) FastAPI 1. Инициализация проекта
Пятница (30.08.2024) Пятничный кинорелакс
Суббота (31.08.2024) Задача
Воскресенье (01.09.2024) Видео разбор субботней задачи и Текстовый разбор задачи
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе!
С уважением,
Команда канала "Код на салфетке".
#дайджест #материалы #новости #код_на_салфетке
🔥6
Tortoise ORM - Простая асинхронная альтернатива SQLAlchemy
Автор: Иван Ашихмин
В этом посте, кратко расскажу про библиотеку Tortoise ORM и о том, как она отличается от SQLAlchemy.
Читать пост в Telegram
Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram
#PostgreSQL #SQLite #ORM #MySQL #работа_с_БД #SQLAlchemy #Pydantic #Tortoise #ОРМ #Модели_БД #База_Данных
Автор: Иван Ашихмин
В этом посте, кратко расскажу про библиотеку Tortoise ORM и о том, как она отличается от SQLAlchemy.
Читать пост в Telegram
Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram
#PostgreSQL #SQLite #ORM #MySQL #работа_с_БД #SQLAlchemy #Pydantic #Tortoise #ОРМ #Модели_БД #База_Данных
10🔥7👍2😱1
Что для вас важно в обучающих видео уроках? Выберите один или несколько вариантов ответа. В комментариях более полный вопрос.
Anonymous Poll
46%
Практическая сторона урока
12%
Теоретическая сторона урока
61%
Баланс теории/практики
30%
Визуальный ряд
12%
Не смотрю обучающие видео
2%
Другое (напишите свой вариант в комментарии)
FastAPI 2. Подготовка проекта
Автор: Иван Ашихмин
В этом посте мы рассмотрим принципы организации структуры проекта на FastAPI, упростим запуск приложения с помощью Poetry и создадим файл для переменных окружения, необходимых для подключения к PostgreSQL.
Читать пост в Telegram
Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram
#Python #Гайды #dotenv #FastAPI #SQLAlchemy #Pydantic #переменные_окружения #pydantic_settings #poetry #PostgresDsn #SecretStr
Автор: Иван Ашихмин
В этом посте мы рассмотрим принципы организации структуры проекта на FastAPI, упростим запуск приложения с помощью Poetry и создадим файл для переменных окружения, необходимых для подключения к PostgreSQL.
Читать пост в Telegram
Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram
#Python #Гайды #dotenv #FastAPI #SQLAlchemy #Pydantic #переменные_окружения #pydantic_settings #poetry #PostgresDsn #SecretStr
24🔥8👍1💅1
Приветствуем!
Продолжаем рубрику "Вопросы и ответы"!
В течение недели вы в комментариях к этому посту можете задавать различные вопросы нашей команде. Вопросы могут быть о чём угодно (в рамках разумного): о постах, о Python, о разработке в целом.
Ровно через неделю мы подготовим пост с ответами на появившиеся вопросы.
Также у нас есть чат, в котором тоже можно задавать вопросы и просто общаться)
Продолжаем рубрику "Вопросы и ответы"!
В течение недели вы в комментариях к этому посту можете задавать различные вопросы нашей команде. Вопросы могут быть о чём угодно (в рамках разумного): о постах, о Python, о разработке в целом.
Ровно через неделю мы подготовим пост с ответами на появившиеся вопросы.
Также у нас есть чат, в котором тоже можно задавать вопросы и просто общаться)
🔥4
Приветствую!
Пришло время нашего еженедельного кинопоста! На этой неделе мы предлагаем вам окунуться в мир безумного юмора и захватывающих приключений. Эта комедия с элементами боевика подарит вам море смеха и адреналина, благодаря неординарному дуэту братьев, которые попадают в самые невероятные ситуации. Готовьтесь к незабываемому просмотру, который точно поднимет вам настроение!
Фильм: Братья из Гримсби
Год: 2016
Сверхсекретная операция, которую выполняет образцовый спецагент, с треском провалена из-за некстати свалившегося на его голову неадекватного брата – оголтелого футбольного фаната и полного беспредельщика. Теперь герою предстоит спасти свою жизнь и вдобавок планету от нависшей над ней угрозы - практически невыполнимая задача в тандеме с вновь приобретенным родственником.
Приятного просмотра!
Пришло время нашего еженедельного кинопоста! На этой неделе мы предлагаем вам окунуться в мир безумного юмора и захватывающих приключений. Эта комедия с элементами боевика подарит вам море смеха и адреналина, благодаря неординарному дуэту братьев, которые попадают в самые невероятные ситуации. Готовьтесь к незабываемому просмотру, который точно поднимет вам настроение!
Фильм: Братья из Гримсби
Год: 2016
Сверхсекретная операция, которую выполняет образцовый спецагент, с треском провалена из-за некстати свалившегося на его голову неадекватного брата – оголтелого футбольного фаната и полного беспредельщика. Теперь герою предстоит спасти свою жизнь и вдобавок планету от нависшей над ней угрозы - практически невыполнимая задача в тандеме с вновь приобретенным родственником.
Приятного просмотра!
10🔥7
Что выведет этот код? №36
Задача:
У вас есть два списка посещений пользователей на сайте за разные дни. Необходимо найти пользователей, которые заходили на сайт в оба дня, но не были активны в промежуток между этими днями.
Условие:
- Первый список содержит идентификаторы пользователей, которые заходили на сайт в первый день.
- Второй список содержит идентификаторы пользователей, которые заходили на сайт во второй день.
- Третий список содержит идентификаторы пользователей, которые заходили на сайт между этими днями.
Напишите в комментарии, как вам новый формат задачи?
Задача:
У вас есть два списка посещений пользователей на сайте за разные дни. Необходимо найти пользователей, которые заходили на сайт в оба дня, но не были активны в промежуток между этими днями.
Условие:
- Первый список содержит идентификаторы пользователей, которые заходили на сайт в первый день.
- Второй список содержит идентификаторы пользователей, которые заходили на сайт во второй день.
- Третий список содержит идентификаторы пользователей, которые заходили на сайт между этими днями.
Напишите в комментарии, как вам новый формат задачи?
🔥3
🔥5
Сегодня разберём вчерашнюю задачу, где нам нужно найти пользователей сайта. Верно ответили 17% из 18-ти человек.
Задача:
У вас есть два списка посещений пользователей на сайте за разные дни. Необходимо найти пользователей, которые заходили на сайт в эти дни, но не были активны в промежуток между этими днями.
Условие:
- Первый список содержит идентификаторы пользователей, которые заходили на сайт в первый день.
- Второй список содержит идентификаторы пользователей, которые заходили на сайт во второй день.
- Третий список содержит идентификаторы пользователей, которые заходили на сайт между этими днями.
Код задачи:
Разбор задачи
Перед нами три множества, представляющие пользователей, заходивших на сайт в разные дни. Всё, что нам нужно сделать, это найти пользователей, которые заходили в эти дни, но не были активны в промежуточный день.
1. Шаг первый: пересекаем множества
Оператор
2. Шаг второй: вычитаем из этого множества тех, кто был активен в промежуточный день, используя оператор
Оператор
3. Шаг третий: добавляем в
Теперь:
-
-
4. Шаг четвёртый: финальное выражение.
Внутри функции
- Первым делом выполняется вычитание
- Затем выполняется объединение с множеством
Теперь в результате остаются пользователи:
Осталось посчитать количество элементов в этом множестве:
Правильный ответ: — 4.
Задача:
У вас есть два списка посещений пользователей на сайте за разные дни. Необходимо найти пользователей, которые заходили на сайт в эти дни, но не были активны в промежуток между этими днями.
Условие:
- Первый список содержит идентификаторы пользователей, которые заходили на сайт в первый день.
- Второй список содержит идентификаторы пользователей, которые заходили на сайт во второй день.
- Третий список содержит идентификаторы пользователей, которые заходили на сайт между этими днями.
Код задачи:
day1 = {101, 102, 103, 104, 105, 106}
day2 = {104, 105, 106, 107, 108, 109}
midday = {105, 107, 110}
common = day1 & day2
inactive_in_between = common - midday
day2.add(102)
midday.add(103)
result = len(inactive_in_between |
midday -
day2)
print(result)Разбор задачи
Перед нами три множества, представляющие пользователей, заходивших на сайт в разные дни. Всё, что нам нужно сделать, это найти пользователей, которые заходили в эти дни, но не были активны в промежуточный день.
1. Шаг первый: пересекаем множества
day1 и day2 с помощью оператора & (пересечение).common = day1 & day2
Оператор
& находит общие элементы между двумя множествами. В данном случае, мы находим пользователей, которые заходили на сайт в оба дня. Получаем:common = {104, 105, 106}2. Шаг второй: вычитаем из этого множества тех, кто был активен в промежуточный день, используя оператор
- (разность).inactive_in_between = common - midday
Оператор
- убирает из множества все элементы, которые есть в другом множестве. Здесь мы убираем пользователей, заходивших в промежуток между днями. Остаётся:inactive_in_between = {104, 106}3. Шаг третий: добавляем в
day2 пользователя 102, а в midday — 103.day2.add(102)
midday.add(103)
Теперь:
-
day2 = {102, 104, 105, 106, 107, 108, 109}-
midday = {103, 105, 107, 110}4. Шаг четвёртый: финальное выражение.
result = len(inactive_in_between | midday - day2)
Внутри функции
len(), мы выполняем две операции: | и -, однако, выполнение идёт не по порядку. В Python приоритет операций с множествами такой, что сначала выполняется операция вычитания (-), а затем объединение (|). Д- Первым делом выполняется вычитание
midday - day2. Убираем всех пользователей, которые были во второй день, из тех, кто заходил между днями:{103, 105, 107, 110} - {102, 104, 105, 106, 107, 108, 109} = {103, 110}- Затем выполняется объединение с множеством
inactive_in_between. Объединяем множество пользователей, которые были неактивны в промежутке, с теми, кто заходил между днями и не зашёл во второй день:{104, 106} | {103, 110} = {103, 104, 106, 110}Теперь в результате остаются пользователи:
{103, 104, 106, 110}.Осталось посчитать количество элементов в этом множестве:
result = len({103, 104, 106, 110}) = 4Правильный ответ: — 4.
🔥6👍1
Привет, друзья!
Прошла еще одна неделя, и у нас накопилось много интересных материалов: статьи, новости и полезные советы. Вот наш недельный дайджест:
Понедельник (02.09.2024) Дайджест за предыдущую неделю
Вторник (03.09.2024) Tortoise ORM - Простая асинхронная альтернатива SQLAlchemy
Среда (04.09.2024) Опрос
Четверг (05.09.2024) FastAPI 2. Подготовка проекта
Пятница (06.09.2024) Вопросы и ответы и Пятничный кинорелакс
Суббота (07.09.2024) Задача
Воскресенье (08.09.2024) Текстовый разбор задачи
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе!
С уважением,
Команда канала "Код на салфетке".
#дайджест #материалы #новости #код_на_салфетке
Прошла еще одна неделя, и у нас накопилось много интересных материалов: статьи, новости и полезные советы. Вот наш недельный дайджест:
Понедельник (02.09.2024) Дайджест за предыдущую неделю
Вторник (03.09.2024) Tortoise ORM - Простая асинхронная альтернатива SQLAlchemy
Среда (04.09.2024) Опрос
Четверг (05.09.2024) FastAPI 2. Подготовка проекта
Пятница (06.09.2024) Вопросы и ответы и Пятничный кинорелакс
Суббота (07.09.2024) Задача
Воскресенье (08.09.2024) Текстовый разбор задачи
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе!
С уважением,
Команда канала "Код на салфетке".
#дайджест #материалы #новости #код_на_салфетке
10 4🔥2
Обновление библиотеки - AIOgram 3.12 и 3.13
Автор: Иван Ашихмин
Вышла новая версия AIOgram 3.12 и 3.13. Список изменений в новых версиях на русском языке.
Читать пост в Telegram
Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram
#Telegram #Bot_API #список_изменений #aiogram #Telegram_бот #новая_версия #Telegram_Stars #обновление #звёзды #aiogram3 #розыгрыши #платные_меди
Автор: Иван Ашихмин
Вышла новая версия AIOgram 3.12 и 3.13. Список изменений в новых версиях на русском языке.
Читать пост в Telegram
Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram
#Telegram #Bot_API #список_изменений #aiogram #Telegram_бот #новая_версия #Telegram_Stars #обновление #звёзды #aiogram3 #розыгрыши #платные_меди
🔥5
Сравнение hash map С и C++ с dict Python (часть 2)
Автор: Eugene Kaddo
Данная статья продолжит тему отличия hash table C/C++ от dict Python и способов их реализации.
Читать пост в Telegram
Файлы к посту, можно получить в боте по коду: 532480
Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram
#Python #Код_на_салфетке #Сравнение_Python_и_C #C #C++ #hash_map #hash_table #dict
Автор: Eugene Kaddo
Данная статья продолжит тему отличия hash table C/C++ от dict Python и способов их реализации.
Читать пост в Telegram
Файлы к посту, можно получить в боте по коду: 532480
Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram
#Python #Код_на_салфетке #Сравнение_Python_и_C #C #C++ #hash_map #hash_table #dict
10🔥6❤🔥1🤯1
Привет, Друзья!
Хотим порекомендовать вам авторский канал про веб-разработку и сетевые технологии - "Давайте про IT".
Богдан специалист в Python-разработке и охотно делится со всеми гайдами, а также снимает видео! Сейчас на его канале активно рассказывается про OpenWRT и обходы сами знаете чего 😉
Наверняка вы найдёте много полезного для себя.
Хотим порекомендовать вам авторский канал про веб-разработку и сетевые технологии - "Давайте про IT".
Богдан специалист в Python-разработке и охотно делится со всеми гайдами, а также снимает видео! Сейчас на его канале активно рассказывается про OpenWRT и обходы сами знаете чего 😉
Наверняка вы найдёте много полезного для себя.
🔥8🤡1
Telegram Stars: Подробная инструкция по выводу
Автор: Иван Ашихмин
В этой статье разберёмся, что такое Telegram Stars, как их получить и пройдём полный путь по выводу звёзд с канала в рубли.
Читать пост в Telegram
Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram
#Гайды #Telegram_бот #Telegram_Stars #криптовалюта #TON #toncoin #вывод_звёзд #Вывод_ton
Автор: Иван Ашихмин
В этой статье разберёмся, что такое Telegram Stars, как их получить и пройдём полный путь по выводу звёзд с канала в рубли.
Читать пост в Telegram
Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram
#Гайды #Telegram_бот #Telegram_Stars #криптовалюта #TON #toncoin #вывод_звёзд #Вывод_ton
22🔥8👍2🤩2
Приветствую, друзья!
Сегодня пятница, а это значит, что пришло время нашей традиционной рубрики! На этой неделе мы приготовили для вас нечто особенное – трогательную и вдохновляющую историю. Этот фильм рассказывает о последних днях на Земле и невероятном путешествии, которое совершает главный герой вместе со своим верным роботом и собакой. Данный фильм затронет ваше сердце и заставит задуматься о важности человечности, дружбы и надежды.
Устраивайтесь поудобнее и приготовьте что-нибудь вкусное, ведь вас ждет незабываемое киноискусство!
Фильм: Финч
Год: 2021
Постапокалипсис. В Северной Америке бушует радиация, пыльные бури и торнадо. Инженер-робототехник Финч смертельно болен и переживает, что после его смерти некому будет заботиться о его собаке, поэтому собирает для этой цели человекоподобного робота. Узнав, что на местность надвигается супербуря, в которой он не выживет, Финч с собакой и роботами отправляется в Сан-Франциско.
Приятного просмотра!
Сегодня пятница, а это значит, что пришло время нашей традиционной рубрики! На этой неделе мы приготовили для вас нечто особенное – трогательную и вдохновляющую историю. Этот фильм рассказывает о последних днях на Земле и невероятном путешествии, которое совершает главный герой вместе со своим верным роботом и собакой. Данный фильм затронет ваше сердце и заставит задуматься о важности человечности, дружбы и надежды.
Устраивайтесь поудобнее и приготовьте что-нибудь вкусное, ведь вас ждет незабываемое киноискусство!
Фильм: Финч
Год: 2021
Постапокалипсис. В Северной Америке бушует радиация, пыльные бури и торнадо. Инженер-робототехник Финч смертельно болен и переживает, что после его смерти некому будет заботиться о его собаке, поэтому собирает для этой цели человекоподобного робота. Узнав, что на местность надвигается супербуря, в которой он не выживет, Финч с собакой и роботами отправляется в Сан-Франциско.
Приятного просмотра!
10🔥6
Что выведет код с изображения? №37
Anonymous Quiz
14%
90.0 170.0 135.38
16%
90.0 171.0 128.25
43%
90.0 171.0 243.68
16%
90 180 255
11%
TypeError
🤯5🔥1
Сегодня разбираем задачу на работу с аргументами функции. Несмотря на то, что задача не сложная, верно ответили всего 39% из 28 участников.
Задача:
У вас есть функция, которая принимает сумму заказа и разные скидки, которые могут быть применены. Нужно корректно рассчитать итоговую сумму с учётом всех скидок.
Код задачи:
Разбор задачи:
Начнём с определения функции
-
-
Что значит звёздочка
Далее, функция последовательно применяет каждую из скидок. Она проходит по списку переданных скидок и уменьшает
После того как все скидки применены, результат округляется до двух знаков после запятой:
Теперь разберём, что происходит при вызовах функции для каждого заказа:
1. Первый заказ:
На сумму 100 применяем скидку 10% (0.1). Вычисляем:
Значение
2. Второй заказ:
Здесь на сумму 200 применяются две скидки — сначала 5%, потом 10%. Рассчитаем шаг за шагом:
- Применяем 5%:
- Применяем 10%:
Значение
3. Третий заказ:
Здесь применяются три скидки: 5%, 10% и снова 5%. Рассчитаем шаг за шагом:
- Применяем 5%:
- Применяем 10%:
- Применяем ещё 5%:
Значение
Итог:
Мы получили следующие результаты:
- Первый заказ:
- Второй заказ:
- Третий заказ:
Все числа вычислены корректно, и программа успешно выводит три значения.
Правильный ответ — 3. 90.0 171.0 243.68.
Передача позиционных аргументов:
Стоит отметить, что ключевой элемент задачи — это использование звёздочки
Задача:
У вас есть функция, которая принимает сумму заказа и разные скидки, которые могут быть применены. Нужно корректно рассчитать итоговую сумму с учётом всех скидок.
Код задачи:
def apply_discounts(total, *discounts):
for discount in discounts:
total -= total * discount
return round(total, 2)
order1 = apply_discounts(100, 0.1)
order2 = apply_discounts(200, 0.05, 0.1)
order3 = apply_discounts(300, 0.05, 0.1, 0.05)
print(order1, order2, order3)
Разбор задачи:
Начнём с определения функции
apply_discounts, которая принимает два типа аргументов:-
total — это сумма заказа.-
*discounts — здесь используется синтаксис *, позволяющий передавать произвольное количество скидок в виде кортежа.def apply_discounts(total, *discounts):
Что значит звёздочка
* перед аргументом? Это означает, что в функцию можно передать любое количество дополнительных аргументов после основного — они все будут собраны в кортеж. Например, в вызове apply_discounts(200, 0.05, 0.1), значения 0.05 и 0.1 будут упакованы в кортеж discounts = (0.05, 0.1).Далее, функция последовательно применяет каждую из скидок. Она проходит по списку переданных скидок и уменьшает
total на определённый процент:for discount in discounts:
total -= total * discount
После того как все скидки применены, результат округляется до двух знаков после запятой:
return round(total, 2)
Теперь разберём, что происходит при вызовах функции для каждого заказа:
1. Первый заказ:
order1 = apply_discounts(100, 0.1)
На сумму 100 применяем скидку 10% (0.1). Вычисляем:
100 - 100 * 0.1 = 90.0
Значение
order1 = 90.0.2. Второй заказ:
order2 = apply_discounts(200, 0.05, 0.1)
Здесь на сумму 200 применяются две скидки — сначала 5%, потом 10%. Рассчитаем шаг за шагом:
- Применяем 5%:
200 - 200 * 0.05 = 190.0
- Применяем 10%:
190 - 190 * 0.1 = 171.0
Значение
order2 = 171.0.3. Третий заказ:
order3 = apply_discounts(300, 0.05, 0.1, 0.05)
Здесь применяются три скидки: 5%, 10% и снова 5%. Рассчитаем шаг за шагом:
- Применяем 5%:
300 - 300 * 0.05 = 285.0
- Применяем 10%:
285 - 285 * 0.1 = 256.5
- Применяем ещё 5%:
256.5 - 256.5 * 0.05 = 243.68
Значение
order3 = 243.68.Итог:
Мы получили следующие результаты:
- Первый заказ:
90.0- Второй заказ:
171.0- Третий заказ:
243.68Все числа вычислены корректно, и программа успешно выводит три значения.
Правильный ответ — 3. 90.0 171.0 243.68.
Передача позиционных аргументов:
Стоит отметить, что ключевой элемент задачи — это использование звёздочки
*, которая позволяет передавать любое количество скидок в функцию. Это даёт гибкость: вместо создания множества функций для разных наборов скидок, мы можем собрать их все в одном месте и обработать с помощью цикла.🔥8
Привет, друзья!
Прошла еще одна неделя, и у нас накопилось много интересных материалов: статьи, новости и полезные советы. Вот наш недельный дайджест:
Понедельник (09.09.2024) Дайджест за предыдущую неделю
Вторник (10.09.2024) Обновление библиотеки - AIOgram 3.12 и 3.13
Среда (11.09.2024) Сравнение hash map С и C++ с dict Python (часть 2)
Четверг (12.09.2024)
Пятница (13.09.2024) Telegram Stars: Подробная инструкция по выводу
Пятничный кинорелакс
Суббота (14.09.2024) Задача
Воскресенье (15.09.2024) Текстовый разбор задачи
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе!
С уважением,
Команда канала "Код на салфетке".
#дайджест #материалы #новости #код_на_салфетке
Прошла еще одна неделя, и у нас накопилось много интересных материалов: статьи, новости и полезные советы. Вот наш недельный дайджест:
Понедельник (09.09.2024) Дайджест за предыдущую неделю
Вторник (10.09.2024) Обновление библиотеки - AIOgram 3.12 и 3.13
Среда (11.09.2024) Сравнение hash map С и C++ с dict Python (часть 2)
Четверг (12.09.2024)
Пятница (13.09.2024) Telegram Stars: Подробная инструкция по выводу
Пятничный кинорелакс
Суббота (14.09.2024) Задача
Воскресенье (15.09.2024) Текстовый разбор задачи
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе!
С уважением,
Команда канала "Код на салфетке".
#дайджест #материалы #новости #код_на_салфетке
10🔥4