0 / 0 / 0
Регистрация: 23.12.2018
Сообщений: 21

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

04.04.2019, 22:20. Показов 1956. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вам необходимо поделить всех нанятых матросов на 2 команды, согласно следующим правилам: те, чей возраст меньше 20 лет или больше 40 - отправляются на первый корабль, все остальные - на второй. Это позволит молодым матросам перенять опыт более старших коллег. В качестве исходных данных вы получите словарь, где ключами будут выступать фамилии матросов, а значениями - их возраст. После того, как все матросы будут поделены между кораблями, вам необходимо отсортировать их внутри каждого из списков в алфавитном порядке.

Входные данные: Словарь с возрастами матросов.
Выходные данные: Список с двумя корабельными командами.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.04.2019, 22:20
Ответы с готовыми решениями:

Из числа X получить четырехзначное число Y согласно заданным правилам...
Дано четырехзначное целое число X. Определить четырехзначное число Y : ∙ первая цифра Y равна остатку от деления на 10 произведения всех...

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

Требуется сделать сокращения согласно установленным правилам
Товарищи! Как создать столбик с сокращениями имен по заданному словарю? Словарь будет находиться на другом листе. Исходные имена на втором,...

3
1 / 1 / 1
Регистрация: 05.05.2018
Сообщений: 3
05.04.2019, 15:32
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
inp_dict = {}
list_ship1 = []
list_ship2 = []
 
value = int(input("Введите количество матросов: "))
while len(inp_dict) + 1 <= value:
    username = input("Введите фамилию :")
    age = int(input("Введите возраст: "))
    inp_dict[username] = age
 
for i in inp_dict:
    if (inp_dict[i] > 20) and (inp_dict[i] < 40):
        list_ship2 += [inp_dict[i]]
    else:
        list_ship1 += [inp_dict[i]]
print("Первый корабль до 20 и от 40:", list_ship1)
print("Второй корабль от 20 до 40: ", list_ship2)
Добавлено через 41 минуту
Сортировку забыл.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
inp_dict = {}
list_ship1 = []
list_ship2 = []
 
value = int(input("Введите количество матросов: "))
while len(inp_dict) + 1 <= value:
    username = input("Введите фамилию :")
    age = int(input("Введите возраст: "))
    inp_dict[username] = age
 
for i in inp_dict:
    if (inp_dict[i] > 20) and (inp_dict[i] < 40):
        list_ship2 += [i]
    else:
        list_ship1 += [i]
print("Первый корабль до 20 и от 40:", sorted(list_ship1))
print("Второй корабль от 20 до 40: ", sorted(list_ship2))
1
0 / 0 / 0
Регистрация: 23.12.2018
Сообщений: 21
05.04.2019, 17:54  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
def two_teams(sailors):
  arr1 =[]
  arr2 =[]
  for i in sailors:
    if sailors[i]<20 and sailors[i]>40:
      arr1+=[i]
    else:
      arr2+=[i]
  return arr1
  return arr2
    
    
 
if __name__ == '__main__':
  assert two_teams({
      'Smith': 34, 
      'Wesson': 22, 
      'Coleman': 45, 
      'Abrahams': 19}) == [
          ['Abrahams', 'Coleman'], 
          ['Smith', 'Wesson']
          ]
 
  assert two_teams({
      'Fernandes': 18,
      'Johnson': 22,
      'Kale': 41,
      'McCortney': 54}) == [
          ['Fernandes', 'Kale', 'McCortney'], 
          ['Johnson']
          ]
  print("Well done!")
У меня на вход уже данные есть, вот так написал, но почему-то не работает, помогите пожалуйста

Добавлено через 20 минут
И когда отсортировал, тоже не работает
0
1 / 1 / 1
Регистрация: 05.05.2018
Сообщений: 3
05.04.2019, 18:29
Цитата Сообщение от sashaupo Посмотреть сообщение
def two_teams(sailors):
* arr1 =[]
* arr2 =[]
* for i in sailors:
* * if sailors[i]<20 and sailors[i]>40:
* * * arr1+=[i]
* * else:
* * * arr2+=[i]
* return arr1
* return arr2
if __name__ == '__main__':
* assert two_teams({
* * * 'Smith': 34,
* * * 'Wesson': 22,
* * * 'Coleman': 45,
* * * 'Abrahams': 19}) == [
* * * * * ['Abrahams', 'Coleman'],
* * * * * ['Smith', 'Wesson']
* * * * * ]
assert two_teams({
* * * 'Fernandes': 18,
* * * 'Johnson': 22,
* * * 'Kale': 41,
* * * 'McCortney': 54}) == [
* * * * * ['Fernandes', 'Kale', 'McCortney'],
* * * * * ['Johnson']
* * * * * ]
* print("Well done!")
А что если нужно будет добавить еще 1 запись, сами будете переписывать? Функция не может возвращать два значения, только кортежем. Без всяких (main, assert) можно обойтись... нужно. Берите первое решение, при необходимости цикл while можно заменить на словарь с уже прописанными данными.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.04.2019, 18:29
Помогаю со студенческими работами здесь

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

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

Написать программу, которая расшифровывает строки символов, зашифрованные согласно правилам из упражнения 6
Написать программу, которая расшифровывает строки символов, зашифрованные согласно правилам из упражнения 6 Упражнение 6: Даны...

Вычислите значение выражения, предполагая, что действия выполняются согласно правилам арифметики
Дана последовательность символов, имеющая следующий вид: p1q1p2q2p3…qn-1pn, где pi — цифра, а qi — знак арифметического действия из набора...

Объединение строк по заданным правилам
Нужно написать программу для создания строки по следующим правилам: 1. На вход подаются 2 строки 2. Все совпадающие гласные, стоящие на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru