Задачи (3)

Задание 43

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

Пример.

Используйте этот список:

['aba', 12321, 'aaccdccaa']

Вывод:

True
# code

Задание 44

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

Пример:

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

[1, 3, 2.5, -1, 9, 0, 2.71]

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

[0.0,  1.0986122886681098,  0.9162907318741551,  None,  2.1972245773362196,  None, 0.9969486348916096]
# code

Задание 45

Напишите программу, которая берет строку "1; 2; 3; 100" и возвращает:

  • список из целых чисел;
  • список из чисел с плавающей точкой.
# code

Задание 46

Дан кортеж

student = ('Иван Питонов', 2001, [8, 7, 7, 9, 6], True)

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

"Средний балл студента: {средний балл}"
  • Выведите фамилию и имя Ивана в формате "Студент: {Фамилия}, {Имя}"
  • Выведите возраст Ивана, если сейчас 2023 год.
  • Напечатайте оценки Ивана через запятую (не список, а числа через запятую).
  • Найдите средний балл Ивана, если оценки хранятся в списке внутри кортежа. Сумму элементов списка можно найти с помощью функции sum(). Выведите средний балл, округленный до одного знака после запятой.
  • Если средняя оценка Ивана больше или равна 8 и он учится на бюджете (последний элемент списка, True - бюджет), то он получает повышенную стипендию. Выведите True или False.
# code

Задание 47

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

words = ["Speak ", "to", "me ", "of", "Florence" , "And ", "of", "the", "Renaissance"]

а возвращает список

words_clean = ["speak", "to", "me", "of", "florence", "and", "of", "the", "renaissance"]

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

# code

Задание 48

Дан список студентов.

students = ["Вася", "Маша", "Петя", "Дима", "Марина", "Люба", "Коля", "Ваня"]

Оценки студентов за контрольную работу сохранены в словаре grades:

grades = {"Вася" : 4,
          "Петя" : 9,
          "Марина" : 8,
          "Люба" : 4,
          "Коля" : 5,
          "Ваня": 10}
  • Напишите программу, которая выводит на экран имя студента из списка students и его оценку. Если оценки студента из списка students нет, то на экран должно выводиться имя студента и сообщение "Контрольную работу не писал(а)".
  • Напишите программу, которая выводит на экран имена студентов, которые получили отличные оценки (8 и выше).
  • Напишите программу, которая сохраняет имена студентов, получивших хорошие и отличные оценки, в список good, а получивших удовлетворительные и плохие оценки – в список bad.
# code

Задание 49

Дан словарь с именами студентов и их оценками за курс по десятибаллной шкале. Напишите программу, которая бы считала среднюю оценку за курс и округляла ее (используйте функцию round()). Чтобы найти среднюю оценку нужно сложить оценки всех студентов за курс и разделить сумму на количество студентов. Найти сумму элементов списка, можно функцией sum(). Так, первый курс - это нулевой элемент списка оценок каждого студента.

Программа должна принимать на вход номер курса (от 1 до 8, обратите внимание, что не от 0 до 7), а выводить среднюю оценку за этот курс.

marks = {'Mary' : [5, 8, 9, 10, 3, 5, 6, 6],
        'John' : [3, 3, 6, 8, 2, 1, 8, 5],
        'Alex' : [4, 4, 7, 4, 7, 3, 2, 9],
        'Patricia' : [2, 1, 6, 8, 2, 3, 7, 4]}

Пример ввода:

1

Пример вывода:

Курс 1 - 4
# code

Задание 50

Напишите программу, которая бы сопоставляла оценку, найденную в предыдущем пункте, со вторым словарем, где оценкам в числах соответствуют категории “хорошо”, “отлично” и так далее. Программа принимает на ввод номер курса (от 1 до 8, обратите внимание, что не от 0 до 7), подсчитывает среднюю оценку за этот курс, а выводит буквенное значение оценки от "неуд" до "отлично" из словаря categories.

marks = {'Mary' : [5, 8, 9, 10, 3, 5, 6, 6],
        'John' : [3, 3, 6, 8, 2, 1, 8, 5],
        'Alex' : [4, 4, 7, 4, 7, 3, 2, 9],
        'Patricia' : [2, 1, 6, 8, 2, 3, 7, 4]}

categories = {'отлично' : [8, 9, 10],
             'хорошо' : [6, 7],
             'удовлетворительно' : [4, 5],
             'неуд' : [0, 1, 2, 3]}

Пример ввода:

1

Пример вывода:

Курс 1 - удовлетворительно
# code

Задание 51

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

marks = {'Mary' : [5, 8, 9, 10, 3, 5, 6, 6],
        'John' : [3, 3, 6, 8, 2, 1, 8, 5],
        'Alex' : [4, 4, 7, 4, 7, 3, 2, 9],
        'Patricia' : [2, 1, 6, 8, 2, 3, 7, 4]}

Пример ввода:

5

Пример вывода:

17
# code

Задание 52

После заказа в Интернет-магазине корзина покупателя примет следующий вид:

user = {'Камин комплект Старый Замок':          
                    {'count': 1, 'price': 28490},
        'Полусапоги Betsy':                     
                    {'count': 2, 'price': 2399},
        'Семь навыков высокоэффективных людей':
                    {'count': 1, 'price': 437}}

Определите общую стоимость заказа.

# code

Задание 53

Дана переменная, в которой хранится информация о затратах и доходе рекламных кампаний по различным источникам. Необходимо дополнить исходную структуру показателем ROI по формуле: (revenue / cost - 1) * 100

Пример работы программы:

results = {
    'vk': {'revenue': 103, 'cost': 98},
    'yandex': {'revenue': 179, 'cost': 153},
    'ok': {'revenue': 103, 'cost': 110},
    'adwords': {'revenue': 35, 'cost': 34},
    'twitter': {'revenue': 11, 'cost': 24},
}

Результат:

{'adwords': {'revenue': 35, 'cost': 34, 'ROI': 2.94},
 'ok':      {'revenue': 103, 'cost': 110, 'ROI': -6.36},
 'twitter': {'revenue': 11, 'cost': 24, 'ROI': -54.17},
 'vk':      {'revenue': 103, 'cost': 98, 'ROI': 5.1},
 'yandex':  {'revenue': 179, 'cost': 153, 'ROI': 16.99}}
# code