Информатика

2 621 задачавместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.

Обработка пропусков

df.dropna() - удаляет строки с пропусками
df.fillna(value, inplace=True) - заполняет пропуски значением value
df.fillna(df.mean(), inplace=True) - заполняет средним значением

Параметр inplace:
inplace=False (по умолчанию) - создает копию с изменениями
inplace=True- изменяет исходный DataFrame напрямую

Метод fillna() с словарем позволяет заполнить пропуски в разных столбцах различными значениями за одну операцию. Синтаксис:
df.fillna({'column1': value1, 'column2': value2, ...})
Пример
 
df = ...
# Заполнение разными значениями
fill_dict = {
    'age': df['age'].mean(),      # Средним значением
    'salary': df['salary'].median(), # Медианой
    'city': 'Unknown'             # Константой
}

df_filled = df.fillna(fill_dict)
print(df_filled)
 

Задание

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

  1. Заполните пропуски в power и intelligence средними значениями
  2. Заполните пропуски в costume_cost медианным значением 
  3. Заполните пропуски в first_appearance значением 1950 
  4. Для текстовых полей (name, alias, universe) заполните пропуски строкой Unknown
Выведите обработанный датасет на экран, используя print(df)

Пропущенные значения (NaN, None, NULL) - одна из главных проблем при анализе данных.

Поиск пропусков

df.isnull() - находит пропуски
df.isnull().sum() - считает пропуски по столбцам

 

Задание

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

  1. В первой строке - количество пропусков в каждом столбце (семь целых чисел через пробел)
  2. Во второй строке - процент пропущенных значений (отбросив дробную часть) для каждого столбца  (семь целых чисел через пробел)
Числа должны быть в порядке перечисления столбцов в датасете.

Пример вывода (пример дан для понимания формата вывода):
1 2 3 2 1 1 4
10 20 30 20 10 10 40

Промахом считается выстрел с расстоянием больше 10.0. Определите, у какого игрока был самый худший одиночный выстрел (максимальное значение в массиве)? А сколько всего фатальных промахов совершила вся команда?

Тренеры заметили, что некоторые игроки сильно «разогреваются» к концу сессии. Проверьте гипотезу: сравните среднюю точность каждого игрока по первым пяти выстрелам и по последним пяти. У кого разница в пользу последних выстрелов наибольшая? (Значит, он "разыгрывается").
Точность — это хорошо, но стабильность — лучше! Найдите игрока с самой маленькой дисперсией или стандартным отклонением результатов. Это значит, что он стабильно стреляет примерно с одинаковой точностью.
Найдите сумму всех целых чисел, расположенных между двумя целыми числами a и b (включая a и b).

Формат входных данных
В первой строке записано целое число a, во второй - целое число b (-1000 <= a, b <= 1000).

Формат выходных данных
Выведите искомую сумму.
⏰ Починка машины времени:
[███████████░░░░░░░░░] 57% - Модуль 4 из 7 восстановлен
✅ Анализатор временных петель: ФУНКЦИОНИРУЕТ

Машина должна создавать порталы в каждые n лет, начиная с 2000 года. Запрограммируйте машину, напишите программу, которая по введенному Хроносом числу будет создавать порталы в соответствующие годы, начиная с 2000 года.

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

Формат выходных данных
Программа должна выводить на экран созданные порталы  и года, в которые они ведут по формату: Портал номер: год

Вы - инженер в центре управления космическими полётами.


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

  • Основной отсчёт идёт от 10 до 0 (включительно)
  • На каждой секунде нужно проверять работу систем и выводит следующую информацию:
    • на 5-й секунде выводит фразу:  5 ... Проверка двигателей... ОК!
    • на 2-й секунде выводит фразу:  2 ... Проверка связи... ОК!
    • на любой другой секунде вывести: номер_секунды ...
  • После окончания отсчета вывести особое сообщение о старте: ПУСК! ПОЕХАЛИ!

Формат входных данных
Программа ничего не запрашивает с клавиатуры.

Формат выходных данных
см. пример
Финальное задание!
Напиши программу для безопасной посадки:
Запроси:
  1. скорость снижения (целое число)
  2. расстояние до поверхности (целое число)

Выведи:
  • Если скорость больше 10 И расстояние меньше 100 - выведи "Включить тормозные двигатели!"
  • Если скорость не больше 10 И расстояние меньше 50, но больше 0 - выведи "Приготовиться к посадке"
  • Если расстояние равно 0 - выведи "Посадка завершена! Добро пожаловать на Марс!"
  • Во всех остальных случаях выведи "Продолжаем снижение"
В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске. Широковещательным адресом называется специализированный адрес, в котором все младшие биты, соответствующие нулям в маске, равны 1. Сеть задана IP-адресом одного из входящих в неё узлов 11.92.135.56 и сетевой маской 255.224.0.0. Определите наибольший IP-адрес данной сети, который может быть присвоен компьютеру. В ответе укажите найденный IP-адрес без разделителей. Например, если бы найденный адрес был равен 111.22.3.44, то в ответе следовало бы записать 11122344.
На рисунке справа схема дорог Н-ского района изображена в виде графа, в таблице содержатся сведения о длинах этих дорог (в километрах). Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе.



Определите сумму протяженностей дорог из пункта D в пункт C и из пункта F в пункт E. В ответе запишите целое число.
Музыкальный урок длится n минут. Сколько это полных часов и минут? Выведите ответ в формате: часов:минут.

Формат входных данных
Программа получает с клавиатуры количество минут n - целое положительное число. 

Формат выходных данных
Программа должна вывести строку в формате часы:минуты

Напишите программу, которая выводит таблицу умножения для числа n (целое число, вводится с клавиатуры) на числа от 1 до 4 (включительно).

Знак умножения ставится строчной английской буквой x. Обратите внимание, что знаки x, = отделяются с двух сторон одним пробелом.

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


Напиши программу, которая будет как попугай 🦜 - повторять любое слово или фразу столько раз, сколько скажешь!

  1. Сначала программа спросит сколько раз повторить

  2. Потом что именно повторять

  3. И будет послушно выводить это нужное количество раз

 

Формат входных данных
Программа в первой строке вводит одно натуральное число \(n\) — количество раз, которое необходимо вывести строку.
Во второй строке - строку, которую необходимо вывести \(n\) раз.
 

Формат выходных данных
Выведите на экран заданную строку \(n\) раз, каждую на отдельной строке.

✓ 870✗ 1 525100лёгкаяВойти и решать

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


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

Формат входных данных
Программа должна запросить ввод натурального числа \(n\) — количество раз, которое необходимо вывести строку.
 

Формат выходных данных
Программа должна вывести на экран строку "Hello, World!" \(n\) раз, каждую на новой строке.

66149#66149
В маленьком городе N, где нет ни интернета, ни телефонов, живут лучшие друзья Коля, Маша, Саша и Наташа. В очередной зимний день им очень хотелось провести время, играя в какую-нибудь игру, но такую, чтобы игра была не очень быстрой. Потому Маша предложила ребятам сыграть в своего рода модифицированную карточную версию игры «Пьяница» под названием «Круговерть_2».
Правила игры оказались следующими:
  • ·игрокам заранее раздают поровну перетасованную колоду из52 карт (четыре масти: червы, бубны, трефы, пики, в каждой из которых 13 карт), таким образом у каждого игрока оказывается своя колода карт, стоящая в виде стопки, расположенной рубашкой вниз;
  • ·каждый ход игроки выкладывают на стол по одной картесверху своей колоды на стол, по порядку слева-направо (первый игрок, второй игрок, третий и четвёртый), далее происходит определение победителей:
  •     - если карты одной масти, то побеждает тот, у кого картабыла наибольшего значения (порядок карт в порядке их значения по возрастанию: туз, 2-10, валет, дама, король); туз - самая слабая карта;
  •     - если карты разных мастей, то побеждает тот, у когомасть выше по значению (порядок мастей по возрастанию: червы, бубны, трефы, пики);
  •     - если карт высшей масти несколько, то рассматриваетсяопределение наибольшего значения среди этих карт (например, выложили 10 червы, 8 бубны, 7 трефы, 8 трефы, то карты разных мастей, потому выбирается наибольшая масть – в данном случае трефы, таких карт две, среди них самая наибольшая 8 трефы, потому побеждает игрок 4);
  • ·победитель забирает четыре карты в свою колоду по порядку,кладя сперва карту первого игрока под низ колоды, затем второго, третьего, четвёртого;
  • ·побеждает тот игрок, который заберёт все картыпротивников.
Коля очень любит программирование, потому он решил заранее рассчитать, сколько им понадобится ходов, чтобы был определён победитель (у кого будут все 52 карты), потому ему требуется помочь написать программу, которая по входным данным игры определит через сколько ходов будет определён победитель игры. Если же за 1000 ходов победитель так и не определится, то вывести, сколько карт оказалось у первого игрока, у второго, третьего, четвёртого.
Входные данные:
на первых 13 строках подаются карты первого игрока (в порядке их нахождения в стопке карт),
далее на 13 строках подаются карты второго игрока (в порядке их нахождения в стопке карт),
далее на 13 строках подаются карты третьего игрока (в порядке их нахождения в стопке карт),
далее на 13 строках подаются карты четвёртого игрока (в порядке их нахождения в стопке карт).
Все карты подаются в формате <масть>, <значение>.
Масти обозначаются следующим образом (одна латинская буква в нижнем регистре):
  • c – червы;
  • b – бубны;
  • t – трефы;
  • p – пики.
Значения карт с картинками обозначаются следующим образом (одна латинская буква в нижнем регистре):
  • t – туз;
  • v – валет;
  • d – дама;
  • k – король.
Например:
  • (t,10) – десятка треф;
  • (c, t) – туз червей.
Выходные данные:
Если за 1000 ходов (включительно) кто-то победит, то вывести количество ходов и номер победившего игрока (например, 340 2, что означает, что за 340 ходов победил игрок №2).
Если за 1000 ходов (включительно) минимум у двух игроков останутся карты (никто не победит), то вывести количество карт по завершении 1000-го хода у первого игрока, у второго, у третьего, у четвёртого на одной строке через пробел (например, 48 3 1 0).
Примечание
•карты перечисляются в вводе так, как они лежат сверху-вниз,если сперва дали туз, затем 10, то на дне колоды лежит 10, а на верху туз, который будет вытащен первым.
66148#66148
В маленьком городе N, где нет ни интернета, ни телефонов, живут лучшие друзья Коля и Маша. В очередной зимний день им очень хотелось провести время, играя в какую-нибудь игру, но такую, чтобы игра была не очень быстрой. Потому Маша предложила Коле сыграть в своего рода модифицированную карточную версию игры «Пьяница» под названием «Круговерть».
Правила игры оказались следующими:
·игрокам заранее раздают поровну перетасованную колоду из52 карт (четыре масти: червы, бубны, трефы, пики, в каждой из которых 13 карт), таким образом у каждого игрока оказывается своя колода карт, стоящая в виде стопки, расположенной рубашкой вниз;
  • каждый ход игроки выкладывают на стол по одной картесверху своей колоды на стол, далее происходит определение, кто заберёт карты:
               - если карты одной масти, то забирает карты тот, у когокарта была наибольшего значения (порядок карт в порядке их значения по возрастанию: туз, 2-10, валет, дама, король); туз - самая слабая карта; 
               - если карты разных мастей, то забирает карты тот, у когомасть выше по значению (порядок мастей по возрастанию: пики, червы, бубны, трефы);
  • забирающий карты забирает обе карты в свою колоду, кладясперва карту противника под низ колоды, затем свою карту также под низ колоды; 
  • побеждает тот игрок, который останется без карт.
Коля очень любит программирование, потому он решил заранее рассчитать, сколько им понадобится ходов, чтобы был определён победитель (у кого не будет карт), потому ему требуется помочь написать программу, которая по входным данным игры определит через сколько ходов будет определён победитель игры. Если же за 1000 ходов победитель так и не определится, то вывести, сколько карт оказалось у первого игрока и сколько у второго.
Входные данные:
на первых 26 строках подаются карты первого игрока (в порядке их нахождения в стопке карт),
далее на 26 строках подаются карты второго игрока (в порядке их нахождения в стопке карт).
Все карты подаются в формате <масть>, <значение>.
Масти обозначаются следующим образом (одна латинская буква в нижнем регистре):
  • c – червы;
  • b – бубны;
  • t – трефы;
  • p – пики.
Значения карт с картинками обозначаются следующим образом (одна латинская буква в нижнем регистре):
  • t – туз;
  • v – валет;
  • d – дама;
  • k – король.
Например:
  • (t,10) – десятка треф;
  • (c, t) – туз червей.
Выходные данные: 
Если за 1000 ходов (включительно) кто-то победит, то вывести количество ходов и номер победившего игрока (например, 340 2, что означает, что за 340 ходов победил игрок №2).
Если за 1000 ходов (включительно) у всех останутся карты (никто не победит), то вывести количество карт по завершении 1000-го хода у первого игрока и у второго на одной строке через пробел (например, 50 2).
Примечание
•карты перечисляются в вводе так, как они лежат сверху-вниз,если сперва дали туз, затем 10, то на дне колоды лежит 10, а на верху туз, который будет вытащен первым.
Напишите программу, которая выводит любое ASCII-изображение. Главное условие, ваше изображение должно содержать специальные символы (кавычки или апострофы, бек-слеш (\)). Общее количество специальных символов должно быть не менее 5. Количество строк не менее пяти. 

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