Список заданий по модулям

Создайте новый файл, язык Python.

Скопируйте код ниже в файл.

Запустите программу, посмотрите, что она выводит в консоль.

Теперь измените программу, чтобы она выводила фразу ‘Привет Мир!’:

print("Hello World!")

Для сдачи заданий необходимо войти под своим именем

Найти ошибки в работе с print и исправьте их.

Print('Hello World')
print 'Hello World'
print('Hello World")
print (Hello)
print('Привет',')
print 'и я умнее всех')

Для сдачи заданий необходимо войти под своим именем

Создайте переменную, присвойте ей текст «Моя первая переменная!» и выведите значение переменной на экран. Для этого:

1. назовите переменную, используйте только буквы латинского алфавита. Пример имени: first.

2. после этого сделайте присваивание (знак = ).

3. вставьте нужный текст в кавычках

4. вставьте команду вывода переменной на экран в следующей строке программы. Кавычки здесь не нужны.

5. Запустите программу и убедитесь, что в консоль выводится сообщение: «Моя первая переменная!»

Для сдачи заданий необходимо войти под своим именем

Продолжая предыдущую программу, создайте еще одну переменную с другим именем (например, second), присвойте ей значение «И не последняя!» и выведете её на экран.

В результате работы программы в консоли должно отобразиться две строки: «Моя первая переменная!» и «И не последняя!».

Для сдачи заданий необходимо войти под своим именем

Исправьте программу ниже, чтобы она выводила следующий текст:

Меня зовут
Иван
Мой любимый цвет:
Зеленый
Мой любимый вид спорта:
Бег

Программа для исправления:

my color@ = 'Зеленый'
*sport& = 'Бег'
print('Меня зовут')
print(name)
name = 'Иван'
print('Мой любимый цвет:')
print(my_color)
print('Мой любимый вид спорта:')
print(sport)
 

Для сдачи заданий необходимо войти под своим именем

Повторите действия из урока и создайте программу, которая запрашивает у пользователя имя и

затем выводит для него приветствие.

Для этого:

- Создайте переменную и присвойте ей команду input().

Внутри скобок команды напишите приглашение, например: «Введите имя».

- В следующих двух строках напишите вывод приветствия и переменной на экран.

- Запустите программу, введите в консоль имя и нажмите Enter.

- Убедитесь, что программа работает верно.

Для сдачи заданий необходимо войти под своим именем

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

Ввдите первое имя: Вова
Привет,
Вова
Введите второе имя: Саша
Привет,
Саша

Располагать операции мы можем по-разному, например первые два принта мы могли бы вызвать после первого инпута,

перед вторым.

Но лучше стараться разделять визуально код по его назначению, тут у нас ввод данных записан отдельно, а

использование этого ввода - вывод данных, записан отдельно. Разделены они пустой строкой.

Для сдачи заданий необходимо войти под своим именем

Ниже приведена программа, которая должна запрашивать фамилию пользователя и выводить её на экран.

Но её написали неправильно. Исправьте все ошибки. Убедитесь, что программа работает.

sur name = input('Введите фамилию: ')
print('Ваша фамилия - ')
print('sur name')

Для сдачи заданий необходимо войти под своим именем

Найдите в программе необъявленную переменную и объявите её, присвоив ей значение ‘Кот’.

client = ‘Петя’
print(client)
print(‘ и ’)
print(pet)

Для сдачи заданий необходимо войти под своим именем

Исправьте программу так, чтобы в результате её выполнения на экран в одну строку выводился текст: Red Blue Green RedGreenBlue Blue GreenBlue.

r = 'Red'
g = 'Green'
b = 'Blue'
print(b, r, g, b, g + b, b + b + g, b)

Для сдачи заданий необходимо войти под своим именем

Создайте две переменные с именами «Первое животное» и «Второе животное» на английском языке (первый – first, второй – second, животное – animal). Запишите в первую переменную слово «Заяц», а во вторую — «Черепаха». Используя эти переменные, выведите на экран текст «Заяц спит, Черепаха идёт» в одну строку.

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая запрашивает некоторые данные у пользователя, затем выведите их на экран, как показано ниже. Данные должны лежать в разных переменных.

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

Пример выполнения программы:

Введите имя: Роман
Введите фамилию: Романов
Введите город проживания: Красноярск
===========
Вас зовут Роман Романов
Вы живете в городе Красноярск

Для сдачи заданий необходимо войти под своим именем

Исправьте программу и допишите необходимые команды для получения нужного результата. Будьте внимательны при исправлении и помните о правилах названия переменных.

Программа:

first name = input('Введите имя пользователя: ')
grииting = 'Утро доброе'
print(greeting, first name)
intro = "К сожалению, у Вас нет доступа к системе."
info == "Пожалуйста, обратитесь к системному администратору."

Ожидаемый результат:

Введите имя пользователя: Роман
Привет, Роман
К сожалению, у Вас нет доступа к системе.
Пожалуйста, обратитесь к системному администратору.

Для сдачи заданий необходимо войти под своим именем

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

Для сдачи заданий необходимо войти под своим именем

К каждому файлу на компьютере можно указать путь. Выглядит он примерно так:

c:/users/docs/folder/new_file.txt

Напишите программу, которая запрашивает у пользователя его имя и имя файла (переменные user и new_file соответственно). Использую операцию конкатенации, выведите путь к файлу на экран. Пример:

Введите имя пользователя: Sasha
Введите имя файла: text
Путь к файлу: c:/Sasha/docs/folder/text.txt

Для сдачи заданий необходимо войти под своим именем

Дана программа, которая запрашивает у пользователя два слова, а затем выводит их на экран два раза. Скопируйте эту программу в редактор и проверьте.

a = input('Введите первое слово: ')
b = input('Введите второе слово: ')
print(a, b)
# стереть эту строчку и вставить свой код здесь
print(a, b)

Задача:

поменять значения переменных a и b местами. Изменять, удалять, менять местами первую, вторую, третью и последнюю строчки нельзя. Но в четвёртую строку можно вставлять сколько угодно кода, не трогая последний принт.

Для сдачи заданий необходимо войти под своим именем

Третьекласснику Вове задали домашнее задание по математике, и папа-программист сказал, что вечером обязательно проверит его. Но Вове лень считать, поэтому он пишет программы на Python.

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

- 6 умножить на 39;

- 3 в степени 5;

- Минус 8 разделить на минус 4;

- 10 разделить на 2 и прибавить 6.

Для сдачи заданий необходимо войти под своим именем

Венера, преподаватель Максима по астрологии и нумерологии, не верит, что математические операции работают так, как описывает математика. Напишите для Максима программу, которая демонстрировала бы работу основных операций, чтобы убедить Венеру.

Создайте три переменных, каждой из них присвойте числа: 5, 4, 2 (кстати, не забывайте про множественное присваивание).

Затем выведите результат сложения, вычитания, умножения, деления и возведения в степень всех трёх переменных в отдельных строчках. Результат с 5, 4 и 2 должен выглядеть так:

Сложение: 11
Вычитание: -1
Умножение: 40
Деление: 0.625
Возведение в степень: 152587890625

Для сдачи заданий необходимо войти под своим именем

Проверим школьное правило «На ноль делить нельзя». Напишите программу, которая выводит результат деления числа (например 65) на ноль. Какой будет ответ?

*Тизер к заданию*

Правильный ответ: деление на ноль в python порождает ошибку ZeroDivisionError, это означает, что на ноль делить нельзя. Однако в будущем мы узнаем, что делить на ноль всё-таки можно — и даже получать бесконечность, но это уже совсем другая история

Для сдачи заданий необходимо войти под своим именем

Маша проводит исследования корреляции размеров фруктов в зависимости от их расположения на участке. Она взяла яблоко, грушу и персик диаметрами 8, 5 и 3 сантиметра соответственно и вычислила коэффициент зависимости по своей формуле.

Реализуйте программу, которая вычисляет значение выражения

    a
 ------- - a
  b + c 
-------------
      a

где a, b и c — переменные, в которых лежат числа 8, 5 и 3 соответственно. Выведите результат на экран.

Для сдачи заданий необходимо войти под своим именем

Для расчёта эффективности потраченных денег на метро и автобус Никита использует следующую формулу:

 6 + (10 - bus)²                  132
----------------------    +   ------------
    metro + 1                    2 + bus

В общем, не спрашивайте. Он написал программу для подсчёта формулы, но она почему-то не работает.

bus = 5
metro = 3
result = (6 + 10 - bus * 2) / (bus + 1) + 132 / 2 + metro
print(result)

Скопируйте программу в редактор, исправьте выражение и убедитесь в правильности её работы. Правильный ответ: 26.607142857142858

Для сдачи заданий необходимо войти под своим именем

Говорят, если в 22:31:49 посчитать на Python значение определённого выражения, то спустя год станешь очень хорошим программистом. Давайте проверим это утверждение.

1. Создайте переменную и запишите в неё следующее математическое выражение:

 -3 + (8²  - 12) * (4³)³
-------------------------
          2 * 18

2. Затем выведите значение переменной на экран. Ответ должен быть равен 378652.3611111111.

3. Будьте внимательны со скобками, особенно с делением числителя на знаменатель.

*Подсказка*

- Приоритет операций в python не отличается от приоритета, принятого в алгебре.

- Операции выполняются в следующем порядке

- Операции в скобках (a + b)

- Операции возведения в степень a**b

- Операции умножения и деления a * b

- Операции сложения и вычитания a + b - c

- Операции унарных плюсов и минусов -4

- При равенстве приоритетов операции выполняются слева направо.

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

Для этого можно отдельно вычислить числитель и отдельно знаменатель, а потом разделить числитель на знаменатель, либо поместить числитель и знаменатель в скобки.

Для сдачи заданий необходимо войти под своим именем

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

Перед тем как построить график функции, Лена сначала расставляет на нём точки. У каждой точки есть координаты: X и Y.

Лене также нужно найти сумму этих координат, чтобы убедиться в их правильном расположении.

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

* Используйте функцию int() для преобразования входящих данных из текста в число. Для этого внутри скобок функции int вставьте команду input.

Результат должен быть таким:

Введите первое число: 9
Введите второе число: 5
Сумма: 14

Для сдачи заданий необходимо войти под своим именем

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

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

Выражение:

             ab             a³
2 (c + 5 + ------) (d - 2 ------) - 10
             4b             30

Результат:

Введите первое число: 1
Введите второе число: 2
Введите третье число: 3
Введите четвертое число: 4
Ответ: 54.89999999999999 

Для сдачи заданий необходимо войти под своим именем

Секретарь заполняла данные по категории сотрудников для расчёта множителя к зарплате и, не проверив правильность записи,

случайно нажала «Подтвердить», после чего данные со значениями заблокировались. Однако осталась возможность редактировать формулу.

Дана программа:

a = '2'
b = '5'
c = '3'
num = 6 ** a + (7 - b) * c
print(num)

Cкопируйте программу в свой файл и исправьте в ней только четвёртую строку, используя только функцию int().

Запустите и проверьте работу программы. Результат должен быть равен 42.

Для сдачи заданий необходимо войти под своим именем

Нет заданий

Маше для сдачи домашней работы нужно написать программу для расчёта

экономической формулы. Как записать саму формулу в программу, она не

знает, у неё есть только начальные значения. Поэтому Маша решила

просто заплатить Егору, чтобы тот написал её быстрее.

Дана программа:

a = 8
b = 10
c = 12
d = 18

Продолжите программу: переведите выражение с математического языка на

язык Python, запишите его в переменную res и выведите результат.

Выражение:

 (-3 + a²) * b - 2³
-------------------------
       c - 2 * d

Для сдачи заданий необходимо войти под своим именем

Наде дали задание сформировать финансовый отчёт за последние 20 лет по полугодиям. Нужно сумму дохода первых двух кварталов поделить на сумму последних двух кварталов, чтобы понять динамику роста или падения дохода. И так за каждый год. Надя решила, что быстрее будет написать простую программу, которая сделает всё за неё.

Запросите у пользователя четыре числа.

Отдельно сложите два первых и отдельно — два вторых.

Разделите первую сумму на вторую.

Выведите результат на экран.

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая получает от пользователя число и выводит

на экран два ответа — следующее и предыдущее числа.

Результат:

Введите число: 5
После числа 5 идёт число 6
До числа 5 идёт число 4

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая запрашивает у пользователя длины двух

сторон в прямоугольнике и выводит его площадь.

Советы и рекомендации:

- не стоит применять целочисленное деление, это не совсем корректно.

- обратите внимание на написание переменной S: её нужно писать

s — со строчной.

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая получает на вход число n (количество минут), затем считает, сколько это будет в часах и сколько минут останется, и выводит на экран эти два результата.

Для сдачи заданий необходимо войти под своим именем

Невнимательный бухгалтер Антон складывает числа быстро, но иногда

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

складывала только два последних разряда.

Реализуйте программу, которая запрашивает два числа у пользователя.

После этого у каждого числа возьмите две последние цифры.

Получившиеся два числа сложите и выведите на экран.

Пример:

Введите первое число: 111
Введите второе число: 904
Сумма: 15

Для сдачи заданий необходимо войти под своим именем

Вася решил потренироваться перед марафоном и покататься вокруг

Москвы на скорость. Длина дороги — 115 километров. Вася стартует

с нулевого километра и едет со скоростью v километров в час. На

какой отметке он остановится через t часов?

Реализуйте программу, которая спрашивает у пользователя v и t и

выводит целое число от 0 до 114 — номер километра, на котором

остановится Вася. Учтите, что он может прокатиться больше одного

круга.

Пример

Введите скорость (км/ч): 100
Введите время (ч): 2
Ответ: 85 км
Пройденное расстояние составит 200 км, значит Вася будет на отметке 85 км.

Для сдачи заданий необходимо войти под своим именем

Реализуйте программу, которая получает на вход четырёхзначное число и

выводит на экран каждую его цифру отдельно (в одну строчку либо

цифру в новой строчке). Само число при этом изменять нельзя, то есть

нужно обойтись без переприсваивания. Однако можно использовать

сколько угодно переменных.

Для сдачи заданий необходимо войти под своим именем

Реализуйте программу, которая получает на вход четырёхзначное число

и выводит его на экран в обратном порядке. Само число при этом

изменять нельзя, то есть нужно обойтись без переприсваивания.

Однако можно использовать сколько угодно переменных.

Пример ввода: 1234.
Пример вывода: 4321.

Для сдачи заданий необходимо войти под своим именем

Мы умеем менять местами строковые переменные и знаем, что в

переменных, кроме строк, можно хранить и числа. Напишите программу,

которая меняла бы значения двух переменных местами, но без

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

мы разбирали, а именно — без конструкции

a, b = b, a

В переменные будут вводиться только числа.

a = int(input('Введите первое число: '))
b = int(input('Введите второе число: '))
print(a, b)
# стереть эту строчку и вставить свой код здесь
print(a, b)

Изменять, удалять, менять местами 1-ю, 2-ю, 3-ю и последнюю

строчки нельзя.

Но между 3-ей и 4-ой строкой можно вставлять сколько угодно строк

кода, не трогая последний принт

Дополнительно

Реализуйте четыре таких способа.

Подсказка: в программировании есть такая вещь как булева алгебра

или битовые операции, а именно:

* & - И

* | - ИЛИ

* ~ - НЕ

* ^ - ИСКЛЮЧАЮЩЕЕ ИЛИ

Для сдачи заданий необходимо войти под своим именем

На предприятии произошло ЧП: что-то случилось с программным обеспечением, и производство встало.

Когда стали разбираться, нашли битый кусок программы:

a = 6
b = ?
c = 0
if ? < ?
c = a * b
print(c)

По задумке, здесь проверялись переменные а и b и в конце должен был выводиться ответ 12.

Скопируйте программу в отдельный файл, исправьте ошибки и вставьте необходимые значения ТОЛЬКО ВМЕСТО ЗНАКОВ ВОПРОСА. Проверьте работу программы.

Для сдачи заданий необходимо войти под своим именем

Повторите задачу, разобранную в лекции, и немного измените её.

Только в этот раз мы точно знаем, какое хотим мороженое, и что стоит оно 60 рублей. А вот сколько нам дадут денег вводит пользователь. Дополнительно посчитайте и выведите на экран, сколько будет сдача, если хватает денег.

Для сдачи заданий необходимо войти под своим именем

Отец пообещал сыну отпустить его гулять, если тот с первого раза угадает число от 1 до 10, которое загадал папа. В противном случае сыну придётся весь день делать уроки.

Напишите программу из лекции, которая запрашивает число у пользователя (у сына), затем сравнивает его с другим числом (которое отец загадал), и если они равны, то выводит сообщение «Угадал».

В конце вывести фразу: «Конец игры».

Пример 1:

Какое число я загадал? 5
Угадал!
Конец игры

Пример 2:

Какое число я загадал? 6
Конец игры

Попробуйте решить задачу сначала с помощью одного знака сравнения (==), а затем с помощью другого (!=).

Во втором случае сообщение измените на «Не угадал».

Для сдачи заданий необходимо войти под своим именем

В квартире за окном стоит датчик погоды, который определяет, идёт дождь или нет. Если пошёл дождь, датчик оповещает владельцев сообщением: «Пошёл дождь. Возьмите зонтик!»

Напишите программу, которая получает на вход число 0 или 1. Единица означает, что дождь идёт. Если дождь идёт, то выводите на экран сообщение: «Пошёл дождь. Возьмите зонтик!»

#### Пример 1:

На улице идёт дождь? 1
Пошёл дождь. Возьмите зонтик!

#### Пример 2:

На улице идёт дождь? 0

Для сдачи заданий необходимо войти под своим именем

Степан хочет поступить на бюджет в престижный университет, но для этого ему нужно хорошо сдать три экзамена и набрать как минимум 270 баллов.

Напишите программу, которая запрашивает у пользователя результаты ЕГЭ по трём экзаменам и проверяет, поступил он на бюджет или нет. Выведите соответствующее сообщение.

#### Пример 1:

Введите количество баллов по русскому языку: 90
Введите количество баллов по математике: 90
Введите количество баллов по информатике: 90

Поздравляю, ты поступил на бюджет!

#### Пример 2:

Введите количество баллов по русскому языку: 100
Введите количество баллов по математике: 50
Введите количество баллов по информатике: 70

К сожалению, ты не прошёл на бюджет.

Для сдачи заданий необходимо войти под своим именем

Стоматолог посоветовал Маше использовать зубную нить каждый чётный день. Чтобы не забывать, Маша написала код, который в случае чего напоминает ей о совете стоматолога.

Напишите программу, которая проверяет, чётное ли число ввёл пользователь, и выводит соответствующее сообщение.

Подсказка: для проверки чётности используйте оператор %.

Для сдачи заданий необходимо войти под своим именем

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

Напишите программу, которая запрашивает три стоимости товара и вычисляет сумму чека. Если сумма чека превышает 10 000 рублей, нужно вычесть из этой суммы скидку 10% (умножить на 10, разделить на 100). В конце вывести итоговую сумму на экран.

Для сдачи заданий необходимо войти под своим именем

Математик Саша пишет программу, которая должна строить график функции y = |x|. Для этого ему нужно найти модуль очередного числа x, то есть если число x отрицательное, то перевести его в положительное.

Напишите программу, которая выводит на экран модуль введённого числа.

#### Пример:

Ввели 5, ответ 5
Ввели 7, ответ 7

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

Для сдачи заданий необходимо войти под своим именем

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

Напишите программу. На вход в программу подаётся два числа. Если первое число больше либо равно второму, нужно вывести на экран их разность и отдельной строкой фразу: «Костя платит». В противном случае вывести их сумму и отдельной строкой — фразу: «Владелец платит». Также последней строкой в результате нужно вывести на экран фразу: «Игра окончена».

#### Пример:

Кубик Кости: 3
Кубик владельца: 4
Сумма: 7
Владелец платит
Игра окончена

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

Для сдачи заданий необходимо войти под своим именем

Пользователи банкомата хотят снимать деньги. Но банкомат выдаёт только купюры по 100 рублей.

Напишите программу, которая проверяет допустимость денежной суммы, которую ввёл пользователь.

#### Пример:

Введите сумму, которую хотите снять: 250
Такую сумму снять невозможно. Обратитесь в другой банкомат.

Для сдачи заданий необходимо войти под своим именем

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

Зарплата = рабочее время * 50

А ещё с зарплаты удерживается налог в 13% (можно умножить зарплату на 0,87).

Он хочет понять, сколько часов нужно отработать, чтобы хватило на погашение кредита и еду.

Напишите программу, которая запрашивает у пользователя три числа: количество отработанных часов, остаток по кредиту и количество денег на еду. После этого рассчитывается зарплата по формуле, и если зарплата больше либо равна денежной сумме, которая требуется на кредит и еду, то выводится сообщение: «Часов хватает. Можно отдохнуть», в противном случае: «Часов не хватает. Придётся работать!».

Пример:

Введите отработанные часы: 80
Введите остаток по кредиту: 1000
Введите траты на еду: 5000
Часов не хватает. Придётся работать!

Для сдачи заданий необходимо войти под своим именем

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

Напишите программу, которая получает на вход от пользователя два числа: трёхзначное число пробега и число дня, затем находит сумму цифр первого числа и, если эта сумма больше числа дня, выводит сообщение «Сброс» и сбрасывает пробег до нуля. В противном случае выводится: «Сегодня не сломался». В конце также выводится сам пробег.

#### Пример 1:

Введите пробег: 123
Введите сегодняшнее число: 5
Сброс.
Пробег: 0

#### Пример 2:

Введите пробег: 123
Введите сегодняшнее число: 10
Сегодня не сломался.
Пробег: 123

Для сдачи заданий необходимо войти под своим именем

Пользователь вводит три числа.

Напишите программу, которая выводит на экран максимальное из этих трёх чисел (все числа разные). Используйте дополнительные переменные, если нужно.

Для сдачи заданий необходимо войти под своим именем

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

никто из нас в них не разбирается, всё что нам нужно — чтобы велосипед не был устаревшим и чтоб скоростей на нём было побольше,

а сколько он стоит — пока неважно. Чтобы не искать велосипед на сайте вручную, мы хотим написать программу,

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

#

Используя один из логических операторов (and, or), напишите программу из лекции, которая запрашивает год выпуска велосипеда

и количество скоростей на нём и выводит на экран сообщение о том, подходит этот велик или нет. Год выпуска — не старше 2018-го,

количество скоростей — не менее 21.

Для сдачи заданий необходимо войти под своим именем

Илья хочет в лучший вуз страны, а для этого нужно не только хорошо сдать экзамены (балл должен быть больше 280), но и иметь золотую медаль.

Напишите программу, которая запрашивает у пользователя два числа: результат экзаменов и наличие золотой медали (0 — нет медали, 1 — медаль есть), а затем проверяет, поступил ли Илья в вуз. Выведите соответствующее сообщение.

Пример 1:

Сколько баллов набрал? 290
Есть медаль? 1
Поздравляем! Ты поступил!

Пример 2:

Сколько баллов набрал? 269
Есть медаль? 1
К сожалению, ты не прошёл в наш университет.

Для сдачи заданий необходимо войти под своим именем

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

где температура скачет в промежутке от 0 до 100 градусов.

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

Напишите программу, которая запрашивает у пользователя температуру, и,

если она меньше нуля или больше 100, то выводится сообщение об опасности.

Для сдачи заданий необходимо войти под своим именем

Андрей любит играть в компьютерные игры. В один прекрасный день у него появилась классная идея для сюжета своей игры. Чтобы воплотить её в жизнь, он начал изучать программирование и геймдизайн. Начал он с главного героя и его системы прокачки.

Напишите программу, которая определяет уровень персонажа в компьютерной игре. Пользователь вводит число «очков опыта», а программа вычисляет уровень. Новый уровень даётся при достижении 1000, 2500 и 5000 «очков опыта». Начальный уровень равен единице.

#### Пример 1:

Введите количество опыта: 6000
Ваш уровень: 4

#### Пример 2:

Введите количество опыта: 2000
Ваш уровень: 2

Для сдачи заданий необходимо войти под своим именем

У нас уже было задание на нахождение максимума из трёх чисел с помощью дополнительной переменной. Теперь, когда вы знаете намного больше, вы можете оптимизировать программу, не тратя память компьютера на лишние переменные.

Напишите программу, которая находит максимум из трёх чисел, не используя дополнительные переменные.

Для сдачи заданий необходимо войти под своим именем

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

Напишите программу, которая получает от пользователя число X и вычисляет значение функции Y по следующей схеме:

y = x − 12, если x > 0,
y = 5, если x = 0
y = x², если x < 0

или:

для X > 0, Y = X − 12
для X = 0,  Y = 5
для X < 0, Y = X²

#### Пример 1:

Введите икс: 0
Игрек равен 5

#### Пример 2:

Введите икс: −6
Игрек равен 36

Для сдачи заданий необходимо войти под своим именем

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

Напишите программу, которая получает на вход место студента в списке и его балл, а затем выводит соответствующие сообщения о поступлении и получении стипендии.

#### Пример 1:

Введите место в списке поступающих: 3
Введите количество баллов за экзамены: 295
Поздравляем, вы поступили!
Бонусом вам будет начисляться стипендия.

#### Пример 2:

Введите место в списке поступающих: 3
Введите количество баллов за экзамены: 270
Поздравляем, вы поступили!
Но вам не хватило баллов для стипендии.

#### Пример 3:

Введите место в списке поступающих: 11
К сожалению, вы не поступили.

Для сдачи заданий необходимо войти под своим именем

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

rating = int(input('Что получил по математике? '))
if rating == 2:
 print('Плохо. Марш учиться!')
if rating == 3:
 print('Плохо. Марш учиться!')
if rating == 4:
 print('Молодец! Можешь отдохнуть.')
if rating == 5:
 print('Молодец! Можешь отдохнуть.')

Сын после того, как «сообщил» свою оценку, посмотрел на код программы и понял, что её можно улучшить, и даже рассказал папе, как это сделать, за что получил безграничное уважение отца.

Скопируйте программу в редактор и оптимизируйте:

* При плохой оценке (2 или 3) выводится сообщение: «Плохо. Марш учиться!»

* При хорошей оценке (4 или 5) выводится сообщение: «Молодец! Можешь отдохнуть».

* В программе не должно быть повторяющихся строк.

Для сдачи заданий необходимо войти под своим именем

Вы участвуете в разработке приложения для математиков, где можно будет делать всё, начиная от простейших вычислений и заканчивая построением сложных графиков. В этом приложении реализована установка диапазона чисел, и вам необходимо написать этакую «защиту от дурака».

Напишите программу, которая получает на вход число и проверяет, двузначное оно или нет. Выведите соответствующее сообщение. Числа −42 и −99 тоже считаются двузначными. Сделайте это, используя не более одного оператора if-elsе. Не используйте elif.

Для сдачи заданий необходимо войти под своим именем

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

Даны три целых числа. Определите, сколько среди них совпадающих. Программа должна вывести одно из чисел: 3 (если все совпадают), 2 (если два совпадают) или 0 (если все числа различны).

Для сдачи заданий необходимо войти под своим именем

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

Взять квартиру попросторнее (не менее 100 м2), но стоимостью не более 10 млн.

Немного расширить круг поиска, то есть взять квартиру поменьше (от 80 м2), но и стоимостью не более 7 млн.

Напишите программу, которая получает на вход стоимость квартиры и её площадь и выводит сообщение о том, подходит она или нет.

Для сдачи заданий необходимо войти под своим именем

Вы уже писали программу, вычисляющую сумму налога по прогрессивной шкале в зависимости от полученного заработка: 13% на доход до 10 000, 20% на доход от 10 000 до 50 000, 30% на доход выше 50 000.

Однако во многих странах, использующих такую шкалу, эта сумма вычисляется более сложным способом: налоговая ставка 30% на доход выше 50 000 означает, что 30% уплачивается не со всей суммы, а лишь с той её части, которая превосходит 50 000. Аналогично ставка 20% на доход от 10 000 до 50 000 обязывает уплатить 20% лишь с той части суммы, которая превосходит 10 000, но не превосходит 50 000.

Так, например, с дохода 100 000 придётся заплатить такой налог:

30% × (100 000 − 50 000) + 20% × (50 000 − 10 000) + 13% × 10 000 = 15 000 + 8 000 + 1 300 = 24 300

А с дохода 30 000 — такой: 20% × (30 000 − 10 000) + 13% × 10 000 = 4 000 + 1 300 = 5 300

Напишите программу, которая спрашивает у пользователя его доход и высчитывает сумму налога для него по вышеописанным правилам.

Для сдачи заданий необходимо войти под своим именем

Почтовое отделение открывается в 08:00 и закрывается в 22:00. С 14:00 до 15:00 все сотрудники уходят на обед, а в 10:00 и 18:00 приезжают машины с посылками, и тогда все сотрудники на два часа заняты их разгрузкой. Во время обеда, разумеется, посылки никто не выдаёт, как и в моменты, когда разгружаются машины.

Напишите программу, которая получает на вход время в часах — число от 0 до 23 — и пишет, можно ли в этот час получить посылку. Используйте только один условный оператор if-else, без elif и прочего. Решите задание двумя способами:

При выполнении условия выводится сообщение: «Можно получить посылку».

При выполнении условия выводится сообщение: «Посылку получить нельзя».

Обратите внимание на количество условий и постарайтесь сократить их. Не используйте перечисление конкретных часов вида a == 1 and a == 2...

Для сдачи заданий необходимо войти под своим именем

Даша начала проходить циклы. Она написала программу, которая просто должна считать сумму чисел до тех пор, пока мы не ввели 0, но что-то пошло не так.

number = int(input('Введите число: '))
While number <= 0:
summ += number
number = int(input('Введите число: ''))
print(Summ)

Скопируйте программу в отдельный файл, исправьте её и убедитесь в правильности работы программы.

Для сдачи заданий необходимо войти под своим именем

Когда мы включаем ноутбук, он просит нас ввести пароль. Если пароль оказался неверным, нам сообщают об этом и снова просят ввести пароль. И так до тех пор, пока мы не введём правильный пароль, — тогда ноутбук даст доступ в учётную запись, и программа завершится.

Напишите программу, которая запрашивает у пользователя пароль до тех пор, пока он не введёт верный (верным будет считаться пароль 235).

Пример:

Введите пароль: 100000
Неверный пароль!
Попробуйте ещё раз: 500
Неверный пароль!
Попробуйте ещё раз: 235
Пароль верный! Добро пожаловать.

Для сдачи заданий необходимо войти под своим именем

Кирилл копит себе на хорошую новенькую машину и для этого он каждый раз откладывает в копилку определённую сумму с зарплаты.

Напишите программу, которая спрашивает у пользователя «Сколько отложить денег?» до тех пор, пока сумма в копилке не превысит или не станет равна 500 000 рублей.

Для сдачи заданий необходимо войти под своим именем

Представим, что у нас далёкое будущее и мы можем заниматься спортом на планетах со странными перепадами температур.

Спортсмен бегает по стадиону до тех пор, пока температура на улице больше 15 градусов. Он пробегает 20 метров,

затем температура падает на два градуса, и, если уже в этот момент она стала меньше либо равна 15 градусам,

спорт сразу заканчивается. Если же всё в порядке, то он проходит пешком ещё 10 метров. Затем всё это повторяется.

Напишите программу, которая спрашивает у пользователя, сколько на улице градусов, и, исходя из погоды,

считает количество пройденных по стадиону метров и выводит ответ на экран.

Для сдачи заданий необходимо войти под своим именем

Нам нужно расшифровать определённый код в виде одного большого числа. Для этого нужно посчитать сумму цифр справа налево.

Если мы встречаем в числе цифру 0 или 5, то выводим сообщение «Обнаружен разрыв» и заканчиваем считать сумму.

В конце программы на экран выводится сумма тех цифр, которые мы взяли.

Для сдачи заданий необходимо войти под своим именем

Костя опять за старое! Только теперь он играет в кубики более надёжно, то есть на какую-то фиксированную сумму.

И при этом пока что постоянно выигрывает! Однако по правилам это не мешает ему проиграть сразу всё.

Напишите программу, которая запрашивает у пользователя начальное количество денег и, пока оно меньше 10 000, запрашивает число, которое выпало на кубике (от 1 до 6). Если на кубике выпало 3, то выводится сообщение «Вы проиграли всё!», и деньги обнуляются. Если выпало другое число, к сумме прибавляется 500.

Пример 1:

 Введите стартовую сумму: 5000
 Сколько выпало на кубике? 4
 Выиграли 500 рублей!
 Сколько выпало на кубике? 5
 Выиграли 500 рублей!
 Сколько выпало на кубике? 3
 Вы проиграли всё!
 Игра закончена.
 Итого осталось: 0 рублей

Пример 2:

 Введите стартовую сумму: 9700
 Сколько выпало на кубике? 4
 Выиграли 500 рублей!
 Игра закончена.
 Итого осталось: 10200 рублей

\n - символ перехода на новую строку, его можно использовать чтобы перенести часть строки на новую строку при выводе в консоль.

Для сдачи заданий необходимо войти под своим именем

Петя писал таймер для телефона, но у него что-то пошло не так.

 count = 0
 While count <= 10
  if count == 0:
    print('Время вышло!')
  else:
    print(count)
    count -= 1

Скопируйте программу в редактор, исправьте ошибки и убедитесь, что на экран выводятся числа с 10 до 0 и сообщение «Время вышло!».

Напишите две программы: одну без break и вторую с break.

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая имитирует работу с приложением: программа спрашивает у пользователя «Продолжаем работать? 1/0: » до тех пор, пока пользователь не введёт 0, — после этого выводится сообщение: «Приложение закрывается…». В конце программы также выводится сообщение: «Работа завершена».

Для создания бесконечного цикла используйте while True.

Напишите две программы: одну без break и вторую с break.

Для сдачи заданий необходимо войти под своим именем

Дима написал программу-вирус специально для того, чтобы проучить своего друга-должника,

который никак не хочет возвращать скейтборд. Программа не даёт работать за компьютером и постоянно выводит на экран сообщение «Компьютер заблокирован. Вернёшь скейт — скажу код разблокировки!». Как только вводится правильный код, вирус удаляется.

Напишите такую же программу, которую написал Дима.

Пример:

Компьютер заблокирован. Вернёшь скейт — скажу код разблокировки!
Введите код: 1005
Компьютер заблокирован. Вернёшь скейт — скажу код разблокировки!
Введите код: 7777
Компьютер заблокирован. Вернёшь скейт — скажу код разблокировки!
Введите код: 0550
Код верный, завершаю работу...

Напишите две программы: одну без break и вторую с break.

Для сдачи заданий необходимо войти под своим именем

Нашему заказчику нужно, чтобы фраза «Я - программист!» выводилась на экран столько раз, сколько он сам этого захочет.

Напишите программу, которая запрашивает число — количество строчек с фразой «Я — программист!» - и столько же раз выводит на экран эту фразу. Для решения задачи используйте переменную-счётчик, которая увеличивается на единицу до тех пор, пока не будет введено нужное количество слов.

Для сдачи заданий необходимо войти под своим именем

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

В самом начале программа спрашивает, сколько раз ему напомнить, а затем нужное количество раз выводит: «Вы хотели не забыть о чём-то».

Для сдачи заданий необходимо войти под своим именем

Наши прекрасные родственники удачно сходили на рыбалку. Настолько, что ходили мешком перетаскивать рыбу с берега в машину целых n раз.

Каждый мешок они взвешивали на электронных весах (все мешки весили по-разному).

Напишите программу для весов, которая считает суммарный вес мешков и выводит его на экран.

Для сдачи заданий необходимо войти под своим именем

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

Напишите программу, которая возводит в третью степень каждое число от 1 до N и выводит результат на экран.

Для сдачи заданий необходимо войти под своим именем

Напишите робота для коллекторов. В самом начале он спрашивает имя должника и сумму долга, а затем начинает требовать у него погашения до тех пор, пока должник не введёт нужную сумму (равную сумме долга или больше). После погашения долга робот сообщает об этом пользователю и благодарит его.

Пример:

Василий, ваша задолженность составляет 100 рублей.
Сколько рублей вы внесёте прямо сейчас, чтобы её погасить? 50
Маловато, Василий. Давайте ещё раз.
Сколько рублей вы внесёте прямо сейчас, чтобы её погасить? 90
Маловато, Василий. Давайте ещё раз.
Сколько рублей вы внесёте прямо сейчас, чтобы её погасить? 110
Отлично, Василий! Вы погасили долг. Спасибо!

Для сдачи заданий необходимо войти под своим именем

У неудачливого бухгалтера всё опять идёт наперекосяк: ему приносят такие большие счета, что числа не помещаются на бумаге.

Напишите программу, которая считала бы для него, сколько цифр во вводимом числе. Обратите внимание, что число 0 имеет одну цифру.

Используется цикл while.

Решение не использует работу со строками и операции над ними.

Для сдачи заданий необходимо войти под своим именем

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

Напишите программу, которая находит количество положительных и количество отрицательных чисел в последовательности. Последовательность заканчивается на числе 0.

Пример:

Введите число: −4
Введите число: −90
Введите число: 6
Введите число: 0
Кол-во положительных чисел: 1
Кол-во отрицательных чисел: 2

Для сдачи заданий необходимо войти под своим именем

Максим программирует целый день на работе и вечером идёт домой. Каждый час начальство кидает ему несколько задач, которые нужно решить до следующего рабочего часа. Вдобавок каждый час Максиму звонит супруга. Он знает, что если он возьмёт трубку, то жена попросит зайти вечером в магазин.

Напишите программу, в которой считается, сколько задач выполнил Максим за день (восемь часов). Если он хотя бы раз взял трубку, то в конце дополнительно выводите сообщение: «Нужно зайти в магазин».

Пример:

Начался восьмичасовой рабочий день.
1-й час
Сколько задач решит Максим? 1
Звонит жена. Взять трубку? (1 — да, 0 — нет): 0
2-й час
Сколько задач решит Максим? 2
Звонит жена. Взять трубку? (1 — да, 0 — нет): 0
3-й час
Сколько задач решит Максим? 3
Звонит жена. Взять трубку? (1 — да, 0 — нет): 0
4-й час
Сколько задач решит Максим? 4
Звонит жена. Взять трубку? (1 — да, 0 — нет): 1
5-й час
Сколько задач решит Максим? 5
Звонит жена. Взять трубку? (1 — да, 0 — нет): 0
6-й час
Сколько задач решит Максим? 1
Звонит жена. Взять трубку? (1 — да, 0 — нет): 0
7-й час
Сколько задач решит Максим? 2
Звонит жена. Взять трубку? (1 — да, 0 — нет): 1
8-й час
Сколько задач решит Максим? 3
Звонит жена. Взять трубку? (1 — да, 0 — нет): 0
Рабочий день закончился. Всего выполнено задач: 21
Нужно зайти в магазин.

Обратить внимание на:

* Формат вывода соответствует примеру.

* Число итераций не превосходит число рабочих часов.

* Используется флаг для учёта факта звонка жены.

Для сдачи заданий необходимо войти под своим именем

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

Напишите программу, которая по данным числам X, Y, P определяет, сколько лет пройдёт, прежде чем сумма достигнет значения Y.

Для сдачи заданий необходимо войти под своим именем

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

Напишите программу-игру, которая запрашивает у пользователя число до тех пор, пока он его не отгадает. Выводите сообщения в соответствии с примером.

Пример (загадали число 7):

Введите число: 3
Число меньше, чем нужно. Попробуйте ещё раз!
Введите число: 10
Число больше, чем нужно. Попробуйте ещё раз!
Введите число: 8
Число больше, чем нужно. Попробуйте ещё раз!
Введите число: 7
Вы угадали! Число попыток: 4

Для сдачи заданий необходимо войти под своим именем

Поменяйте мальчика и компьютер из прошлой задачи местами. Теперь мальчик загадывает число между 1 и 100 (включительно). Компьютер может спросить у мальчика: «Твоё число равно, меньше или больше, чем число N?», где N — число, которое хочет проверить компьютер. Мальчик отвечает одним из трёх чисел: 1 — равно, 2 — больше, 3 — меньше.

Напишите программу, которая с помощью цепочки таких вопросов и ответов мальчика угадывает число.

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

___________

Подсказка

Используйте бинарный поиск, а не конкатенацию.

Для сдачи заданий необходимо войти под своим именем

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

Живут они втроем, вот и условие будет таким же: если количество квадратных метров делится на 3, то участок подходит.

For in meters 100,90,95,87,102:
 if meters % 3 == 1:
   print(meters, 'Подходит')
 else:
   print(meters, 'Не подходит')

Скопируйте программу в редактор и исправьте её. Убедитесь, что она работает правильно и решает задачу Максима.

Для сдачи заданий необходимо войти под своим именем

Аркадию для выступления с докладом нужно выучить таблицу степеней для определённых чисел.

Правда, память у него работает довольно необычно, и ему проще учить их в нужном ему порядке.

Напишите программу, которая выводит вторую, третью и четвёртую степень для каждого числа в отдельной строке

(первая строка - степени для числа 3, вторая строчка - степени для числа 7 и т.д.). Числа: 3,7,5,6,4.

Результат:

9 27 81
49 343 2401
25 125 625
36 216 1296
16 64 256

Для сдачи заданий необходимо войти под своим именем

Напишите программу для немного усложнённой версии задачи про выигрышные билеты.

Есть заранее известные номера билетов: 345, 19, 87, 1020 и 421 (можете брать свои номера, не стесняйтесь).

Теперь, билет считается выигрышным, если номер билета - трёхзначное число и оно делится на 5.

Выведете в консоль сообщение для каждого выигрышного билета и количество победителей.

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая выводит кубы чисел (число в третьей степени), лежащих в диапазоне от 1 до 10.

Результат:

1
8
27
64
125
216
343
512
729
1000

Для сдачи заданий необходимо войти под своим именем

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

А программа суммирует все числа в диапазоне от первого до второго.

Гарантируется, что первое введённое число всегда меньше второго.

Пример:

Введите первое число: 5
Введите второе число: 10
Сумма чисел от 5 до 10 равна 45

Для сдачи заданий необходимо войти под своим именем

Напишите программу, разобранную в лекции.

У Саши интересный режим сна: он может проснуться когда угодно, хоть ночью, но засыпает всегда до того, как наступит полночь, обычно в 23 часа. А ещё он очень любит поесть. Он ест каждый час и если съедает больше 2000 калорий, то он просто падает спать.

Напишите программу, которая поможет Саше понять, всё ли с ним хорошо. Для этого нужно посчитать, сколько он всего съест калорий.

И добавьте сколько часов Саша будет бодрым.

Для сдачи заданий необходимо войти под своим именем

В базе банка хранятся данные и должников, и законопослушных граждан. Каждому человеку система присваивает свой номер. У нас есть случайная выборка из десяти номеров. Правда, иногда база глючит и выдаёт номер с отрицательным значением. А ещё по статистике, которую собрал наш «МирПрогБанк», каждый второй пользователь брал кредит и не выплатил его вовремя, то есть является должником.

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

Для сдачи заданий необходимо войти под своим именем

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

Напишите программу, которая принимает от пользователя зарплату сотрудника за каждый из 12 месяцев и выводит на экран среднюю зарплату за год.

Для сдачи заданий необходимо войти под своим именем

Мы всё ближе и ближе подбираемся к серьёзной математике. Одна из классических задач — задача на нахождение факториала числа. И в будущем мы с ней ещё встретимся.

Дано натуральное число n. Напишите программу, которая находит n! (n-факториал).

Запись n! означает следующее:

n! = 1 * 2 * 3 * 4 * 5 * … * n

Пример:

Введите число: 5
Факториал числа 5 равен 120

Для сдачи заданий необходимо войти под своим именем

В классе N человек. Каждый из них получил за урок по информатике оценку: 3, 4 или 5, двоек сегодня не было. Напишите программу, которая получает список оценок — N чисел — и выводит на экран сообщение о том, кого сегодня больше: отличников, хорошистов или троечников.

Замечание: можно предположить, что количество отличников, хорошистов, троечников различно.

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая считывает с клавиатуры два числа: a и b, — считает и выводит в консоль среднее арифметическое всех чисел из отрезка [a; b], кратных числу 3.

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая находит и выводит все двузначные числа, равные утроенному произведению своих цифр. К таким относятся, например, 15 и 24.

Для сдачи заданий необходимо войти под своим именем

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

Введите число карточек — N.

Затем введите N 1 номера оставшихся карточек. Они могут быть введены в любом порядке.

Пример:

Введите количество карточек: 5
Введите номер оставшейся карточки: 1
Введите номер оставшейся карточки: 4
Введите номер оставшейся карточки: 5
Введите номер оставшейся карточки: 3
Номер пропавшей карточки: 2

Для сдачи заданий необходимо войти под своим именем

Ваш космический корабль потерпел крушение на пустынной планете. Еда здесь не растёт, но вы спасли из обломков 100-килограммовый мешок гречки. Из прошлого опыта вы знаете, что если будете экономно питаться, то у вас будет уходить по четыре килограмма гречки в месяц.

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

Для сдачи заданий необходимо войти под своим именем

«МирПрогБанк» наконец-то разделил законопослушных граждан и должников и поместил их в разные базы. Но банк не торопится сильно давить на неплательщиков. Операторам банка дали задание позвонить каждому пятому должнику из списка (нумерация начинается с нуля) и уточнить, какую сумму каждый из них задолжал банку.

Напишите программу, которая получает данные о количестве должников, а затем спрашивает у каждого пятого (начиная с 0) его долг. В конце выводится общая сумма долгов.

Пример 1:

Введите количество должников: 13
Должник с номером 0
Сколько должны? 1000
Должник с номером 5
Сколько должны? 5000
Должник с номером 10
Сколько должны? 2000
Общая сумма долга: 8000

Пример 2:

Введите количество должников: 10
Должник с номером 0
Сколько должны? 1000
Должник с номером 5
Сколько должны? 5000
Общая сумма долга: 6000

Для сдачи заданий необходимо войти под своим именем

Мы разрабатываем микропрограмму — таймер обратного отсчета для микроволновых печей.

Некоторым пользователям не нравится пищащий звук.

Есть задача убрать звук по готовности и заменить его сообщением на LED-экране.

В нашем случае будем выводить в консоль сообщение с обратным отсчетом в секундах от “reverse_timer” до момента готовности, то есть «0» секунд, и спрашивать пользователя, готов ли он забрать еду.

Пользователь в любой момент может прервать режим разогрева, введя «1» (то есть ответить «Да, еда готова»), тогда программа выводит на экран сообщение «Ваша еда готова, можете забрать» и показывает, на какой секунде был прерван таймер.

Если пользователь отвечает «0», что равноценно «Нет», то таймер уменьшается. Когда он достигнет «0» секунд, выводим сообщение «Ваша еда готова, осторожно горячo!»

В данном задании используем цикл for.

“reverse_timer” – переменная счетчик, которую запрашиваем у пользователя через функцию ввода input.

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая считывает с клавиатуры числа a, b и c, считает и выводит на консоль среднее арифметическое всех чисел из отрезка [a; b], кратных числу c.

Для сдачи заданий необходимо войти под своим именем

В прошлый раз мы написали Саше программу, которая считает функцию в каждой точке отрезка и с нужным шагом, начиная с конца - от большего значения X к меньшему, выводит ответ на экран. Но теперь ему нужно, чтобы значения считались в обратном порядке. Также Саше важно настроить шаг, с которым он скачет по точкам отрезка.

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

Сама функция выглядит так:

y = x^3 + 2x^2 - 4x + 1

Пример:

Введите начало отрезка: -2
Введите конец отрезка: 2
Введите шаг: -1
В точке 2 функция равна 9
В точке 1 функция равна 0
В точке 0 функция равна 1
В точке -1 функция равна 6
В точке -2 функция равна 9

Для сдачи заданий необходимо войти под своим именем

У нас есть квадратный конверт размера 12х12 сантиметров и письмо на квадратном листе бумаги, которое не помещается в конверт. Напишите программу, которая подскажет, сколько раз нужно сложить письмо пополам, чтобы оно поместилось в конверт. Размеры письма вводятся с клавиатуры.

Обратите внимание, что лист квадратный.

Принимаем, что лист размером 12х12 свободно входит в конверт 12х12.

Для сдачи заданий необходимо войти под своим именем

Ежемесячная стипендия студента составляет educational_grant рублей, а расходы на проживание превышают стипендию и составляют expenses рублей в месяц. Рост цен ежемесячно увеличивает расходы на 3%, кроме первого месяца. Составьте программу расчёта суммы денег, которую необходимо получить у родителей один раз в начале обучения, чтобы можно было прожить учебный год (десять месяцев), используя только эти деньги и стипендию.

Пример:

Введите стипендию: 10000
Введите расходы на проживание: 13000

У родителей необходимо попросить 49030.431

Для сдачи заданий необходимо войти под своим именем

Дано натуральное число n. Напишите программу для вычисления следующей суммы ряда (начиная с единицы):

Обратите внимание: если мы воспользуемся формулой для расчёта члена ряда, то

- при n = 0, член ряда равен 1;

- при n = 1, мы получим -1/2;

- при n = 2, мы получим 1/4;

- при n = 3, мы получим -1/8.

Тогда при вводе числа N = 3 сумма ряда составит 1 - 1/2 + 1/4 - 1/8 = 0.625

Пример:

Введите число N для ряда: 3
Сумма ряда составит 0.625

Для сдачи заданий необходимо войти под своим именем

X мальчиков и Y девочек пошли в кинотеатр и купили билеты на идущие подряд места в одном ряду. Напишите программу, которая выдаст, как нужно сесть мальчикам и девочкам, чтобы рядом с каждым мальчиком сидела хотя бы одна девочка, а рядом с каждой девочкой — хотя бы один мальчик.

На вход подаются два числа: количество мальчиков X и количество девочек Y. В ответе выведите какую-нибудь строку, в которой будет ровно X символов B (обозначающих мальчиков) и Y символов G (обозначающих девочек), удовлетворяющую условию задачи. Пробелы между символами выводить не нужно. Если рассадить мальчиков и девочек согласно условию задачи невозможно, выведите строку «Нет решения».

Пример 1:

Введите количество мальчиков: 5
Введите количество девочек: 5
Ответ: BGBGBGBGBG

Пример 2:

Введите количество мальчиков: 5
Введите количество девочек: 3
Ответ: BGBGBBGB

Пример 3:

Введите количество мальчиков: 100
Введите количество девочек: 1
Ответ: Нет решения

Для сдачи заданий необходимо войти под своим именем

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

Пример:

Выполнил задание? нет
Выполнил задание? не хочу
Выполнил задание? Да, конечно, сделал
Молодец!

Для сдачи заданий необходимо войти под своим именем

Напишите программу-дразнилку “Купи слона”. Она спрашивает у пользователя, как его зовут, затем отвечает “%username%, купи слона”.

Дальше, что бы он ни говорил, она передразнивает: Все говорят “...”, а ты купи слона!

Пример:

Как тебя зовут? Дима
Дима, купи слона!
Хорошо, давай куплю
Все говорят Хорошо, давай куплю, а ты купи слона!
...

Для сдачи заданий необходимо войти под своим именем

Старому капитану нужно пополнить команду, но на корабль попадут только достойные! Он отобрал десять человек. Те, кто крикнет слово «Карамба», попадут на борт.

Пользователь вводит десять слов. Напишите программу, которая определяет, сколько из них совпадают со словом «Карамба».

Для сдачи заданий необходимо войти под своим именем

Существует мессенджер, в котором иногда возникают неполадки при передаче сообщений: в них попадает лишний символ — звёздочка. Пользователям это надоело, поэтому они стали уходить в другие сервисы. Но один из них заинтересовался, на каких позициях обычно появляется звёздочка. Чтобы выяснить это, пользователю необходимо подготовить строки, в которых символ «*» встречается ровно один раз.

Напишите программу, которая определяет порядковый номер звёздочки в строке.

Пример

Введите текст: «Пр*ивет как дела».
Символ «*» стоит на позиции 3.

Для сдачи заданий необходимо войти под своим именем

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

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

Пример

Введите кол-во рядов: 5
Введите кол-во сидений в ряде: 7
Введите кол-во метров между рядами: 3

Сцена
======= *** =======
======= *** ======= 
======= *** ======= 
======= *** ======= 
======= *** =======
Для сдачи заданий необходимо войти под своим именем

К роботу Валли отправили «коллегу» Билли. Это его первая высадка на Марс, поэтому его тестируют в прямоугольном помещении размером 15 × 20 м. Марсоход высаживается в центре комнаты (в точке 8, 10), затем управление им передаётся оператору, то есть пользователю вашей программы.

Программа спрашивает, в какую сторону оператор хочет направить робота: север (клавиша W), юг (клавиша S), запад (клавиша A) или восток (клавиша D). Оператор делает выбор, марсоход перемещается в эту сторону на один метр, а программа сообщает новую позицию робота. Если марсоход упёрся в стену, он не должен пытаться переместиться в сторону стены — в этом случае его позиция не меняется.

Создайте программу для управления роботом Билли.

Пример:

[Программа]: Марсоход находится на позиции 6, 19, введите команду:
[Оператор]: A
[Программа]: Марсоход находится на позиции 5, 19, введите команду:
[Оператор]: W
[Программа]: Марсоход находится на позиции 5, 20, введите команду:
[Оператор]: W
[Программа]: Марсоход находится на позиции 5, 20, введите команду:

#### Рекомендации по выполнению

* Обращайте внимание на границы.

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

* Ввод команд происходит только в верхнем регистре, учитывать нижний не нужно.

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

Для сдачи заданий необходимо войти под своим именем

Паоло изучает русский язык: занимается по учебникам, читает книги, слушает музыку. Ему особенно понравилась книга «Преступление и наказание». Паоло решил найти самое длинное слово в этой книге, чтобы сравнить его с аналогом на своём языке.

Напишите программу, которая получает на вход текст и находит длину самого длинного слова в нём. Слова в тексте разделяются одним пробелом.

Пример:

Введите текст: Меня зовут Пётр.
Самое длинное слово, букв: 5
Введите текст: Меня зовут Василий
Самое длинное слово, букв: 7

#### Рекомендации по выполнению

* При помощи функции print убедитесь, что счётчики обнуляются в нужный момент.

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

Для сдачи заданий необходимо войти под своим именем

Для коров есть 10 стойл. В каждом из них условия для животных разные, поэтому и молока они дают по-разному. В первом стойле производят 2 литра в день, во втором — 4, в третьем — 6, далее — 8, 10, 12, 14, 16, 18 и 20. При этом коровы находятся не во всех стойлах. Свободные и занятые обозначаются строкой из букв a и b, где a — свободное стойло, b — занятое.

Напишите программу для подсчёта получаемого молока в коровнике. Важно учитывать следующее взаимодействие: пользователь вводит строку из десяти символов a и b. Необходимо определить, сколько в итоге будет произведено молока за день.

Для сдачи заданий необходимо войти под своим именем

В секретном агентстве Super-Secret-no решили использовать «метод бутерброда» для шифрования переписки своих сотрудников. Сначала буквы слова нумеруются в таком порядке: первая буква получает номер 1, последняя буква — номер 2, вторая — номер 3, предпоследняя — номер 4, потом третья… и так для всех букв (см. рисунок). Затем все буквы записываются в шифр в порядке своих номеров.

s a n d w i c h
| | | | | | | | 
1 3 5 7 8 6 4 2


↓преобразуется в ↓


1 2 3 4 5 6 7 8
| | | | | | | |
s h a c n i d w 

Например, слово sandwich зашифруется в shacnidw.

Программист Super-Secret-no написал программу шифрования и уволился. Теперь агенты не могут понять, что они написали друг другу.

Напишите программу-дешифратор, которая расшифровала бы введённые сообщения.

Пример:

Введите зашифрованное сообщение: shacnidw.
Расшифрованное сообщение: sandwich.

Для сдачи заданий необходимо войти под своим именем

Нет заданий

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

0   2   4   6   8   10
1   3   5   7   9   11
2   4   6   8   10  12
3   5   7   9   11  13
4   6   8   10  12  14  
5   7   9   11  13  15

Помогите Степану реализовать программу.

Подсказка: обращайте внимание на номера столбцов и помните о литерале \t для табуляции.

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая выводит «лестницу» из чисел, когда пользователь вводит число N:

1
2   2
3   3   3
4   4   4   4
5   5   5   5   5

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая рисует прямоугольную рамку с помощью символьной графики. Для вертикальных линий используйте символ вертикального штриха (|), а для горизонтальных — дефис (-). Пусть ширину и высоту рамки определяет пользователь.

|------------------|
|                  |
|                  |
|                  |
|------------------|

Для сдачи заданий необходимо войти под своим именем

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

Простое число делится только на себя и на единицу. Последовательность задаётся при помощи вызова ввода (input) на каждой итерации цикла. Одна итерация — одно число.

Пример:

Введите количество чисел: 6.
Введите число: 4.
Введите число: 7.
Введите число: 20.
Введите число: 3.
Введите число: 11.
Введите число: 37.

Количество простых чисел в последовательности: 4.

____________________________________

Рекомендации по выполнению

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

Для сдачи заданий необходимо войти под своим именем

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

Для сдачи заданий необходимо войти под своим именем

апишите программу, которая выводит на экран равнобедренный треугольник (пирамидку), заполненный символами хештега (#). Пусть высоту пирамиды определяет пользователь.

    #
   ###
  #####
 #######

___________________________

Советы и рекомендации

* Вспомните, как выводился колонтитул вида -----!!!!!!-----.

* Не забывайте, что для нас пробел — это пустое место, а для Python — это такой же символ, как и любой другой. Если нужно добавить отступ, необходимо использовать пробел или символ табуляции (\t).

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая получает на вход количество уровней пирамиды и выводит их на экран, заполняя нечётными числами:

            1
        3      5
      7     9     11
   13    15    17    19
21    23    25    27    29

Для сдачи заданий необходимо войти под своим именем

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

5
5........5
54......45
543....345
5432..2345
5432112345

Для сдачи заданий необходимо войти под своим именем

В далеком (а может и не очень) будущем на некоторой планете можно купить космический корабль за полкредита (CR). Один CR это 2200 чатлов. Причем чатлы неделимы и являются всегда целым числом. Напишите простую программу-конвертор валют.

В программу вводится количество чатлов, а она сообщает сколько это CR и сколько кораблей можно купить на эту сумму.

Пример 1:

Сколько чатлов? 3150
Это 1.4318181818181819 CR
Можно купить кораблей: 2

Пример 2:

Сколько чатлов? 4400
Это 2.0 CR
Можно купить кораблей: 4

Для сдачи заданий необходимо войти под своим именем

Вы участвуете в разработке робота, который играет в шахматы на реальной, физической шахматной доске размером 0.8 х 0.8 метра. Робот смотрит камерой на доску и видит расположение фигур в вещественных числах с очень высокой точностью.

Напишите программу, в которую вводятся вещественные координаты шахматной фигуры, а программа определяет в какой клетке доски находится эта фигура. Каждая клетка доски имеет размер 10х10 см и целочисленные координаты, состоящие из двух чисел. Например, левая верхняя клетка имеет целые координаты (0, 0), справа от неё клетка (1, 0) а снизу (0, 1). Также обеспечьте контроль ввода: нельзя выходить за границы доски.

Пример 1:

Введите местоположение фигуры
По горизонтали: 0.731
По вертикали: 0.149
Фигура находится в клетке (7, 1)

Пример 2:

Введите местоположение фигуры
По горизонтали: 0.833
По вертикали: -0.132
Клетки с такой координатой не существует

Для сдачи заданий необходимо войти под своим именем

Робот из задачи “Компьютерное зрение” правильно определяет на какой клетке стоят фигуры. Но вот беда, часто по вине соперника-человека фигуры стоят на доске не ровно по центру клетки, а со смещением. Если во время игры такое смещение станет слишком велико, то станет непонятно в какой клетке стояла фигура. Чтобы избежать этой ситуации нужно, чтобы робот поправлял фигуры на доске, выставляя их по центру клетки.

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

Пример:

Введите местоположение фигуры
По горизонтали: 0.731
По вертикали: 0.167
Фигура находится в клетке (7, 1)
Поправьте положение фигуры на (0.019, -0.017)

Для сдачи заданий необходимо войти под своим именем

Существует, так называемая, формула Герона, позволяющая вычислить площадь треугольника, зная длины его сторон.

S=√(p(p-a)(p-b)(p-c))

S - площадь;

√ - знак квадратного корня из выражения, стоящего в скобках;

p - полупериметр треугольника (a+b+c)/2;

a, b, c - длины сторон треугольника.

Напишите программу, которая принимает на вход длины сторон треугольника и выводит его площадь

Для сдачи заданий необходимо войти под своим именем

Мы решили написать 2D игру (вид сверху, игрок двигается в двух плоскостях).

Первым делом надо написать управление персонажем - от игрока мы получаем пройденное расстояние и угол по которому он двигался и нам, зная эту информацию, нужно изменить текущие координаты (0, 0) на новые (х, у).

Чтобы это сделать - нам нужно узнать сколько человек пройдёт расстояния по горизонтали (по оси Х - расстояние * косинус угла) и сколько он пройдет расстояния по вертикали (по оси У - расстояние * синус угла)

Напишите программу, которая получает на вход расстояние и угол поворота. В результате выведите координаты нового местоположения игрока.

Для сдачи заданий необходимо войти под своим именем

Кеша учится в третьем классе, и уже умеет программировать на питоне.

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

Напишите программу, которая получает от пользователя вещественное число, по очереди применяет к нему функции модуля Math и выводит результат:

* округляет вниз

* округляет вверх

* берет модуль числа

* извлекает квадратный корень

* возводит экспоненту в степень, равную числу

* считает натуральный логарифм числа

* считает логарифм числа по основанию 2

* считает логарифм числа по основанию 10

* считает синус и косинус числа

И так как Кеша самый умный в классе, он решил добавить в свою программу ввод еще одного числа и попробовать посчитать факториал этого числа.

Для этого ему пришлось придумать и реализовать контроль ввода: факториал вычисляется, только если введенное число было натуральным.

Для сдачи заданий необходимо войти под своим именем

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

Напишите программу, которая получает на вход стоимость покупки в евро, а затем выводит ответ в рублях. Представим, что мы живём в альтернативной реальности, где 1 евро = 1.25 доллара, а 1 доллар = 60.87 руб.

Для сдачи заданий необходимо войти под своим именем

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

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

Напишите программу, которая выводит натуральный логарифм от числа, если оно положительное, и экспоненту в степени числа, если оно отрицательное.

Пример:
Введите кол-во чисел: 3
Введите число: 1.3
x = 2 log(x) = 0.6931471805599453
Введите число: -2.1
x = -3 exp(x) = 0.049787068367863944
Введите число: -5.9
x = -6 exp(x) = 0.0024787521766663585

Для сдачи заданий необходимо войти под своим именем

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

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

Пример:
Укажите размер файла для скачивания: 123
Какова скорость вашего соединения: 27
Прошло 1 сек. Скачано 27 из 123 Мб (22%)
Прошло 2 сек. Скачано 54 из 123 Мб (44%)
Прошло 3 сек. Скачано 81 из 123 Мб (66%)
Прошло 4 сек. Скачано 108 из 123 Мб (88%)
Прошло 5 сек. Скачано 123 из 123 Мб (100%)

Для сдачи заданий необходимо войти под своим именем

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

_______________

Примечание: в вычислениях не используется for, if и работа со строками.*

Для сдачи заданий необходимо войти под своим именем

Для курсовой работы по физике Андрею нужно сравнить объёмы двух планет: Земли и теоретически возможной для нашей вселенной планеты. Андрей хорошо разбирается в формулах, но плохо считает. Объём Земли ему известен — это 1.08321 * 10 ** 12 км3.

Объём теоретически возможной планеты ему нужно посчитать. У него есть формула:

V = 4 / 3 * π * R³

В ней V — это объём, π — число пи, а R — радиус планеты.

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

Пример 1:

Введите радиус случайной планеты: 3389.5
Объём планеты Земля больше в 6.641 раз

Пример 2:

Введите радиус теоретически возможной планеты: 7000
Объём планеты Земля меньше в (1/0.754) = 1.326 раз

Для сдачи заданий необходимо войти под своим именем

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

Пример:

Введите местоположение коня:
0.071
0.118
Введите местоположение точки на доске:
0.213
0.068
Конь в клетке (0, 1). Точка в клетке (2, 0).
Да, конь может ходить в эту точку.

Для сдачи заданий необходимо войти под своим именем

Вы встретились со старым другом, который тоже изучает программирование, но в другом учебном заведении. За чашкой кофе он пожаловался, что их сумасбродный препод дал задание написать программу, которая из двух введённых чисел определяет наибольшее, не используя при этом условные операторы, циклы и встроенные функции вроде max/min/sorted. Радуясь, что на вашем курсе такого не требуют, вы всё-таки решаете помочь другу. Напишите для него программу.

Пример:

Введите первое число: 10
Введите второе число: 5
Наибольшее число: 10

____________________________

Советы и рекомендации:

Рассмотрите разность суммы и разности чисел, сумму разности и суммы чисел.

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

Для сдачи заданий необходимо войти под своим именем

В одном отеле для эксперимента на вход хотят поставить робота, который будет спрашивать у прохожих, не желают ли они зайти.

При ответе «Да» робот должен приветствовать человека и пустить в отель. Для робота написали вот такую программу с использованием функции:

def greeting()
 print('Привет!')
print('Добро пожаловать!')


while True:
 a = input('Зайдёте? Да/Нет: ')
 if a = 'Да':
   greeting
 print('Следующий.\n')

Однако программист очень торопился и допустил несколько ошибок.

Скопируйте программу, найдите и исправьте ошибки. Убедитесь, что программа работает корректно.

Пример результата:

Зайдёте? Да/Нет: Да
Привет!
Добро пожаловать!
Следующий.

Зайдёте? Да/Нет: Да
Привет!
Добро пожаловать!
Следующий.

Зайдёте? Да/Нет: Нет
Следующий.

Зайдёте? Да/Нет: ...

Для сдачи заданий необходимо войти под своим именем

Одна государственная компания поставляет еду на разные труднодоступные базы (полярные, горные и так далее) в разных уголках страны. В компании для удобства расчёта количества еды была реализована такая программа:

print("Сколько мешков рыбы и мяса?")
a = int(input())
b = int(input())
print("Всего", a+b, "шт.")
print("Сколько буханок белого и чёрного хлеба?")
a = int(input())
b = int(input())
print("Всего", a+b, "шт.")
print("Сколько вёдер воды и молока?")
a = int(input())
b = int(input())
print("Всего", a+b, "шт.")

Скопируйте программу и модифицируйте её: напишите функцию, которая заменит повторяющийся код внутри основной программы.

Для сдачи заданий необходимо войти под своим именем

Одна бутылка воды «КлирВотер» от производителя «ВодЗавод» в разных магазинах стоит по-разному.

Напишите программу, которая три раза вызывает функцию aboutWater, передаёт в неё один аргумент — цену на воду и выводит на экран название воды, производителя и цену.

Пример:

Название: КлирВотер
Производитель: ВодЗавод
Цена: 25

Название: КлирВотер
Производитель: ВодЗавод
Цена: 30

Название: КлирВотер
Производитель: ВодЗавод
Цена: 40

Для сдачи заданий необходимо войти под своим именем

Андрей продолжает писать курсовую работу по физике, и теперь ему нужно находить не только объём планеты, но и её площадь. Для этого он использует две такие формулы:

Формула для площади сферы:

S = 4 R²

Формула для объёма шара:

V = 4 / 3 R³

Так как в самом курсовом проекте эти формулы пригодятся ещё не раз,

Андрей решил поступить рационально и просто написать функцию для каждой формулы.

Напишите программу, которая на вход получает от пользователя радиус планеты (вещественное число) и вызывает функции sphereArea и sphereVolume. Реализуйте эти функции: первая считает и выводит на экран площадь сферы, вторая — объём шара.

Для сдачи заданий необходимо войти под своим именем

Пользователь вводит число N — количество чисел в последовательности. Напишите программу, которая проверяет, сколько из этих чисел являются простыми. Для проверки простоты числа реализуйте функцию isPrime.

Для сдачи заданий необходимо войти под своим именем

Программа получает от пользователя два числа — a и b. Реализуйте функцию, которая принимает на вход числа a и b, считает и выводит в консоль среднее арифметическое всех чисел из отрезка [a; b]. Обеспечьте контроль ввода: не забывайте, что а всегда должно быть меньше, чем b.

Пример:

Введите левую границу: 3
Введите правую границу: 8
Среднее: 5.5

Усложнение: сделайте это без использования циклов.

Для сдачи заданий необходимо войти под своим именем

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

Реализуйте функцию, которая получает все эти данные и выводит на экран. В программе вызовите функцию три раза с разными значениями аргументов.

Подсказка: семь аргументов.

Для сдачи заданий необходимо войти под своим именем

Пользователь вводит число N. Напишите функцию summa_n, которая принимает одно целое положительное число N и находит сумму всех чисел от 1 до N включительно. Функция вызывается два раза: сначала от числа N, а затем от полученной суммы.

Пример:

Введите число: 5
Сумма от 1 до 5 = 15
Сумма от 1 до 15 = 120

Для сдачи заданий необходимо войти под своим именем

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

Реализуйте функцию gcd, которая получает два параметра — два числа — и возвращает наибольший общий делитель этих двух чисел.

Пример:

Введите первое число: 6
Введите второе число: 10
НОД = 2

Для сдачи заданий необходимо войти под своим именем

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

Вводится последовательность из N чисел. Нужно определить номер числа, у которого больше всего цифр, и вывести на экран соответствующее сообщение. Если число отрицательное, то считать его за 0.

Для подсчёта количества цифр реализуйте функцию numeral_count.

Пример:

Введите кол-во задач: 4
Введите число: 6
Введите число: 14
Введите число: 1
Введите число: 13434

Первая задача на обработку: 13434

Для сдачи заданий необходимо войти под своим именем

Напишите функцию summa_n, которая принимает одно целое положительное число N и выводит сумму всех чисел от 1 до N включительно.

Пример:

Введите число: 5
Я знаю, что сумма чисел от 1 до 5 равна 15

Для сдачи заданий необходимо войти под своим именем

Евгений проходит специальный тест по программированию. Всё шло хорошо, пока герой не наткнулся на тему «Функции». Задание звучит так:

Основная ветка программы, не считая заголовков функций, состоит из одной строки кода. Это вызов функции test(). В ней запрашивается на ввод целое число. Если оно положительное, то вызывается функция positive(), тело которой содержит команду вывода на экран слова «Положительное». Если число отрицательное, то вызывается функция negative(), её тело содержит выражение вывода на экран слова «Отрицательное».

Помогите Евгению и реализуйте такую программу.

Для сдачи заданий необходимо войти под своим именем

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

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

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

____________________________

Советы и рекомендации:

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

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

* Функции и их аргументы в Python 3

Для сдачи заданий необходимо войти под своим именем

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

Пример:

Введите число: 1234
Число наоборот: 4321
Введите число: 1000
Число наоборот: 0001
Введите число: 0
Программа завершена!

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

Пример:

Введите число: 1230
Число наоборот: 321
Ноль, который мы убрали, называется ведущим.
Введите число: 0
Программа завершена!

Для сдачи заданий необходимо войти под своим именем

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

Напишите функцию count_letters(), которая принимает на вход текст и подсчитывает, какое в нём количество цифр K и букв N. Функция должна вывести на экран информацию о найденных буквах и цифрах в определённом формате.

Пример:

Введите текст: 100 лет в обед
Какую цифру ищем? 0
Какую букву ищем? Л
Количество цифр 0: 2
Количество букв Л: 1

Для сдачи заданий необходимо войти под своим именем

Напишите функцию, вычисляющую наибольший общий делитель двух чисел.

Для сдачи заданий необходимо войти под своим именем

Вы пришли на работу в компанию по разработке игр, целевая аудитория — дети и их родители. У предыдущего программиста было задание сделать две игры в одном приложении, чтобы пользователь мог выбирать одну из них. Однако программист, на место которого вы пришли, перед увольнением не успел выполнить эту задачу и оставил только небольшой шаблон проекта. Используя этот шаблон, реализуйте игры «Камень, ножницы, бумага» и «Угадай число».

Правила игры «Камень, ножницы, бумага»: программа запрашивает у пользователя строку и выводит, победил он или проиграл. Камень бьёт ножницы, ножницы режут бумагу, бумага кроет камень.

Правила игры «Угадай число»: программа запрашивает у пользователя число до тех пор, пока он не отгадает загаданное.

def rock_paper_scissors():
  # Здесь будет игра «Камень, ножницы, бумага»
def guess_the_number():
  # Здесь будет игра «Угадай число»
def mainMenu():
  # Здесь главное меню игры
mainMenu():
  pass

Для сдачи заданий необходимо войти под своим именем

В одной IT-компании тестируют возможности различных языков программирования, компиляторов и, конечно же, компьютеров. Компания дала вам задачу понять, какое самое маленькое возможное число можно получить путём постоянного деления числа на 2. Изначально число равно единице. Также, помимо самого числа, компания просит вывести количество делений. Реализуйте такую программу.

Для сдачи заданий необходимо войти под своим именем

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

Пользователь вводит число N в экспоненциальной форме, где мантисса всегда равна числу от 1 до 9, а порядок меньше нуля. Также есть переменная Х, которая изначально равна единице. Посчитайте, сколько раз нужно прибавить N к Х, чтобы оно перевалило за двойку.

Дополнительно: обеспечьте контроль ввода.

Пример 1:

Введите число в эксп. форме: 1e-3
Кол-во прибавлений: 1001

Пример 2:

Введите число в эксп. форме: 5.02e-1
Кол-во прибавлений: 2

Для сдачи заданий необходимо войти под своим именем

На одном из уроков информатики учитель объяснял тему «Числа с плавающей точкой», но несколько учеников никак не могли понять, почему эта точка «плавает» и как вообще выглядят числа в такой форме. Для наглядности учитель написал программу, которая берёт число больше десяти и выводит его в формате плавающей точки.

Пользователь вводит положительное число x (x > 10). Напишите функцию, которая выводит его в формате плавающей точки, то есть x=a *10 ** b, где 1a<10.

Пример 1:

Введите число: 16
Формат плавающей точки: x = 1.6 * 10 ** 1

Пример 2:

Введите число: 92345
Формат плавающей точки: x = 9.2345 * 10 ** 4

Для сдачи заданий необходимо войти под своим именем

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

Задано положительное число x (x > 0). Ваша задача — преобразовать его в формат плавающей точки, то есть x=a * 10^b, где 1a<10. Обратите внимание, что x теперь больше нуля, а не больше единицы. Обеспечьте контроль ввода.

Пример 1:

Введите число: 92345
Формат плавающей точки: x = 9.2345 * 10 ** 4

Пример 2:

Введите число: 0.0012
Формат плавающей точки: x = 1.2 * 10 ** -3

Для сдачи заданий необходимо войти под своим именем

Юра пишет различные полезные функции для Python, чтобы остальным программистам стало проще работать. Он захотел написать функцию, которая будет находить максимум из перечисленных чисел. Функция для нахождения максимума из двух чисел у него уже есть. Юра задумался: может быть, её можно как-то использовать для нахождения максимума уже от трёх чисел?

Помогите Юре написать программу, которая находит максимум из трёх чисел. Для этого используйте только функцию нахождения максимума из двух чисел.

По итогу в программе должны быть реализованы две функции:

* maximum_of_two — функция принимает два числа и возвращает одно (наибольшее из двух);

* maximum_of_three — функция принимает три числа и возвращает одно (наибольшее из трёх)

____________

Подсказка: функция maximum_of_three должна использовать для сравнений первую функцию maximum_of_two.

Ограничения: нельзя использовать функцию max.

Для сдачи заданий необходимо войти под своим именем

Пользователь вводит два числа: N и K. Напишите программу, которая заменяет каждое число на число, которое получается из исходного записью его цифр в обратном порядке, затем складывает их, снова переворачивает и выводит ответ на экран.

Пример:

Введите первое число: 102
Введите второе число: 123

Первое число наоборот: 201
Второе число наоборот: 321
Сумма: 522
Сумма наоборот: 225

Для сдачи заданий необходимо войти под своим именем

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

И тут вы натыкаетесь на программу, которая была написана предыдущим программистом и которая как раз решает такую задачу. Однако старший программист попросил вас немного переписать этот код, чтобы он не выглядел так ужасно. Да и вам самим становится, мягко говоря, не по себе от него.

Постарайтесь разделить логику кода на три отдельные логические части (функции):

* count_numbers — получает число и возвращает количество цифр в числе;

* change_number — получает число, меняет в нём местами первую и последнюю цифры и возвращает изменённое число;

* main — функция ничего не получает на вход, внутри она запрашивает нужные данные от пользователя, выполняет дополнительные проверки и вызывает функции 1 и 2 для выполнения задачи (проверки и изменения двух чисел).

Разбейте приведённую ниже программу на функции. Повторений кода должно быть как можно меньше. Также сделайте, чтобы в основной части программы был только ввод чисел, затем изменённые числа и вывод их суммы.

first_n = int(input("Введите первое число: "))

first_num_count = 0
temp = first_n

while temp > 0:
    first_num_count += 1
    temp = temp // 10
if first_num_count < 3:
 print("В первом числе меньше трёх цифр.")
else:
 last_digit = first_n % 10
 first_digit = first_n // 10 ** (first_num_count - 1)
 between_digits = first_n % 10 ** (first_num_count - 1) // 10
 first_n = last_digit * 10 ** (first_num_count - 1) + between_digits * 10 + first_digit
 print('Изменённое первое число:', first_n)

 second_n = int(input("\nВведите второе число: "))

 second_num_count = 0
 temp = second_n
 while temp > 0:
   second_num_count += 1
   temp = temp // 10

 if second_num_count < 4:
   print("Во втором числе меньше четырёх цифр.")
 else:
   last_digit = second_n % 10
   first_digit = second_n // 10 ** (second_num_count - 1)
   between_digits = second_n % 10 ** (second_num_count - 1) // 10
   second_n = last_digit * 10 ** (second_num_count - 1) + between_digits * 10 + first_digit

   print('Изменённое второе число:', second_n)

   print('\nСумма чисел:', first_n + second_n)

Для сдачи заданий необходимо войти под своим именем

Известно, что амплитуда качающегося маятника с каждым разом затухает на 8,4% от амплитуды предыдущего колебания. Если качнуть маятник, то, строго говоря, он не остановится никогда, просто амплитуда будет постоянно уменьшаться до тех пор, пока мы не сочтём такой маятник остановившимся. Напишите программу, определяющую, сколько раз качнётся маятник, прежде чем он, по нашему мнению, остановится.

Программа получает на вход начальную амплитуду колебания в сантиметрах и конечную амплитуду колебаний, которая считается остановкой маятника. Обеспечьте контроль ввода.

Пример:

Введите начальную амплитуду: 1
Введите амплитуду остановки: 0.1
Маятник считается остановившимся через 27 колебаний

Для сдачи заданий необходимо войти под своим именем

В рамках программы колонизации Марса компания «Спейс Инжиниринг» вывела особую породу черепах, которые, по задумке, должны размножаться, откладывая яйца в марсианском грунте. Откладывать яйца слишком близко к поверхности опасно из-за радиации, а слишком глубоко — из-за давления грунта и недостатка кислорода. Вообще, факторов очень много, но специалисты проделали большую работу и предположили, что уровень опасности для черепашьих яиц рассчитывается по формуле: D = x^3 - 3x^2 - 12x + 10, где x — глубина кладки в метрах, а D — уровень опасности в условных единицах. Для тестирования гипотезы нужно взять пробу грунта на безопасной, согласно формуле, глубине.

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

Пример:

Введите максимально допустимый уровень опасности: 0.01
Приблизительная глубина безопасной кладки: 0.732421875 м

Для сдачи заданий необходимо войти под своим именем

Приложение «MyProfile для предпринимателей»

Вы успешно освоили основные навыки программиста и теперь можете выполнять настоящие проекты. В поисках заданий Вы решили стать фрилансером1. И вот Вы получили свой первый заказ, в рамках которого нужно доработать имеющееся у заказчика консольное приложение. Сейчас в приложении MyProfile пользователь может сохранять личную информацию о себе (имя, возраст, телефон, электронная почта, профили социальных сетей и мессенджеров, дополнительная информация) и выводить её в различных форматах. Но заказчик хочет расширить продуктовую линейку и выпустить бизнес-версию этого приложения.

В приложении «MyProfile для предпринимателей» будет храниться информация о предпринимателе (например, ИНН), а также его банковские реквизиты. Такую информацию удобно предоставлять для заключения договоров и дополнительных соглашений.

Более подробно задание смотрите в разделе "Лекции" (необходимо скачать файл "Итоговая работа. Часть 1.docx".

Для сдачи заданий необходимо войти под своим именем

# MyProfile app
SEPARATOR = '------------------------------------------'
# user profile
n = ''
a = 0
ph = ''
e = ''
i = ''
# social links
v = ''
t = ''
tk = ''


def general_info_user(n_parameter, a_parameter, ph_parameter, e_parameter, i_parameter):
    print(SEPARATOR)
    print('Имя:    ', n_parameter)
    if 11 <= a_parameter % 100 <= 19:
        years_parameter = 'лет'
    elif a_parameter % 10 == 1:
        years_parameter = 'год'
    elif 2 <= a_parameter % 10 <= 4:
        years_parameter = 'года'
    else:
        years_parameter = 'лет'
    print('Возраст:', a_parameter, years_parameter)
    print('Телефон:', ph_parameter)
    print('E-mail: ', e_parameter)
    if i:
        print('')
        print('Дополнительная информация:')
        print(i_parameter)


print('Приложение MyProfile')
print('Сохраняй информацию о себе и выводи ее в разных форматах')
while True:
    # main menu
    print(SEPARATOR)
    print('ГЛАВНОЕ МЕНЮ')
    print('1 - Ввести или обновить информацию')
    print('2 - Вывести информацию')
    print('0 - Завершить работу')
    option = int(input('Введите номер пункта меню: '))
    if option == 0:
        break
    if option == 1:
        # submenu 1: edit info
        while True:
            print(SEPARATOR)
            print('ВВЕСТИ ИЛИ ОБНОВИТЬ ИНФОРМАЦИЮ')
            print('1 - Общая информация')
            print('2 - Социальные сети и мессенджеры')
            print('0 - Назад')
            option2 = int(input('Введите номер пункта меню: '))
            if option2 == 0:
                break
            if option2 == 1:
                # input general info
                n = input('Введите имя: ')
                while 1:
                    # validate user age
                    a = int(input('Введите возраст: '))
                    if a > 0:
                        break
                    print('Возраст должен быть положительным')
                uph = input('Введите номер телефона (+7ХХХХХХХХХХ): ')
                ph = ''
                for ch in uph:
                    if ch == '+' or ('0' <= ch <= '9'):
                        ph += ch
                e = input('Введите адрес электронной почты: ')
                i = input('Введите дополнительную информацию:\n')
            elif option2 == 2:
                # input social links
                v = input('Введите адрес профиля Вконтакте: ')
                t = input('Введите логин Telegram: ')
                tk = input('Введите логин Tiktok: ')
            else:
                print('Введите корректный пункт меню')
    elif option == 2:
        # submenu 2: print info
        while True:
            print(SEPARATOR)
            print('ВЫВЕСТИ ИНФОРМАЦИЮ')
            print('1 - Общая информация')
            print('2 - Вся информация')
            print('0 - Назад')
            option2 = int(input('Введите номер пункта меню: '))
            if option2 == 0:
                break
            if option2 == 1:
                general_info_user(n, a, ph, e, i)
            elif option2 == 2:
                general_info_user(n, a, ph, e, i)
                # print social links
                print('')
                print('Социальные сети и мессенджеры')
                print('Вконтакте:', v)
                print('Telegram: ', t)
                print('Tiktok:   ', tk)
            else:
                print('Введите корректный пункт меню')
    else:
        print('Введите корректный пункт меню')

Для сдачи заданий необходимо войти под своим именем

Аркадий как-то раз написал программу для вывода таблицы степеней для определённых чисел. Недавно он узнал про такую штуку, как списки, и решил программу немного переписать, а заодно усовершенствовать её. По его задумке, вначале есть всего три числа:

3, 7 и 5, а затем с помощью бесконечного цикла программа запрашивает новое число, закидывает его в конец текущего списка чисел и выводит вторую, третью и четвёртую степень каждого числа текущего списка.

Вот какая программа получилась у Аркадия:

numbers = 3,7,5
while True:
 number = int(input('Новое число: '))
 numbers.append(numbers)
 print('Текущий список чисел:', numbers)
 for _ in number:
   print(i ** 2, i ** 3, i ** 4)
 print()

Однако, к сожалению, эта программа у него не заработала. Помогите Аркадию исправить ошибки в коде.

Убедитесь, что программа работает верно.

Пример верного результата:
Новое число: 1
Текущий список чисел: [3, 7, 5, 1]
9 27 81
49 343 2401
25 125 625
1 1 1


Новое число: 2
Текущий список чисел: [3, 7, 5, 1, 2]
9 27 81
49 343 2401
25 125 625
1 1 1
4 8 16

Для сдачи заданий необходимо войти под своим именем

У вас есть список numbers. Напишите программу, которая заполняет список числами от 0 до 100 и выводит его на экран.

Для сдачи заданий необходимо войти под своим именем

В любой компании есть список сотрудников. Руководство одной компании хочет знать, на рабочем месте ли сейчас сотрудник.

У каждого сотрудника есть пропуск со своим ID-номером (это положительное число), список активных пропусков сотрудников известен заранее.

Напишите программу, которая сначала запрашивает у пользователя количество сотрудников в офисе,

ID их пропусков, а затем запрашивает ID пропуска, который нужно найти в этом списке. Если такой есть,

то вывести «Сотрудник на месте», а иначе «Сотрудник не работает!».

Пример:

Кол-во сотрудников в офисе: 4
ID сотрудника: 10
ID сотрудника: 20
ID сотрудника: 30
ID сотрудника: 40
Какой ID ищем? 35
Сотрудник не работает!

Для сдачи заданий необходимо войти под своим именем

Программисты постоянно гуглят ошибки и ищут уже готовый код, который можно использовать для своей программы,

чтобы не изобретать велосипед. Андрей поступил также и нашёл для своего проекта код,

который должен находить минимальное и максимальное числа в списке. Вот этот код:

nums_list = []
N = int(input('Кол-во чисел в списке: '))
for _ in range(N):
 num = int(input('Очередное число: '))
 nums_list.append(num)

maximum = 0
minimum = -1
for i in nums_list:
 if maximum < i:
   maximum = i
 if minimum > i:
   minimum = i

print('Максимальное число в списке:', maximum)
print('Минимальное число в списке:', minimum)

Однако он столкнулся с проблемой. Если брать, к примеру, количество чисел 5,

то на тестах -1 -2 -3 -4 -5 и 1 2 3 4 5 программа выводит неверный результат.

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

Для сдачи заданий необходимо войти под своим именем

Пользователь вводит список из N чисел и число K. Напишите код, выводящий на экран сумму индексов элементов списка, которые кратны K.

Пример:

Кол-во чисел в списке: 4
Введите 1 число: 1
Введите 2 число: 20
Введите 3 число: 30
Введите 4 число: 4

Введите делитель: 10

Индекс числа 20: 1
Индекс числа 30: 2
Сумма индексов: 3

Для сдачи заданий необходимо войти под своим именем

В собачьих бегах участвует N собак, у каждой из них есть определённое количество очков за сезон.

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

собаки с наибольшим и наименьшим количеством очков поменялись местами! Нужно это исправить.

Дан список очков из N собак. Напишите программу, которая меняет местами наибольший и наименьший элементы в списке.

Для сдачи заданий необходимо войти под своим именем

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

В этот раз у нас стоит задача сделать фишку с поиском и заменой символов в выделенной строчке.

Например, человек что-то перечислял в тексте, но ошибся и вместо точек с запятой использовал двоеточия. Лингвисты негодуют.

Пользователь вводит строку S. Напишите программу, которая заменяет в строке все двоеточия (:) на точки с запятой (;).

Также подсчитайте количество замен и выведите ответ на экран (и новую строку тоже). Для решения используйте список.

Пример:

Введите строку: гвозди:шурупы:гайки
Исправленная строка: гвозди;шурупы;гайки
Кол-во замен: 2

Для сдачи заданий необходимо войти под своим именем

Дана строка S и номер позиции символа в строке. Напишите программу, которая выводит соседей этого символа и сообщение

о количестве таких же символов среди этих соседей: их нет, есть ровно один или есть два таких же.

Пример 1:

Введите строку: abbc
Номер символа: 3

Символ слева: b
Символ справа: c
Есть ровно один такой же символ.

Пример 2:

Введите строку: abсd
Номер символа: 3

Символ слева: b
Символ справа: d
Таких же символов нет.

Для сдачи заданий необходимо войти под своим именем

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

Теперь эту программу нужно улучшить. Есть список из трёх слов, которые вводит пользователь.

Затем вводится сам текст произведения строго по словам. Текст вводится до тех пор, пока не встретится слово end.

Напишите программу, которая посчитает, сколько раз слова пользователя встречаются в тексте.

Пример:

Введите 1 слово: я
Введите 2 слово: год
Введите 3 слово: лучший

Слово из текста: этот
Слово из текста: год
Слово из текста: -
Слово из текста: лучший
Слово из текста: год

Подсчёт слов в тексте
я: 0
год: 2
лучший: 1

Для сдачи заданий необходимо войти под своим именем

Дано целое число N. Напишите программу, которая формирует список из нечётных чисел от одного до N.

Пример 1:

Введите число: 1

Список из нечётных чисел от одного до N: [1]

Пример 2:

Введите число: 14

Список из нечётных чисел от одного до N: [1, 3, 5, 7, 9, 11, 13]

Для сдачи заданий необходимо войти под своим именем

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

Дан список из восьми имён: Артемий, Борис, Влад, Гоша, Дима, Евгений, Женя, Захар. Напишите программу, которая выводит элементы списка только с чётными индексами.

Пример:

Первый день: ['Артемий', 'Влад', 'Дима', 'Женя']

Для сдачи заданий необходимо войти под своим именем

В базе магазина электроники есть список видеокарт компании NVIDIA разных поколений. Вместо полных названий хранятся только числа, которые обозначают модель и поколение видеокарты. Недавно компания выпустила новую линейку видеокарт. Самые старшие поколения разобрали за пару дней.

Напишите программу, которая удаляет списка видеокарт наибольшие элементы.

Пример:

Количество видеокарт: 5
1 Видеокарта: 4070
2 Видеокарта: 4060
3 Видеокарта: 5090
4 Видеокарта: 4070
5 Видеокарта: 5090

Старый список видеокарт: [ 4070 4060 5090 4070 5090 ]
Новый список видеокарт: [ 4070 4060 4070 ]

Для сдачи заданий необходимо войти под своим именем

Илья зашёл на любительский киносайт, на котором пользователи оставляют рецензии на фильмы. Их список:

films = ['Крепкий орешек', 'Назад в будущее', 'Таксист', 'Леон', 'Богемская рапсодия', 'Город грехов', 'Мементо', 'Отступники', 'Деревня']

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

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

Пример:

Сколько фильмов хотите добавить? 3
Введите название фильма: Леон
Введите название фильма: Безумный Макс
Ошибка: фильма Безумный Макс у нас нет :(
Введите название фильма: Мементо
Ваш список любимых фильмов: Леон, Мементо

Для сдачи заданий необходимо войти под своим именем

Контейнеры на складе лежат в ряд в порядке невозрастания (меньше либо равно) массы в килограммах. На склад привезли ещё один контейнер, который тоже нужно положить на определённое место.

Напишите программу, которая получает на вход невозрастающую последовательность натуральных чисел. Они означают массу каждого контейнера в ряду. После этого вводится число X — масса нового контейнера. Программа выводит номер, под которым будет лежать новый контейнер. Если в ряде есть контейнеры с массой, как у нового, то его нужно положить после них.

Обеспечьте контроль ввода: все числа не превышают 200.

Пример:

Количество контейнеров: 8
Введите вес контейнера: 165 
Введите вес контейнера: 163 
Введите вес контейнера: 160 
Введите вес контейнера: 160 
Введите вес контейнера: 157 
Введите вес контейнера: 157 
Введите вес контейнера: 155 
Введите вес контейнера: 154 

Введите вес нового контейнера: 162

Номер, который получит новый контейнер: 3

Для сдачи заданий необходимо войти под своим именем

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

Даны список из N элементов и целое число K. Напишите программу, которая циклически сдвигает элементы списка вправо на K позиций. Используйте минимально возможное количество операций присваивания.

Пример 1:

Сдвиг: 1
Введите целое число (для завершения ввода нажмите Enter): 1
Введите целое число (для завершения ввода нажмите Enter): 2
Введите целое число (для завершения ввода нажмите Enter): 3
Введите целое число (для завершения ввода нажмите Enter): 4
Введите целое число (для завершения ввода нажмите Enter): 5
Введите целое число (для завершения ввода нажмите Enter): 
Изначальный список: [1, 2, 3, 4, 5]
Сдвинутый список: [5, 1, 2, 3, 4]

Пример 2:

Сдвиг: 3
Введите целое число (для завершения ввода нажмите Enter): 1
Введите целое число (для завершения ввода нажмите Enter): 4
Введите целое число (для завершения ввода нажмите Enter): -3
Введите целое число (для завершения ввода нажмите Enter): 0
Введите целое число (для завершения ввода нажмите Enter): 10
Введите целое число (для завершения ввода нажмите Enter): 
Изначальный список: [1, 4, -3, 0, 10]
Сдвинутый список: [-3, 0, 10, 1, 4]

Для сдачи заданий необходимо войти под своим именем

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

Напишите такую программу.

Пример 1:

Введите слово: мадам
Слово является палиндромом

Пример 2:

Введите слово: abccba
Слово является палиндромом

Пример 3:

Введите слово: abbd
Слово не является палиндромом

Для сдачи заданий необходимо войти под своим именем

Дан список из N чисел. Напишите программу, которая сортирует элементы списка по возрастанию и выводит их на экран. Дополнительный список использовать нельзя.

Также нельзя использовать готовые функции sorted/min/max и метод sort.

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

Пример:

Введите целое число (для завершения ввода нажмите Enter): 1
Введите целое число (для завершения ввода нажмите Enter): 4
Введите целое число (для завершения ввода нажмите Enter): -3
Введите целое число (для завершения ввода нажмите Enter): 0
Введите целое число (для завершения ввода нажмите Enter): 10
Введите целое число (для завершения ввода нажмите Enter): 
Изначальный список: [1, 4, -3, 0, 10]

Отсортированный список: [-3, 0, 1, 4, 10]

Для сдачи заданий необходимо войти под своим именем

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

Напишите программу, которая считывает целые числа из списка и выводит из него только чётные в обратном порядке. Создавать дополнительные списки нельзя.

Нельзя использовать:

- метод reverse,

- функцию reversed,

- разворот при помощи среза (список[::-1]).

Пример:

Введите целое число (для завершения ввода нажмите Enter): 1
Введите целое число (для завершения ввода нажмите Enter): 4
Введите целое число (для завершения ввода нажмите Enter): -3
Введите целое число (для завершения ввода нажмите Enter): 0
Введите целое число (для завершения ввода нажмите Enter): 10
Введите целое число (для завершения ввода нажмите Enter): 

Чётные числа в обратном порядке: 10 4

________

Советы

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

- Список является изменяемым типом данных, значит вы можете изменять положение элементов внутри списка. Это может стать основой ещё одного варианта решения задачи. Можете выбрать любой или решить обоими способами!

- Обратите внимание: некоторые операции со списками создают их копии, даже если вы не указываете на это явно. Простой пример, который это демонстрирует:

test = [1, 2, 3]
print(id(test)) # Здесь вы увидите один айди
test = test[::-1]
print(id(test)) # А здесь уже другой

Для сдачи заданий необходимо войти под своим именем

## Задача 1. Зоопарк

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

В базе данных они хранятся в виде вот такого списка:

zoo = ['lion', 'kangaroo', 'elephant', 'monkey']

Сегодня в зоопарк завезли медведя (bear) и посадили его между львом и кенгуру. В итоге животных стало пять.

А через неделю слона перевезли в другое место и в списке снова стало четверо животных.

Реализуйте эти действия в коде программы и выведите в консоль итоговый список животных, а также покажите,

в какой клетке сидят лев и обезьяна. Для этого используйте методы списков.

Результат работы программы:
Зоопарк: ['lion', 'bear', 'kangaroo', 'monkey']
Лев сидит в клетке номер 1
Обезьяна сидит в клетке номер 4

Для сдачи заданий необходимо войти под своим именем

В одной компании наступили «тёмные времена», и сотрудников стали сокращать. Зарплаты сотрудников хранятся в списке из N этих самых зарплат. Зарплаты уже уволенных сотрудников обозначаются в списке числом 0.

Напишите программу, которая запрашивает у пользователя количество сотрудников и их зарплаты, затем удаляет все элементы списка со значением 0 и выводит в консоль, сколько сотрудников осталось, а также их зарплаты. Дополнительный список использовать нельзя.

Пример:

Кол-во сотрудников: 7
Зарплата 1 сотрудника: 10000
Зарплата 2 сотрудника: 25000
Зарплата 3 сотрудника: 0
Зарплата 4 сотрудника: 50000
Зарплата 5 сотрудника: 60000
Зарплата 6 сотрудника: 0
Зарплата 7 сотрудника: 17000

Осталось сотрудников: 5
Зарплаты: [10000, 25000, 50000, 60000, 17000]

Дополнительно: выведите на экран максимальную и минимальную зарплату оставшихся сотрудников.

Для этого используйте функции max и min. Да, те самые, которыми нельзя называть переменные. В скобках функций просто укажите список.

Пример:

Максимальная зп: 60000
Минимальная зп: 10000

Для сдачи заданий необходимо войти под своим именем

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

фильмов из тех, которые есть на сайте. Вот сам список фильмов (конечно же, можете брать свои):

films = [
    'Крепкий орешек', 'Назад в будущее', 'Таксист',
    'Леон', 'Богемская рапсодия', 'Город грехов',
    'Мементо', 'Отступники', 'Деревня',
    'Проклятый остров', 'Начало', 'Матрица'
]

Напишите программу, которая позволяет добавлять в свой рейтинг фильмы, удалять их оттуда,

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

чтобы в список нельзя было добавить один и тот же фильм несколько раз.

Пример:

Ваш текущий топ фильмов: []
Название фильма: Леон
Команды: добавить, вставить, удалить
Введите команду: добавить

Ваш текущий топ фильмов: [‘Леон’]
Название фильма: Леон
Команды: добавить, вставить, удалить
Введите команду: добавить
Этот фильм уже есть в вашем списке.

Ваш текущий топ фильмов: [‘Леон’]
Название фильма: Матрица
Команды: добавить, вставить, удалить
Введите команду: добавить

Ваш текущий топ фильмов: [‘Леон’, ‘Матрица’]
Название фильма: Леон
Команды: добавить, вставить, удалить
Введите команду: удалить

Ваш текущий топ фильмов: [‘Матрица’]
Название фильма: ......

Для сдачи заданий необходимо войти под своим именем

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

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

Пример:

Введите целое число: 5
Результат: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Для сдачи заданий необходимо войти под своим именем

Пользователь вводит фамилию, имя студента, город проживания, вуз, в котором он учится, и все его оценки.

Всё вводится в одну строку через пробел. Напишите программу, которая по этой информации составит словарь и выведет его на экран.

Пример:

Введите информацию о студенте через пробел
(имя, фамилия, город, место учёбы, оценки): Илья Иванов Москва МГУ 5 4 4 4 5

Результат:
Имя - Илья
Фамилия - Иванов
Город - Москва
Место учёбы - МГУ
Оценки - [5, 4, 4, 4, 5]

Для сдачи заданий необходимо войти под своим именем

Энтузиаст Степан, купив новый телефон, решил написать для него свою собственную операционную систему. И, конечно же, первое, что он захотел в ней реализовать, — это телефонная книга.

Напишите программу, которая запрашивает у пользователя имя контакта и номер телефона, добавляет их в словарь и выводит на экран текущий словарь контактов. Запрос на добавление идёт бесконечно (но можно задать своё условие для завершения программы).

Обеспечьте контроль ввода: если это имя уже есть в словаре, то выведите соответствующее сообщение.

Пример:

Текущие контакты на телефоне:
<Пусто>
Введите имя: Иван
Введите номер телефона: 100200300

Текущие контакты на телефоне:
Иван  100200300

Введите имя: Лена
Введите номер телефона: 8005555522

Текущие контакты на телефоне:
Иван  100200300
Лена  8005555522

Введите имя: Иван
Ошибка: такое имя уже существует.

Для сдачи заданий необходимо войти под своим именем

У мебельного магазина есть два склада, на которых хранятся разные категории товаров по парам «название — количество»:

small_storage = {
    'гвозди': 5000,
    'шурупы': 3040,
    'саморезы': 2000
}

big_storage = {
    'доски': 1000,
    'балки': 150,
    'рейки': 600
}

Магазин решил сократить аренду и скинуть все товары в большой склад (big_storage). После этого нас попросили реализовать поиск по товарам.

Напишите программу, которая объединяет оба словаря в один (в big_storage), затем запрашивает у пользователя название товара и выводит на экран его количество. Если такого товара нет, то выводит об этом ошибку. Для получения значения используйте метод get.

Для сдачи заданий необходимо войти под своим именем

Мы работаем в одной небольшой торговой компании, где все данные о продажах фруктов за год сохранены в словаре в виде пар «название фрукта — доход»:

incomes = {
    'apple': 5600.20,
    'orange': 3500.45,
    'banana': 5000.00,
    'bergamot': 3700.56,
    'durian': 5987.23,
    'grapefruit': 300.40,
    'peach': 10000.50,
    'pear': 1020.00,
    'persimmon': 310.00,
}

В компании наступил небольшой кризис, и нам поручено провести небольшой анализ дохода.

Напишите программу, которая находит общий доход, затем выводит фрукт с минимальным доходом и удаляет его из словаря.

Выведите итоговый словарь на экран.

Результат работы программы:

Общий доход за год составил 35419.34 рублей
Самый маленький доход у grapefruit. Он составляет 300.4 рублей
Итоговый словарь:
{'apple': 5600.2, 'orange': 3500.45, 'banana': 5000.0, 'bergamot': 3700.56, 'durian': 5987.23, 'peach': 10000.5, 'pear': 1020.0,
'persimmon': 310.0}

Подсказка:

min_name, min_value = min(incomes.items(), key=get_value)

При помощи функции и параметра key мы говорим пайтону как именно надо сравнивать между собой элементы Т.к. элементы записаны в таком виде - ('apple': 5600.20), а сравнивать мы хотим по значениям - то нам проосто надо брать для сравнения элементы под индексом 1 (если бы сравнивали по ключам, то индекс надо было бы заменить на 0)

print(result_sum, min_name, min_value)

Для сдачи заданий необходимо войти под своим именем

В нашу торговую компанию пришёл заказ:

order = {'apple': 2,
         'banana': 3,
         'pear': 1,
         'watermelon': 10,
         'chocolate': 5}
(ключи - названия товаров, значения - необходимое количество кг.)

incomes = {
    'apple': 5600.20,
    'orange': 3500.45,
    'banana': 5000.00,
    'bergamot': 3700.56,
    'durian': 5987.23,
    'grapefruit': 300.40,
    'peach': 10000.50,
    'pear': 1020.00,
    'persimmon': 310.00,
}

(ключи - названия товаров, значения - цена за 1 кг.)

Напишите программу, которая суммирует стоимость (цена * количество) всех заказанных товаров, и выведите итоговую сумму в консоль.

Если искомого товара нет на складе, то по умолчанию получите 0. В этом поможет метод get и установка значения по умолчанию.

Для сдачи заданий необходимо войти под своим именем

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

players_dict = {
    1: {'name': 'Vanya', 'team': 'A', 'status': 'Rest'},
    2: {'name': 'Lena', 'team': 'B', 'status': 'Training'},
    3: {'name': 'Maxim', 'team': 'C', 'status': 'Travel'},
    4: {'name': 'Egor', 'team': 'C', 'status': 'Rest'},
    5: {'name': 'Andrei', 'team': 'A', 'status': 'Training'},
    6: {'name': 'Sasha', 'team': 'A', 'status': 'Rest'},
    7: {'name': 'Alina', 'team': 'B', 'status': 'Rest'},
    8: {'name': 'Masha', 'team': 'C', 'status': 'Travel'}
}

Напишите программу, которая выводит на экран вот такие данные в разных строчках:

Все члены команды из команды А, которые отдыхают.

Все члены команды из группы B, которые тренируются.

Все члены команды из команды C, которые путешествуют.

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая считает количество уникальных знаков пунктуации в символьной строке.

К знакам пунктуации относятся символы из набора ".,;:!?". Набор должен храниться в виде множества.

Пример:

Введите строку: Я! Есть. Грут?! Я, Грут и Есть.
Количество знаков пунктуации: 4

Для сдачи заданий необходимо войти под своим именем

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

Для начала было сгенерировано два набора чисел:

nums_1 = [29, 17, 10, 15, 13, 22, 12, 22, 7, 24, 26, 3, 11, 2, 3, 16, 19, 21, 2, 3, 8, 27, 2, 17, 2, 20, 12, 21, 3, 1]
nums_2 = [16, 21, 30, 24, 5, 7, 23, 13, 11, 5, 21, 5, 19, 9, 12, 9, 15, 16, 29, 8, 16, 1, 22, 15, 16, 9, 1, 13, 21, 21]

Вас попросили написать программу, которая будет наглядно демонстрировать работу со множествами с помощью этих чисел.

Напишите программу, которая преобразует списки во множества и убирает повторяющиеся элементы.

Затем удаляет минимальный элемент из каждого множества и добавляет туда случайное число в диапазоне от 100 до 200. Затем выполните

следующие действия со множествами:

Вывести все элементы множеств (объединение).

Вывести только общие элементы (пересечение).

Вывести элементы, входящие в nums_2, но не входящие в nums_1.

Пример:

1-е множество: {1, 2, 3, 7, 8, 10, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 24, 26, 27, 29}
2-е множество: {1, 5, 7, 8, 9, 11, 12, 13, 15, 16, 19, 21, 22, 23, 24, 29, 30}

Минимальный элемент 1-го множества: 1
Минимальный элемент 2-го множества: 1

Случайное число для 1-го множества: 126
Случайное число для 2-го множества: 169

Объединение множеств: {2, 3, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 27, 29, 30, 169, 126}
Пересечение множеств: {7, 8, 11, 12, 13, 15, 16, 19, 21, 22, 24, 29}
Элементы, входящие в nums_2, но не входящие в nums_1: {5, 9, 169, 23, 30}

Для сдачи заданий необходимо войти под своим именем

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

Подсказка: можно использовать вот такое сравнение '0'<=x<='9'

Пример:

Введите строку: ab1n32kz2
Различные цифры строки: 123

Для сдачи заданий необходимо войти под своим именем

Нет заданий

Мы продолжаем писать приложение для удобного прослушивания музыки, но теперь наши песни хранятся в виде словаря, а не вложенных списков. Каждая песня состоит из названия и продолжительности с точностью до долей минут.

violator_songs = {
    'World in My Eyes': 4.86,
    'Sweetest Perfection': 4.43,
    'Personal Jesus': 4.56,
    'Halo': 4.9,
    'Waiting for the Night': 6.07,
    'Enjoy the Silence': 4.20,
    'Policy of Truth': 4.76,
    'Blue Dress': 4.29,
    'Clean': 5.83
}

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

Пример:

Сколько песен выбрать? 3
Название 1 песни: Halo
Название 2 песни: Enjoy the Silence
Название 3 песни: Clean

Общее время звучания песен: 14.93 минуты

### Что оценивается

- Результат вычислений корректен.

- input содержит корректные приглашения для ввода.

- Формат вывода соответствует примеру.

- Переменные и функции имеют значащие имена, не только a, b, c, d.

Для сдачи заданий необходимо войти под своим именем

Антон, помимо программирования, также увлекается и географией, поэтому он решил связать эти две области и написать для своего проекта небольшую программу-навигатор.

Пользователь вводит количество стран N, а затем N раз вводит страну и города, которые в этой стране находятся, в одну строку. После пользователь вводит три названия городов. Реализуйте такую программу и для каждого из трёх городов укажите, в какой стране он находится. Если такого города нет, то выведите соответствующее сообщение.

Пример:

Количество стран: 2
Первая страна: Россия Москва Петербург Новгород
Вторая страна: Германия Берлин Лейпциг Мюнхен

Первый город: Москва
Город Москва расположен в стране Россия.

Второй город: Мюнхен
Город Мюнхен расположен в стране Германия.

Третий город: Рим
По городу Рим данных нет.

### Что оценивается

- Результат вычислений корректен.

- input содержит корректные приглашения для ввода.

- Формат вывода соответствует указанному в задаче.

- Переменные и функции имеют значащие имена, не только a, b, c, d.

Для сдачи заданий необходимо войти под своим именем

При работе с API (application programming interface) сайта биржи по криптовалюте вы получили вот такие данные в виде словаря:

data = {
    "address": "0x544444444444",
    "ETH": {
        "balance": 444,
        "totalIn": 444,
        "totalOut": 4
    },
    "count_txs": 2,
    "tokens": [
        {
            "fst_token_info": {
                "address": "0x44444",
                "name": "fdf",
                "decimals": 0,
                "symbol": "dsfdsf",
                "total_supply": "3228562189",
                "owner": "0x44444",
                "last_updated": 1519022607901,
                "issuances_count": 0,
                "holders_count": 137528,
                "price": False
            },
            "balance": 5000,
            "totalIn": 0,
            "total_out": 0
        },
        {
            "sec_token_info": {
                "address": "0x44444",
                "name": "ggg",
                "decimals": "2",
                "symbol": "fff",
                "total_supply": "250000000000",
                "owner": "0x44444",
                "last_updated": 1520452201,
                "issuances_count": 0,
                "holders_count": 20707,
                "price": False
            },
            "balance": 500,
            "totalIn": 0,
            "total_out": 0
        }
    ]
}

Теперь вам предстоит немного обработать эти данные.

Напишите программу, которая выполняет следующий алгоритм действий:

1. Вывести списки ключей и значений словаря.

2. В “ETH” добавить ключ “total_diff” со значением 100.

3. Внутри “fst_token_info” значение ключа “name” поменять с “fdf” на “doge”.

4. Удалить “total_out” из tokens и присвоить его значение в “total_out” внутри “ETH”.

5. Внутри "sec_token_info" изменить название ключа “price” на “total_price”.

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

Что оценивается

- Результат вычислений корректен.

- В коде соблюдается порядок действий алгоритма.

- Не используется других переменных, кроме data.

Для сдачи заданий необходимо войти под своим именем

В базе данных магазина вся необходимая информация по товарам делится на два словаря: первый отвечает за коды товаров, второй — за списки количества разнообразных товаров на складе:

goods = {
    'Лампа': '12345',
    'Стол': '23456',
    'Диван': '34567',
    'Стул': '45678',
}

store = {
    '12345': [
        {'quantity': 27, 'price': 42},
    ],
    '23456': [
        {'quantity': 22, 'price': 510},
        {'quantity': 32, 'price': 520},
    ],
    '34567': [
        {'quantity': 2, 'price': 1200},
        {'quantity': 1, 'price': 1150},
    ],
    '45678': [
        {'quantity': 50, 'price': 100},
        {'quantity': 12, 'price': 95},
        {'quantity': 43, 'price': 97},
    ],
}

Каждая запись второго словаря отображает, сколько и по какой цене закупалось товаров (цена указана за одну штуку).

Напишите программу, которая рассчитывает, на какую сумму лежит каждого товара на складе, и выводит эту информацию на экран.

Результат работы программы:

Лампа — 27 штук, стоимость 1134 рубля
Стол — 54 штуки, стоимость 27 860 рублей
Диван — 3 штуки, стоимость 3550 рублей
Стул — 105 штук, стоимость 10 311 рублей

### Что оценивается

- Результат вычислений корректен.

- Формат вывода соответствует указанному в задаче.

- Переменные и функции имеют значащие имена, не только a, b, c, d.

Для сдачи заданий необходимо войти под своим именем

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

Пример:

Введите текст: здесь что-то написано
Оригинальный словарь частот:
  : 2
- : 1
З : 1
а : 2
д : 1
е : 1
и : 1
н : 2
о : 3
п : 1
с : 2
т : 2
ч : 1
ь : 1

Инвертированный словарь частот:
1 : ['З', 'д', 'е', 'ь', 'ч', '-', 'п', 'и']
2 : ['с', ' ', 'т', 'н', 'а']
3 : ['о']

### Что оценивается

- Результат вычислений корректен.

- input содержит корректные приглашения для ввода.

- Формат вывода соответствует примеру.

- Основной функционал описан в отдельных функциях.

- Переменные и функции имеют значащие имена, не только a, b, c, d.

Для сдачи заданий необходимо войти под своим именем

Одна библиотека поручила вам написать программу для оцифровки словарей синонимов. На вход в программу подаётся N пар слов. Каждое слово является синонимом к своему парному слову.

Реализуйте код, который составляет словарь синонимов (все слова в словаре различны), затем запрашивает у пользователя слово и выводит на экран его синоним. Обеспечьте контроль ввода: если такого слова нет, то выведите ошибку и запросите слово ещё раз. При этом проверка не должна зависеть от регистра символов.

Пример:

Введите количество пар слов: 3
Первая пара: Привет — Здравствуйте
Вторая пара: Печально — Грустно
Третья пара: Весело — Радостно

Введите слово: интересно
Такого слова в словаре нет.
Введите слово: здравствуйте
Синоним: Привет

### Что оценивается

- Результат вычислений корректен.

- input содержит корректные приглашения для ввода.

- Формат вывода соответствует примеру.

- Переменные и функции имеют значащие имена, не только a, b, c, d.

Для сдачи заданий необходимо войти под своим именем

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

На вход в программу подаётся N заказов. Каждый заказ представляет собой строку вида «Покупатель — название пиццы — количество заказанных пицц». Реализуйте код, который выводит список покупателей и их заказов по алфавиту. Учитывайте, что один человек может заказать одно и то же несколько раз.

Пример:

Введите количество заказов: 6
Первый заказ: Иванов Пепперони 1
Второй заказ: Петров Де-Люкс 2
Третий заказ: Иванов Мясная 3
Четвёртый заказ: Иванов Мексиканская 2
Пятый заказ: Иванов Пепперони 2
Шестой заказ: Петров Интересная 5

Иванов: 
	Мексиканская: 2
	Мясная: 3
	Пепперони: 3
Петров:
	Де-Люкс: 2
	Интересная: 5

### Что оценивается

- Результат вычислений корректен.

- input содержит корректные приглашения для ввода.

- Формат вывода соответствует примеру (перед названием пиццы пять пробелов).

- Переменные и функции имеют значащие имена, не только a, b, c, d.

Для сдачи заданий необходимо войти под своим именем

Артём и Борис играют в игру. Артём загадал натуральное число от 1 до N. Борис пытается угадать это число, для этого он называет несколько чисел подряд. Артём говорит Борису «да», если среди названных Борисом чисел есть задуманное. В противном случае Артём говорит «нет». После нескольких заданных вопросов Борис сдался и попросил вас помочь ему определить, какие числа мог задумать Артём.

Напишите программу, которая имитирует диалог Артёма и Бориса. В начале на вход подаётся число N — это максимальное число, которое мог загадать Артём. Затем Борис предполагает, что среди некоторых чисел есть то, которое загадал Артём (несколько чисел через пробел), а Артём отвечает. Так продолжается до тех пор, пока Борис не попросит помощи (пока не введётся строка «Помогите!»). В конце программы необходимо вывести, какие числа мог загадать Артём.

Пример реализации:

Введите максимальное число: 10

Нужное число есть среди вот этих чисел: 1 2 3 4 5
Ответ Артёма: Да

Нужное число есть среди вот этих чисел: 2 4 6 8 10
Ответ Артёма: Нет

Нужное число есть среди вот этих чисел: Помогите!
Артём мог загадать следующие числа: 1 3 5

### Что оценивается

- Результат вычислений корректен.

- input содержит корректные приглашения для ввода.

- Формат вывода соответствует примеру.

- Переменные и функции имеют значащие имена, не только a, b, c, d.

Для сдачи заданий необходимо войти под своим именем

В генеалогическом древе у каждого человека, кроме родоначальника, есть ровно один родитель. Каждому элементу дерева сопоставляется целое неотрицательное число, называемое высотой. У родоначальника высота равна 0, у любого другого элемента высота на один больше, чем у его родителя. Вам нужно написать программу, которая по заданному генеалогическому древу определяет высоту всех его элементов.

Программа получает на вход N количество человек в генеалогическом древе. Далее следует N − 1 строк, в каждой из которых задаётся родитель для каждого элемента дерева, кроме родоначальника. Каждая строка имеет вид «имя_потомка имя_родителя».

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

Пример:

Введите количество человек: 9
Первая пара: Alexei Peter_I
Вторая пара: Anna Peter_I
Третья пара: Elizabeth Peter_I
Четвёртая пара: Peter_II Alexei
Пятая пара: Peter_III Anna
Шестая пара: Paul_I Peter_III
Седьмая пара: Alexander_I Paul_I
Восьмая пара: Nicholaus_I Paul_I

«Высота» каждого члена семьи:
Alexander_I 4
Alexei 1
Anna 1
Elizabeth 1
Nicholaus_I 4
Paul_I 3
Peter_I 0
Peter_II 2
Peter_III 2

### Что оценивается

- Результат вычислений корректен.

- input содержит корректные приглашения для ввода.

- Формат вывода соответствует примеру.

- Переменные и функции имеют значащие имена, не только a, b, c, d.

Для сдачи заданий необходимо войти под своим именем

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

Пример 1:

Введите строку: aab
Можно сделать палиндромом

Пример 2:

Введите строку: aabc
Нельзя сделать палиндромом

### Что оценивается

- Результат вычислений корректен.

- input содержит корректные приглашения для ввода.

- Формат вывода соответствует примеру.

- Основной функционал описан в отдельной функции(-ях)

- Переменные и функции имеют значащие имена, не только a, b, c, d.

Для сдачи заданий необходимо войти под своим именем

Заполните один кортеж десятью случайными целыми числами от 0 до 5 включительно. Также заполните второй кортеж числами от 5 до 0.

Объедините два кортежа, создав тем самым третий кортеж. С помощью метода кортежа определите в нём количество нулей.

Выведите на экран третий кортеж и количество нулей в нём.

Для сдачи заданий необходимо войти под своим именем

Андрей однажды уже писал функции для расчёта площади сферы и объёма шара.

И теперь для своей курсовой работы ему пришлось связаться с цилиндрами.

Пользователь вводит два значения: радиус и высоту. Напишите функцию для расчёта площади боковой поверхности цилиндра и его полной площади.

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

Площадь боковой поверхности (r — радиус, h — высота):

side = 2 * pi * r *h

Полная площадь (S — площадь круга):

full = side + 2 * S

Для сдачи заданий необходимо войти под своим именем

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

В основном коде функция используется два раза, и на экран два раза выводится новый кортеж и случайное значение.

Причём второй раз выводится сумма первого случайного значения и второго.

Однако код, который вам дали, оказался нерабочим. Исправьте его в соответствии с описанием.

import random

def change(nums):
    index = random.randint(0, 5)
    value = random.randint(100, 1000)
    nums[index] = value
    return nums, value

my_nums = 1, 2, 3, 4, 5

new_nums, rand_val = change(my_nums)
print(new_nums, rand_val)
new_nums = change(new_nums)
rand_val += change(new_nums)
print(new_nums, rand_val)

Для сдачи заданий необходимо войти под своим именем

Какой-то нехороший человек решил подпортить жизнь frontend-разработчикам и добавил в код сайта символ ~ (тильда).

Но программисты быстро решили эту проблему, пройдясь по всему коду маленькой программой.

Пользователь вводит строку. Напишите программу, которая проходит по строке и выводит в консоль индексы символа ~.

Для решения этой задачи (и остальных тоже) используйте функцию enumerate.

Пример:
Строка: so~mec~od~e
Ответ: 2 6 9
`
Для сдачи заданий необходимо войти под своим именем

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

Затем для каждого списка создайте словарь из пар «индекс — значение» и выведите оба словаря на экран.

Подсказка: random

Пример:
Первый список: ['й', 'р', 'с', 'г', 'а', 'а', 'т', 'ж', 'е', 'к']
Второй список: ['д', 'а', 'а', 'в', 'т', 'ж', 'р', 'б', 'й', 'р']
Первый словарь: {0: 'й', 1: 'р', 2: 'с', 3: 'г', 4: 'а', 5: 'а', 6: 'т', 7: 'ж', 8: 'е', 9: 'к'}
Второй словарь: {0: 'д', 1: 'а', 2: 'а', 3: 'в', 4: 'т', 5: 'ж', 6: 'р', 7: 'б', 8: 'й', 9: 'р'}

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

Либо нам нужно генерировать случайное число, которое можно преобразовать в букву по таблице Unicodе.

Первый вариант проще, можете реализовать его самостоятельно, второй посложнее, реализуем его вместе:

print(ord("а"), ord("я")) посмотрим с какого числа начинаются русские буквы и где заканчиваются (ё искать не будем)

def get_random_letter(n):
    return random.choices([chr(i) for i in range(ord("а"), ord("я"))], k=n)

Для сдачи заданий необходимо войти под своим именем

Один заказчик попросил нас написать небольшой скрипт для своих криптографических нужд.

При этом он заранее предупредил, что скрипт должен уметь работать с любым итерируемым типом данных.

Напишите функцию odd_element, которая возвращает список из элементов итерируемого объекта (кортежа, строки, списка, словаря), у которых индекс чётный.

Пример 1:

Допустим, в программе есть такая строка: 'О Дивный Новый мир!'
Результат: ['О', 'Д', 'в', 'ы', ' ', 'о', 'ы', ' ', 'и', '!']

Пример 2:

Допустим, есть такой список: [100, 200, 300, 'буква', 0, 2, 'а']
Результат: [100, 300, 0, 'а']

Примечание: для проверки типа можно использовать функцию

isinstance(<элемент>, <тип данных>), которая возвращает True, если элемент принадлежит к этому типу данных,

и возвращает False в противном случае.

Заготовка для функции:

def odd_element(obj):
    ...

Для сдачи заданий необходимо войти под своим именем

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

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

Дан словарь с парами «название фрукта — цена»:

incomes = {
    'apple': 5600.20,
    'orange': 3500.45,
    'banana': 5000.00,
    'bergamot': 3700.56,
    'durian': 5987.23,
    'peach': 10000.50,
    'pear': 1020.00,
    'persimmon': 310.00,
}

Вывести на экран словарь в следующем виде:

apple -- 5600.2
orange -- 3500.45
banana -- 5000.0
bergamot -- 3700.56
durian -- 5987.23
peach -- 10000.5
pear -- 1020.0
persimmon -- 310.0

Не используйте обращение по ключу словаря.

Для сдачи заданий необходимо войти под своим именем

У вас есть данные о сервере, которые хранятся в виде вот такого словаря:

server_data = {
    "server": {
        "host": "127.0.0.1",
        "port": "10"
    },
    "configuration": {
        "access": "true",
        "login": "Ivan",
        "password": "qwerty"
    }
}

Напишите программу, которая выводит для пользователя эти данные так же красиво и понятно, как они представлены в словаре.

Результат работы программы:

server:
    host: 127.0.0.1
    port: 10
configuration:
    access: true
    login: Ivan
    password: qwerty

Для сдачи заданий необходимо войти под своим именем

Нашему другу дали задачу: «Есть словарь, в котором ключи — это числа от 0 до 4, а значения ключей — числа 0, 100, 144, 20 и 19 соответственно. Нужно написать программу, которая выводит список тех значений, у которых ключ делится на 2. Причём программа должна быть в одну строчку.» Программа у друга работает, но её не приняли, так как в ней не используется правило «не повторяйся» — это когда части кода не повторяются.

Помогите другу исправить решение задачи так, чтобы код в строчке не повторялся.

Решение друга:

print([{0: 0, 1: 100, 2: 144, 3: 20, 4: 19}[i_key] for i_key in {0: 0, 1: 100, 2: 144, 3: 20, 4: 19} if i_key % 2 == 0])

Для сдачи заданий необходимо войти под своим именем

Нет заданий

Ваня работает middle-разработчиком на Python в IT-компании. Один кандидат на позицию junior-разработчика прислал ему код тестового задания.

В задании был словарь из трёх студентов. Необходимо:

1. Вывести на экран список пар «ID студента — возраст».

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

Далее в основном коде вызывается функция, значения присваиваются отдельным переменным и выводятся на экран.

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

students = {
    1: {
        'name': 'Bob',
        'surname': 'Vazovski',
        'age': 23,
        'interests': ['biology, swimming']
    },
    2: {
        'name': 'Rob',
        'surname': 'Stepanov',
        'age': 24,
        'interests': ['math', 'computer games', 'running']
    },
    3: {
        'name': 'Alexander',
        'surname': 'Krug',
        'age': 22,
        'interests': ['languages', 'health food']
    }
}


def f(dict):
    lst = []
    string = ''
    for i in dict:
        lst += (dict[i]['interests'])
        string += dict[i]['surname']
    cnt = 0
    for s in string:
        cnt += 1
    return lst, cnt


pairs = []
for i in students:
    pairs += (i, students[i]['age'])


my_lst = f(students)[0]
l = f(students)[1]
print(my_lst, l)

Перепишите этот код так, чтобы он был максимально pythonic и Ваня мало к чему мог придраться (только если очень захочется). Убедитесь, что программа верно работает Проверки на существование записей в словаре не обязательны, но приветствуются.

Результат работы программы:

Список пар "ID студента — возраст": [(1, 23), (2, 24), (3, 22)]
Полный список интересов всех студентов: {'running', 'computer games', 'math', 'languages', 'biology, swimming', 'health food'}
Общая длина всех фамилий студентов: 20

Для сдачи заданий необходимо войти под своим именем

Спустя некоторое время заказчик попросил вас немного изменить скрипт для криптографии: теперь индексы элементов должны быть простыми числами.

Напишите функцию (crypto), которая возвращает список элементов итерируемого объекта (кортежа, строки, списка, словаря), у которых индекс — это простое число. Для проверки на простое число напишите отдельную функцию `is_prime`. Основной код оставьте пустым (используйте его только для тестирования).

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

Пример вызова функции:

print(crypto([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]))
Ответ в консоли: [2, 3, 5, 7]

Пример вызова функции:

print(crypto('О Дивный Новый мир!'))
Ответ в консоли: ['Д', 'и', 'н', 'й', 'в', 'й', 'р']

Для сдачи заданий необходимо войти под своим именем

Напишите функцию (slicer), которая на вход принимает кортеж и какой-то случайный элемент (его можно вводить с клавиатуры). Функция должна возвращать новый кортеж, начинающийся с первого появления элемента в нём и заканчивающийся вторым его появлением включительно.

Если элемента нет вовсе — вернуть пустой кортеж.

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

Основной код оставьте пустым или закомментированным (используйте его только для тестирования).

Пример вызова функции:

print(slicer((1, 2, 3, 4, 5, 6, 7, 8, 2, 2, 9, 10), 2))
Ответ в консоли: (2, 3, 4, 5, 6, 7, 8, 2)

Для сдачи заданий необходимо войти под своим именем

У вас есть словарь игроков, которые участвовали в трёх видах спорта. В словаре хранятся пары «ФИ — очки»:

players = {
    ("Ivan", "Volkin"): (10, 5, 13),
    ("Bob", "Robbin"): (7, 5, 14),
    ("Rob", "Bobbin"): (12, 8, 2)
}

Один программист попросил нас для его базы прислать другой вариант хранения этой информации.

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

Результат работы программы:

[('Ivan', 'Volkin', 10, 5, 13), ('Bob', 'Robbin', 7, 5, 14), ('Rob', 'Bobbin', 12, 8, 2)]

Для сдачи заданий необходимо войти под своим именем

В одной базе данных хранится информация о членах нескольких разных семей. Хранение реализовано с помощью словаря с парами «ФИ — возраст».

Напишите функцию (search_people), которая на вход принимает словарь с членами семей и фамилию для поиска. Функция должна возвращать Фамилию Имя и возраст всех членов одной семьи. Учтите, что, например, у двух людей разного пола фамилии отличаются окончанием. Поиск не должен быть регистрозависимым.

Основной код оставьте пустым или закомментированным (используйте его только для тестирования).

Пример:

people = {
    ('Сидоров', 'Никита '): 35,
    ('Сидоров', 'Алина '): 34,
    ('Сидорова', 'Павел '): 10,

print(search_people(people, 'Сидоров')
Ответ в консоли:
Сидоров Никита 35
Сидорова Алина 34
Сидоров Павел 10

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая инициализирует список из 10 случайных целых чисел, а затем делит эти числа на пары кортежей внутри списка. Выведите результат на экран.

Дополнительно: решите задачу несколькими способами.

Пример:

Оригинальный список: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Новый список: [(0, 1), (2, 3), (4, 5), (6, 7), (8, 9)]

Для сдачи заданий необходимо войти под своим именем

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

Основной код оставьте пустым или закомментированным (используйте его только для тестирования).

Пример вызова функции:

print(tpl_sort((6, 3, -1, 8, 4, 10, -5)))
Ответ в консоли: (-5, -1, 3, 4, 6, 8, 10)

Для сдачи заданий необходимо войти под своим именем

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

Напишите программу, которая бесконечно запрашивает у пользователя действие, которое он хочет совершить: добавить контакт или найти человека в списке контактов по фамилии.

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

Действие «поиск человека по фамилии»: программа запрашивает фамилию и выводит все контакты с такой фамилией и их номера телефонов. Поиск не должен зависеть от регистра символов.

Пример работы программы:

Введите номер действия:
 1. Добавить контакт
 2. Найти человека
1
Введите имя и фамилию нового контакта (через пробел): Иван Сидоров
Введите номер телефона: 888
Текущий словарь контактов: {('Иван', 'Сидоров'): 888}
Введите номер действия:
 1. Добавить контакт
 2. Найти человека
1
Введите имя и фамилию нового контакта (через пробел): Иван Сидоров
Такой человек уже есть в контактах.
Текущий словарь контактов: {('Иван', 'Сидоров'): 888}
Введите номер действия:
 1. Добавить контакт
 2. Найти человека
1
Введите имя и фамилию нового контакта (через пробел): Алиса Петрова
Введите номер телефона: 999
Текущий словарь контактов: {('Иван', 'Сидоров'): 888, ('Алиса', 'Петрова'): 999}
Введите номер действия:
 1. Добавить контакт
 2. Найти человека
2
Введите фамилию для поиска: Сидоров
Иван Сидоров 888
Введите номер действия:
 1. Добавить контакт
 2. Найти человека
…….

Для сдачи заданий необходимо войти под своим именем

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

*Здравствуйте! Мы собираемся устраивать соревнования по [данные засекречены] и хотим, чтобы вы написали эффективную программу, которая составляла бы нам протокол и определяла победителя и призёров. О логике работы программы ниже.*

*Правила соревнований*

1. Участники имеют право играть несколько раз. Количество попыток одного участника не ограничивается.

2. Окончательный результат участника определяется по одной игре, лучшей для этого участника.

3. Более высокое место в соревнованиях занимает участник, показавший лучший результат.

4. При равенстве результатов более высокое место занимает участник, раньше показавший лучший результат.

*Как проходят соревнования*

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

Напишите программу, которая по данным протокола определяет победителя и призёров. Гарантируется, что в чемпионате участвует не менее трёх игроков.

*Описание входных данных*

Первая строка содержит число N — это общее количество строк протокола. Каждая из следующих N строк содержит записанные через пробел результаты участника (целое неотрицательное число) и игровое имя (имя не может содержать пробелов). Строки исходных данных соответствуют строкам протокола и расположены в том же порядке, что и в протоколе.

Гарантируется, что в соревнованиях не менее трёх участников.

*Описание выходных данных*

Программа должна вывести имена и результаты трёх лучших игроков по форме, приведённой ниже в примере.

*Пример входных и выходных данных*

Сколько записей вносится в протокол? 9
Записи (результат и имя):
1-я запись: 69485 Jack
2-я запись: 95715 qwerty
3-я запись: 95715 Alex
4-я запись: 83647 M
5-я запись: 197128 qwerty
6-я запись: 95715 Jack
7-я запись: 93289 Alex
8-я запись: 95715 Alex
9-я запись: 95715 M

Итоги соревнований:
1-е место. qwerty (197128)
2-е место. Alex (95715)
3-е место. Jack (95715)

Для сдачи заданий необходимо войти под своим именем

В самом конце собеседования вас неожиданно спросили: «Расскажите, что делает функция zip?». Чтобы произвести впечатление, вы решили не только рассказать про неё, но и написать её аналог.

Даны строка и кортеж из чисел. Напишите программу, которая создаёт генератор из пар кортежей «символ — число». Затем выведите на экран сам генератор и кортежи.

Пример:

Строка: abcd
Кортеж чисел: (10, 20, 30, 40)

Результат:
<generator object <genexpr> at 0x00000204A4234048>
('a', 10)
('b', 20)
('c', 30)
('d', 40)

Дополнительно: создайте полный аналог функции zip — сделайте так, чтобы программа работала с любыми итерируемыми типами данных.

Для сдачи заданий необходимо войти под своим именем

Обычно программисты любят, когда всё просто и понятно. Но Антон не из таких.

Он любит устраивать себе челлендж, развиваться и сразу применять на практике то, что только что узнал.

И в этот раз он подумал реализовать подсчёт факториала без использования циклов.

Напишите функцию, которая считает факториал числа с помощью рекурсии.

Кстати, в Python есть ограничение на количество рекурсивных вызовов.

Попробуйте передать своей функции, например, число 1000 и посмотрите, что будет.

Для сдачи заданий необходимо войти под своим именем

На одном из форумов, посвящённых программированию, пользователь выложил такой код для расчёта степени числа без использования циклов, ** и функции math.pow():

def power(a, n):
    return a * power(a, n)

float_num = float(input('Введите вещественное число: '))
int_num = int(input('Введите степень числа: '))
print(float_num, '**', int_num, '=', power(float_num, int_num))

Другие пользователи отметили, что это решение нерабочее и в нём есть ошибки.

Исправьте это решение, не используя циклы, возведение в степень через ** и функцию math.pow()

Правильный результат:
Введите вещественное число: 1.5
Введите степень числа: 5
1.5 ** 5 = 7.59375

Для сдачи заданий необходимо войти под своим именем

Когда мы работаем с большой многоуровневой структурой, нам нередко необходимо пройтись по ней и найти нужный элемент.

Для этого в программировании используются специальные алгоритмы поиска.

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

В качестве примера можно использовать такой словарь:

site = {
    'html': {
        'head': {
            'title': 'Мой сайт'
        },
        'body': {
            'h2': 'Здесь будет мой заголовок',
            'div': 'Тут, наверное, какой-то блок',
            'p': 'А вот здесь новый абзац'
        }
    }
}

Пример 1:

Искомый ключ: h2
Значение: Здесь будет мой заголовок

Пример 2:

Искомый ключ: abc
Такого ключа в структуре сайта нет.

Для сдачи заданий необходимо войти под своим именем

В одном проекте на 10 000 строк кода произошла критическая ошибка. Хорошо, что старший разработчик быстро её нашёл и исправил.

Он решил проверить, смогли бы вы её исправить, если бы его не было на месте. Поэтому он написал для вас код с аналогичной ошибкой:

import random


def change_dict(dct):
    num = random.randint(1, 100)
    for i_key, i_value in dct.items():
        if isinstance(i_value, list):
            i_value.append(num)
        if isinstance(i_value, dict):
            i_value[num] = i_key
        if isinstance(i_value, set):
            i_value.add(num)


nums_list = [1, 2, 3]
some_dict = {1: 'text', 2: 'another text'}
uniq_nums = {1, 2, 3}
common_dict = {1: nums_list, 2: some_dict, 3: uniq_nums, 4: (10, 20, 30)}

change_dict(common_dict)
print(common_dict)

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

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

в зависимости от типа данных. Но при этом меняются и ранее объявленные переменные. Исправьте эту ошибку

и убедитесь, что nums_list, some_dict и uniq_nums не меняются.

#### Примечание:

Решить это задание можно разными способами

Мы можем вручную копировать каждый входящий элемент:

common_dict = {1: nums_list.copy(), 2: some_dict.copy(), 3: uniq_nums.copy(), 4: (10, 20, 30)}
change_dict(common_dict)
print(common_dict)

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

import copy

common_dict = {1: nums_list, 2: some_dict, 3: uniq_nums, 4: (10, 20, 30)}
common_dict_2 = copy.deepcopy(common_dict) # Она будет особенно полезна в структурах, в которых множество вложенных переменных
change_dict(common_dict_2)
print(common_dict_2)

print(nums_list, some_dict, uniq_nums)

Для сдачи заданий необходимо войти под своим именем

Друг никак не может понять эту тему с изменяемыми и неизменяемыми типами, ссылками, объектами и их id.

Видя, как он мучается, вы решили помочь ему и объяснить эту тему наглядно.

Пользователь вводит любой объект. Напишите программу, которая выводит на экран тип введённых данных,

информацию о его изменяемости, а также id этого объекта.

Пример 1:

Введите данные: привет
{'тип данных': 'строка', 'изменяемость': 'неизменяемый', 'id': 140439836549824}

Пример 2:

Введите данные: {‘a’: 10, ‘b’: 20}
{'тип данных': 'словарь', 'изменяемость': 'изменяемый', 'id': 140715674426816}

#### Примечание

Ввод объекта осуществляется не через инпут (решение с инпутом можно реализовать, но для этого придётся прописывать множество проверок

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

Добавим вспомогательные словари для работы (в них можно будет по необходимости добавлять типы, которых сейчас нет)

data_names_dict = {
    "<class 'str'>": "строка",
    "<class 'dict'>": "словарь",
    "<class 'list'>": "список",
    "<class 'set'>": "множество"
}

mutable_check_helper = {
    "mutable": ("словарь", "список", "множество")
}

Для сдачи заданий необходимо войти под своим именем

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

Вопрос — обязательный позиционный аргумент, остальные — со значениями по умолчанию. При корректном ответе функция может возвращать что угодно — например, число 1 при ответе «да» или 0 при ответе «нет».

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

Пример работы программы:

Вы действительно хотите выйти? что
Неверный ввод. Пожалуйста, введите 'да' или 'нет'.
Осталось попыток: 3
Вы действительно хотите выйти? да
Удалить файл? не знаю
Так удалить или нет?
Осталось попыток: 3
Удалить файл? нет
Записать файл? ага
Неверный ввод. Пожалуйста, введите 'да' или 'нет'.
Осталось попыток: 1
Записать файл? да

Для сдачи заданий необходимо войти под своим именем

При работе со значениями по умолчанию и изменяемыми типами данных нужно знать и остерегаться ещё одной интересной штуки.

Напишите функцию с двумя аргументами: первый — число num, позиционный аргумент; второй — список lst, по умолчанию он пустой.

В теле функции в список добавляется число num и сам список выводится на экран.

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

Напишите функцию с двумя аргументами: первый — число num, позиционный аргумент; второй — список lst, по умолчанию он пустой.

В теле функции в список добавляется число num и сам список выводится на экран.

В основной программе вызовите функции три раза только с одним аргументом (числом), например так:

add_num(5)
add_num(10)
add_num(15)

И посмотрите, что произойдёт.

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

дним аргументом (числом), например так:

add_num(5)
add_num(10)
add_num(15)

И посмотрите, что произойдёт.

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

Для сдачи заданий необходимо войти под своим именем

Нашего друга попросили написать функцию, которая на вход принимает список всякого мусора.

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

Вот список правил, что нужно сделать с изначальным списком:

1) Если в списке встретился словарь, то оставляем его.

2) Если в списке встретилась строка, то из неё нужно сделать словарь и положить его в итоговый список, например “abc” → {“abc”: “abc”}.

3) С числами нужно сделать то же самое, что и со строками.

4) Всё остальное выкидываем из нашего списка.

Друг написал программу, но в ней ошибка, так как она что-то не то выводит :( Нужна ваша помощь, вот сама программа:

def create_dict(data, template=dict()):
    if isinstance(data, dict):
        return data
    if isinstance(data, int) or isinstance(data, float) or isinstance(data, str):
        return template[data] = data


def data_preparation(old_list):
    new_list = []
    for i_element in old_list:
        new_list.append(create_dict(i_element))
    return new_list


data = [“sad”, {“sds”: 23}, {43}, [12, 42, 1], 2323]
data = data_preparation(data)
print(data)

Исправьте программу и убедитесь, что всё работает верно.

Для сдачи заданий необходимо войти под своим именем

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

Пример работы программы:

Введите num: 10
1
2
3
4
5
6
7
8
9
10

Для сдачи заданий необходимо войти под своим именем

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

Напишите функцию (my_zip2), которая будет являться аналогом функции zip и сделайте так, чтобы программа работала с любыми итерируемыми типами данных.

- Нельзя пользоваться циклами (за исключением генераторов), условными операторами и функциями определения типа (isinstance или type).

- Функция должна возвращать список с кортежами, в котором n-ый кортеж состоит из n-ых элементов всех последовательностей. Например, десятый кортеж будет содержать десятый элемент каждой из переданных последовательностей

- Основной код оставьте пустым или закомментированным (используйте его только для тестирования).

Основной код оставьте пустым или закомментированным (используйте его только для тестирования).

**Пример 1**:

a = [{"x": 4}, "b", "z", "d"]
b = (10, {20,}, [30], "z")
print(my_zip(a, b))  # -> [({‘x’: 4}, 10), (‘b’, {20}), (‘z’, [30]), (‘d’, ‘z’)]

**Пример 2**:

a = [1, 2, 3, 4, 5]
b = {1: "s", 2: "q", 3: 4}
x = (1, 2, 3, 4, 5)
print(my_zip(a, b, x))  # -> [(1, 1, 1), (2, 2, 2), (3, 3, 3)]

Для сдачи заданий необходимо войти под своим именем

Числа Фибоначчи — это ряд чисел, в котором каждое следующее число равно сумме двух предыдущих: 1, 1, 2, 3, 5, 8, 13…

Пользователь вводит `num_pos`. Напишите функцию, которая выводит число, стоящее на позиции `num_pos` в ряде Фибоначчи.

Пример 1:

Введите позицию числа в ряде Фибоначчи: 6
Число: 8

Пример 2:

Введите позицию числа в ряде Фибоначчи: 10
Число: 55

Для сдачи заданий необходимо войти под своим именем

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

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

site = {
	'html': {
		'head': {
			'title': 'Мой сайт'
		},
		'body': {
			'h2': 'Здесь будет мой заголовок',
			'div': 'Тут, наверное, какой-то блок',
			'p': 'А вот здесь новый абзац'
		}
	}
}

Пример 1:

Введите искомый ключ: head
Хотите ввести максимальную глубину? Y/N: n
Значение ключа: {'title': 'Мой сайт'}

Пример 2:

Введите искомый ключ: head
Хотите ввести максимальную глубину? Y/N: y
Введите максимальную глубину: 1
Значение ключа: None

Для сдачи заданий необходимо войти под своим именем

У нас есть функция, которая делает определённые действия с входными данными:

1) берёт факториал от числа;

2) результат делит на куб входного числа;

3) получившееся число возводит в 10-ю степень.

def calculating_math_func(data):
	result = 1
	for index in range(1, data + 1):
		result *= index
	result /= data ** 3
	result = result ** 10
	return result

Однако каждый раз нам приходится делать сложные вычисления, хотя входные и выходные данные одни и те же. И тут наши знания тонкостей Python должны нам помочь.

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

Основной код оставьте пустым или закомментированным (используйте его только для тестирования).

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

Для сдачи заданий необходимо войти под своим именем

Вы сделали для заказчика структуру сайта по продаже телефонов:

site = {
	'html': {
		'head': {
			'title': 'Куплю/продам телефон недорого'
		},
		'body': {
			'h2': 'У нас самая низкая цена на iPhone',
			'div': 'Купить',
			'p': 'Продать'
		}
	}
}

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

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

Условия: структуру сайта нужно описать один раз, копипасту никто не любит.

Подсказка: используйте рекурсию.

Пример:

Сайт для iPhone:
site = {
	'html': {
		'head': {
			'title': 'Куплю/продам iPhone недорого'
		},
		'body': {
			'h2': 'У нас самая низкая цена на iPhone',
			'div': 'Купить',
			'p': 'Продать'
		}
	}
}

Сколько сделать ещё сайтов: 1

Введите название продукта для нового сайта: Samsung
Сайт для Samsung:
site = {
	'html': {
		'head': {
			'title': 'Куплю/продам Samsung недорого'
		},
		'body': {
			'h2': 'У нас самая низкая цена на Samsung',
			'div': 'Купить',
			'p': 'Продать'
		}
	}
}

Для сдачи заданий необходимо войти под своим именем

Как вы знаете, в Python есть полезная функция sum, которая умеет находить сумму элементов списков. Но иногда базовых возможностей функций не хватает для работы и приходится их усовершенствовать.

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

- складывать числа из списка списков;

- складывать числа из набора параметров.

Основной код оставьте пустым или закомментированным (используйте его только для тестирования).

Примеры вызовов функции:

my_sum([[1, 2, [3]], [1], 3])
Ответ в консоли: 10

my_sum(1, 2, 3, 4, 5)
Ответ в консоли: 15

Для сдачи заданий необходимо войти под своим именем

Вы уже работали с многомерными списками и решали задачи, где с помощью list comprehensions «выпрямляли» многомерные списки в один. Однако такой фокус не пройдёт, если у элементов разные уровни вложенности и этих списков неограниченное количество.

Дан такой список:

nice_list = [1, 2, [3, 4], [[5, 6, 7], [8, 9, 10]], [[11, 12, 13], [14, 15], [16, 17, 18]]]

Напишите рекурсивную функцию, которая раскрывает все вложенные списки, то есть оставляет только внешний список.

Основной код оставьте пустым или закомментированным (используйте его только для тестирования).

print(extract_list(nice_list))
Ответ в консоли: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]

Подсказка: можно возвращать списки и срезы списков.

Для сдачи заданий необходимо войти под своим именем

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

Головоломка «Ханойские башни» состоит из трёх стержней, пронумерованных числами 1, 2, 3. На стержень 1 надета пирамидка из N дисков различного диаметра в порядке возрастания диаметра. Диски можно перекладывать с одного стержня на другой по одному, при этом диск нельзя класть на диск меньшего диаметра.

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

Напишите программу, которая решает головоломку — для данного числа дисков N печатает последовательность перекладываний в формате A B C, где:

- A — номер перекладываемого диска;

- B — номер стержня, с которого снимается данный диск;

- C — номер стержня, на который надевается данный диск.

Например, строка 1 2 3 означает перемещение диска номер 1 со стержня 2 на стержень 3. В одной строке печатается одна команда. Диски пронумерованы числами от 1 до n в порядке возрастания диаметров.

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

Решение оформите в виде функции move (n, x, y), которая печатает последовательность перекладываний дисков для перемещения пирамидки высотой N со стержня номер X на стержень номер Y.

Пример:

Введите количество дисков: 2
Переложить диск 1 со стержня номер 1 на стержень номер 2
Переложить диск 2 со стержня номер 1 на стержень номер 3
Переложить диск 1 со стержня номер 2 на стержень номер 3

**Совет:** Для начала определите номер промежуточного колышка. Для этого подумайте о сумме трех чисел колышка.

Для сдачи заданий необходимо войти под своим именем

Вы работаете системным администратором в одной компании. На диске каждого сотрудника компании в специальной папке access лежит файл admin.bat. Этот файл предназначен для вас, и вам нужен путь до этого файла, причём как относительный, так и абсолютный. Недолго думая, вы решили написать небольшой скрипт, который закинете по сети к этому файлу.

Напишите программу, которая выводит проверяет существует ли файл admin.bat и если он есть, то выводит на экран абсолютный пути до файла admin.bat.

Пример результата:

Файл существует
Абсолютный путь до файла: C:\Users\Roman\Lessons\module 18\admin.bat

Файл не найден

Для сдачи заданий необходимо войти под своим именем

Напишите программу, выводящую на экран абсолютные пути к файлам и папкам, которые находятся внутри директории на уровень выше. Например, если вы находитесь в директории "C:\IvanovAV\src\", то нужно перейти в директорию "C:\IvanovAV\".

Результат программы на примере директории проекта Lessons:

Содержимое каталога C:\IvanovAV\
    C:\IvanovAV\src
    C:\IvanovAV\Lessons
    C:\IvanovAV\temp

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая выводит на экран только корень диска, на котором запущен скрипт.

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

Результат программы на примере диска G:

Корень диска: G:\

Решение для Windows:

print("Корень диска:", os.path.abspath(os.sep).split(os.sep)[0])

Решение для UNIX:

print("Корень диска:", os.sep)

Для сдачи заданий необходимо войти под своим именем

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

Напишите программу, которая по заданному абсолютному пути определяет, на что указывает этот путь (на директорию, файл, или же путь является ссылкой), и выведите соответствующее сообщение. Если путь указывает на файл, то также выведите его размер (сколько он весит в байтах). Обеспечьте контроль ввода: проверка пути на существование.

Подсказка: для вывода размера файла поищите соответствующий метод.

Пример 1:

Путь: C:\IvanovAV\Module17\lesson2.py
Это файл
Размер файла: 605 байт

Пример 2:

Путь: C:\IvanovAV\Module17\lesson2.py
Указанного пути не существует

Для сдачи заданий необходимо войти под своим именем

Мы написали функцию, которая ищет нужный нам файл во всех подкаталогах указанной директории. Однако, как мы понимаем,

файлов с таким названием может быть несколько.

Напишите функцию, которая принимает на вход абсолютный путь до директории и имя файла, проходит по всем вложенным файлам и папкам

и выводит на экран все абсолютные пути с этим именем.

Пример:

Ищем в: C:\IvanovAV\
Имя файла: lesson2

Найдены следующие пути:
C:\IvanovAV\Module15\lesson2.py
C:\IvanovAV\Module16\lesson2.py
C:\IvanovAV\Module17\lesson2.py
C:\IvanovAV\Module18\lesson2.py
C:\IvanovAV\Module19\lesson2.py
C:\IvanovAV\Module20\lesson2.py
C:\IvanovAV\Module21\lesson2.py
C:\IvanovAV\Module22\lesson2.py

Для сдачи заданий необходимо войти под своим именем

Одному программисту дали задачу для обработки неких результатов тестирования двух групп людей.

Файл первой группы (group_1.txt) находится в папке task, файл второй группы (group_2.txt) — в папке Additional_info.

_Содержимое файла group_1.txt_

 text
Бобровский Игорь 10
Дронов Александр 20
Жуков Виктор 30

_Содержимое файла group_2.txt_

Павленко Геннадий 20
Щербаков Владимир 35
Marley Bob 15

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

и напоследок — произведение очков уже второй группы.

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

И оказалось, этот код просто не работает. Вот что он написал:

file = open('E:\task\group_1.txt', 'read')
summa = 0
for i_line in file:
    info = i_line.split()
    summa += info[2]
file = open('E:\task\group_1.txt', 'read')
diff = 0
for i_line in file:
    info = i_line.split()
    diff -= info[2]
file_2 = open('E:\task\group_2.txt', 'read')
compose = 0
for i_line in file:
    info = i_line.split()
    compose *= info[2]
print(summa)
print(diff)
print(compose)

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

(task, Additional_info, Dont touch me) на своём диске и также добавьте файлы group_1.txt и group_2.txt.

Для сдачи заданий необходимо войти под своим именем

Как мы помним, скрипты — это просто куча строк текста, хоть они и понятны только программисту.

Таким образом, с ними можно работать точно так же, как и с обычными текстовыми файлами.

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

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

Для сдачи заданий необходимо войти под своим именем

Нет заданий

Во входном файле numbers.txt записано N целых чисел, которые могут быть разделены пробелами и концами строк. Напишите программу, которая выводит сумму чисел в выходной файл answer.txt.

Пример:

Содержимое файла numbers.txt
     2

2
  2
         2

Содержимое файла answer.txt
8

Для сдачи заданий необходимо войти под своим именем

В файле zen.txt хранится так называемый Дзен Пайтона — текст философии программирования на языке Python. Выглядит он так:

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

Напишите программу, которая выводит на экран все строки этого файла в обратном порядке.

Кстати, попробуйте открыть консоль Python и ввести команду import this.

Результат работы программы:

Namespaces are one honking great idea -- let's do more of those!
If the implementation is easy to explain, it may be a good idea.
If the implementation is hard to explain, it's a bad idea.
Although never is often better than *right* now.
…

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая определяет, сколько букв (латинского алфавита), слов и строк в файле zen.txt (который содержит всё тот же «Дзен Пайтона»). Выведите три найденных числа на экран.

Дополнительно: выведите на экран букву, которая встречается в тексте наименьшее количество раз.

Обратите внимание, что регистр буквы не имеет значение. (А и а - одинаковые буквы).

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

Количество букв в файле: 
Количество слов в файле: 
Количество строк в файле: 
Наиболее редкая буква: 

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая получает на вход путь до каталога (это может быть и просто корень диска) и выводит общее количество файлов и подкаталогов в нём. Также выведите на экран размер каталога в килобайтах (1 килобайт = 1024 байт).

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

Результат работы программы на примере `python\Module18`:

D:\MyProjects\python\Module18
Размер каталога (в Кб): 8.373046875
Количество подкаталогов: 7
Количество файлов: 15

Для сдачи заданий необходимо войти под своим именем

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

Пользователь вводит строку text. Реализуйте функцию, которая запрашивает у пользователя, куда он хочет сохранить эту строку: вводится последовательность папок и имя файла (расширение `.txt`). Затем в этот файл сохраняется значение переменной text. Если этот файл уже существует, то нужно спросить у пользователя, действительно ли он хочет перезаписать его.

Обеспечьте контроль ввода: указанный из папок путь должен существовать на диске.

Пример 1:

Введите строку: programm test

Куда хотите сохранить документ? Введите последовательность папок (через пробел):
Users Roman MyProjects SYT Module18

Введите имя файла: my_document
Файл успешно сохранён!

*Содержимое файла:*

`programm test`

Пример 2:

Введите строку: testiruyem

Куда хотите сохранить документ? Введите последовательность папок (через пробел):
Users Roman MyProjects SYT Module18

Введите имя файла: my_document
Вы действительно хотите перезаписать файл? да
Файл успешно перезаписан!

*Содержимое файла:*

`testiruyem`

Для сдачи заданий необходимо войти под своим именем

Артуру постоянно кажется, что за ним следят и все хотят своровать «крайне важную информацию» с его компьютера, включая переписку с людьми. Поэтому он эти переписки шифрует. И делает это с помощью шифра Цезаря (чем веселит агента службы безопасности).

Напишите программу, которая шифрует содержимое текстового файла `text.txt` шифром Цезаря, при этом символы первой строки файла должны циклически сдвигаться на один, второй строки — на два, третьей строки — на три и так далее. Результат выведите в файл `cipher_text.txt`.

Пример:

Содержимое файла text.txt:
Hello
Hello
Hello
Hello

Содержимое файла cipher_text.txt:
Ifmmp
Jgnnq
Khoor
Lipps

Для сдачи заданий необходимо войти под своим именем

В файле `first_tour.txt` записано число K и данные об участниках турнира по настольной игре «Орлеан»: фамилии, имена и количество баллов, набранных в первом туре. Во второй тур проходят участники, которые набрали более K баллов в первом туре.

Напишите программу, которая выводит в файл `second_tour.txt` данные всех участников, прошедших во второй тур, с нумерацией.

В первой строке нужно вывести в файл `second_tour.txt` количество участников второго тура. Затем программа должна вывести фамилии, инициалы и количество баллов всех участников, прошедших во второй тур, с нумерацией. Имя нужно сократить до одной буквы. Список должен быть отсортирован по убыванию набранных баллов.

Пример:

Содержимое файла first_tour.txt:
80
Ivanov Serg 80
Sergeev Petr 92
Petrov Vasiliy 98
Vasiliev Maxim 78

Содержимое файла second_tour.txt:
2
1) V. Petrov 98
2) P. Sergeev 92

Для сдачи заданий необходимо войти под своим именем

Есть файл `text.txt`, который содержит текст. Напишите программу, которая выполняет частотный анализ, определяя долю каждой буквы английского алфавита в общем количестве английских букв в тексте, и выводит результат в файл `analysis.txt`. Символы, не являющиеся буквами английского алфавита, учитывать не нужно.

В файл `analysis.txt` выводится доля каждой буквы, встречающейся в тексте, с тремя знаками в дробной части. Буквы должны быть отсортированы по убыванию их доли. Буквы с равной долей должны следовать в алфавитном порядке.

Пример:

Содержимое файла text.txt:
Mama myla ramu.

Содержимое файла analysis.txt:
a 0.333
m 0.333
l 0.083
r 0.083
u 0.083
y 0.083

Для сдачи заданий необходимо войти под своим именем

Мало кто не знает про знаменитый роман Л. Н. Толстого «Война и мир». Это довольно объёмное произведение лежит в архиве `voina-i-mir.zip`. Напишите программу, которая подсчитывает статистику по буквам (не только русского алфавита) в этом романе и выводит результат на экран (или в файл). Результат должен быть отсортирован по частоте встречаемости букв (по возрастанию или убыванию). Регистр символов имеет значение.

Постарайтесь написать программу так, чтобы для её работы не требовалась распаковка архива «вручную».

Для сдачи заданий необходимо войти под своим именем

В курсе по программированию студенту дали простую задачу: умножить константу (число 42)

на пятый элемент строки, введённой пользователем. Вот код студента:

BRUCE_WILLIS = 42
input_data = input('Введите строку: ')
leeloo = int(input_data[4])
result = BRUCE_WILLIS * leeloo
print(f'- Leeloo Dallas! Multi-pass № {result}!')

Модифицируйте этот код, обработав исключения для произвольных входных параметров:

ValueError — невозможно преобразовать к числу,

IndexError — выход за границы списка,

остальные исключения.

Для каждого типа исключений выведите на консоль соответствующее сообщение.

Для сдачи заданий необходимо войти под своим именем

Дан файл ages.txt, в котором построчно хранятся десять возрастов для каждого человека.

Напишите программу, которая считывает файл, даёт имя для каждого возраста (можно просто использовать буквы алфавита) и выводит результат в новый файл result.txt в формате «имя — возраст». Программа должна обрабатывать следующие ошибки и выводить сообщение на экран:

Попытка создания файла, который уже существует.

На чтение ожидался файл, но это оказалась директория.

Неверный тип данных и некорректное значение (две ошибки обрабатываются одинаково).

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

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая открывает файл и записывает туда введённую пользователем строку.

Используйте операторы try except else finally. Обработайте возможные ошибки:

Проблема при открытии файла.

Нельзя преобразовать данные в целое.

Неожиданная ошибка.

Для сдачи заданий необходимо войти под своим именем

Возьмите любую задачу из практической работы, например, предыдущего модуля и оформите её решение в виде try except finally (можно ещё и else), обрабатывая возможные ошибки.

Посмотрев на то, что получилось, попробуйте ответить себе на такой вопрос:

когда стоит использовать обработку исключений и когда она будет излишней?

> Хоть проверка исключений и является мощным инструментом, НО отдавать предпочтение нужно простым проверкам (избежать исключения лучше).

Если же мы не уверены в появлении ошибки (например у нас нет власти над источником ошибки - это может быть какой-то сторонний сервис).

И если простая проверка не поможет учесть все варианты - мы можем использовать исключения.

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

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

Для сдачи заданий необходимо войти под своим именем

В базе данных одной компании есть баг (или, может быть, фича): если ввести туда имя сотрудника меньше чем из трёх букв,то база сломается и упадёт. Как компания принимает на работу людей, например, с китайскими именами, непонятно.

Дан файл people.txt, в котором построчно хранится N имён пользователей.

Напишите программу, которая берёт количество символов в каждой строке файла и в качестве ответа выводит общую сумму.

Если в какой-либо строке меньше трёх символов (не считая литерала \n), то вызывается ошибка, и программа завершается.

Содержимое файла people.txt

Петя
Ян
Маша
Ева
Дмитрий
Анастасия

Для сдачи заданий необходимо войти под своим именем

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

Таким образом проще сформировать отчёт об ошибках, а значит, программисту будет проще их исправить. Это называется логированием ошибок.

Дан файл words.txt, в котором построчно записаны слова. Необходимо определить количество слов, из которых можно получить палиндром (привет предыдущим модулям).

Если в строке встречается число, то программа выдаёт ошибку ValueError и записывает эту ошибку в файл errors.log

Для сдачи заданий необходимо войти под своим именем

Нет заданий

Есть файл `people.txt`, в котором построчно хранится N имён пользователей.

Напишите программу, которая берёт количество символов в каждой строке файла и в качестве ответа выводит общую сумму. Если в какой-либо строке меньше трёх символов (не считая литерала \n), то вызывается ошибка и сообщение, в какой именно строке возникла ошибка. Программа при этом не завершается и обрабатывает все имена файла.

Также при желании можно вывести все ошибки в отдельный файл `errors.log`.

Пример работы программы

Содержимое файла people.txt:
Василий
Николай
Надежда
Никита
Ян
Ольга
Евгения
Кристина

Ответ в консоли:
Ошибка: менее трёх символов в строке 4.
Общее количество символов: 48.

Для сдачи заданий необходимо войти под своим именем

Есть файл `coordinates.txt`, в котором хранится `N` пар из чисел X и Y. Оба числа передаются в первую функцию, где к каждой координате прибавляется случайное число (от 0 до 5 и от 0 до 10) и возвращается результат деления X на Y. Затем эти же координаты передаются во вторую функцию, где уже отнимается случайное число и возвращается Y / X.

После этого формируется случайное число от 0 до 100, затем в файл `result.tx`t в каждую строку записывается отсортированный список, состоящий из этого случайного числа и двух полученных результатов.

Один программист уже написал за нас программу для этой задачи, но «почему-то» его вариант решения отклонили. Вот его код:

import random


def f(x, y):
    x += random.randint(0, 10)
    y += random.randint(0, 5)
    return x / y


def f2(x, y):
    x -= random.randint(0, 10)
    y -= random.randint(0, 5)
    return y / x


try:
    file = open('coordinates.txt', 'r')
    for line in file:
        nums_list = line.split()
        res1 = f(int(nums_list[0]), int(nums_list[1]))
        try:
            res2 = f2(int(nums_list[0]), int(nums_list[1]))
            try:
                number = random.randint(0, 100)
                file_2 = open('result.txt', 'w')
                my_list = sorted([res1, res2, number])
                file_2.write(' '.join(my_list))
            except Exception:
                print("Что-то пошло не так : ")
        except Exception:
            print("Что-то пошло не так со второй функцией")
        finally:
            file.close()
            file_2.close()
except Exception:
    print("Что-то пошло не так с первой функцией")

Отредактируйте и исправьте программу, убрав лишние вложенности `try..except`.

Для сдачи заданий необходимо войти под своим именем

Напишите программу, которая запрашивает у пользователя число до тех пор, пока сумма этих чисел не станет больше либо равна 777. Каждое введённое число при этом дозаписывается в файл *out_file.txt*. Сделайте так, чтобы перед дозаписью программа с вероятностью 1 к 13 выбрасывала пользователю случайное исключение и завершалась.

**Пример 1**

Введите число: 10
Введите число: 500
Введите число: 200
Введите число: 67
Вы успешно выполнили условие для выхода из порочного цикла!

Содержимое файла out_file.txt:
10
500
200
67

**Пример 2**

Введите число: 10
Введите число: 500
Вас постигла неудача!

Содержимое файла out_file.txt:
10

Для сдачи заданий необходимо войти под своим именем

У вас есть файл с протоколом регистраций пользователей на сайте — `registrations.txt`. Каждая строка содержит имя, емейл и возраст, разделённые пробелами. Например: `Василий test@test.ru 27`.

Напишите программу, которая проверяет данные из файла для каждой строки:

- Присутствуют все три поля.

- Поле «Имя» содержит только буквы.

- Поле «Имейл» содержит @ и . (точку).

- Поле «Возраст» является числом от 10 до 99.

В результате проверки сформируйте два файла:

- `registrations_good.log` — для правильных данных, записывать строки в том виде, как есть;

- `registrations_bad.log` — для ошибочных, записывать строку и вид ошибки.

Для валидации строки данных напишите функцию, которая может выдавать исключения:

- НЕ присутствуют все три поля: `IndexError`.

- Поле «Имя» содержит НЕ только буквы: `NameError`.

- Поле «Имейл» НЕ содержит @ и . (точку): `SyntaxError`.

- Поле «Возраст» НЕ является числом от 10 до 99: `ValueError`.

**Формат выходных данных**

Содержимое файла registrations_bad.log:
Ольга kmrn@gmail.com 123		Поле «Возраст» НЕ является числом от 10 до 99
Чехова kb@gmail.com 142		Поле «Возраст» НЕ является числом от 10 до 99
……
Степан ky 59		Поле «Имейл» НЕ содержит @ и . (точку)
……

Содержимое файла registrations_good.log:
Геннадий ttdababmt@gmail.com 69
Ольга ysbxur@gmail.com 20
……

Для сдачи заданий необходимо войти под своим именем

Иван стоит на пороге величайшего открытия (не будем его расстраивать), которое перевернёт представление обо всей математике и программировании. Имя этому открытию — текстовый калькулятор. Правда, код для своего открытия ему сложно написать самому, и поэтому он попросил вас помочь ему. Так что уже можно бежать в патентное бюро.

Есть файл `calc.txt`, в котором хранятся записи вида:

- 100 + 34,
- 23 / 4,

то есть ОПЕРАНД_1 ОПЕРАЦИЯ ОПЕРАНД_2, разделённые пробелами.

Операнды — целые числа. Операции — арифметические (включая деление нацело и нахождение остатка).

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

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

**Пример 1**

Содержимое файла calc.txt:
100 + 34
10 +* 3
23 / 4

Содержимое консоли:
Обнаружена ошибка в строке: 10 +* 3   Хотите исправить? Да
Введите исправленную строку: 10 + 3

Сумма результатов: 152.75

**Пример 2**

Содержимое файла calc.txt:
100 + 34
10 +* 3
20 -* 2
23 / 4

Содержимое консоли:
Обнаружена ошибка в строке: 10 +* 3   Хотите исправить? Нет
Обнаружена ошибка в строке: 20 -* 2   Хотите исправить? Да
Введите исправленную строку: 20 - 2

Сумма результатов: 157.75

Для сдачи заданий необходимо войти под своим именем

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

1. Посмотреть текущий текст чата.

1. Отправить сообщение (затем вводит сообщение).

Действия запрашиваются бесконечно.

Примечание: для решения задачи вам будет достаточно текущих знаний, нужно лишь проявить немного фантазии и хитрости. Не нужно лезть в дебри работы с сетями, создания GUI-приложений и прочих штук. (Но если очень хочется, то останавливать вас никто не будет!)

Для сдачи заданий необходимо войти под своим именем

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий

Нет заданий