Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
2 / 2 / 0
Регистрация: 05.05.2020
Сообщений: 31

Нужно исправить программу (Вечеринка)

10.05.2020, 11:16. Показов 7310. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот условие задачи:
Алиса хочет устроить вечеринку по поводу ее дня рождения. Она хочет пригласить друзей так, чтобы друзья были между собой знакомы.
Помогите Алисе автоматизировать процесс написания приглашений. Напишите три функции: add_friends(), are_friends() и print_friends().
Функция add_friends(name_of_person, list_of_friends) принимает на вход два аргумента: имя человека и список имен его друзей.
Функция are_friends(name_of_person1, name_of_person2) принимает на вход два аргумента: имя первого человека и имя второго человека и возвращает True или False, в зависимости от того, считает ли первый человек второго своим другом.
А функция print_friends(name_of_person) принимает на вход имя человека и печатает список его друзей через пробел в алфавитном порядке.

Пример
Ввод
add_friends("Алла", ["Марина", "Иван"])
print(are_friends("Алла", "Мария"))
add_friends("Алла", ["Мария"])
print(are_friends("Алла", "Мария"))

Вывод
False
True

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

Вот мой код:
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
name = ''
ll = []
 
 
def add_friends(name_of_person, list_of_friends):
    global name
    global ll
    if name_of_person not in name:
        name += name_of_person
        ll.extend([[name_of_person],[list_of_friends]])
    else:
        for i in ll:
            if i[0] == name_of_person:
                i[1] += list_of_friends
 
 
def are_friends(name_of_person1, name_of_person2):
    global name
    global ll
    if name_of_person1 in name and name_of_person2 in ll:
        return True
    return False
 
 
def print_friends(name_of_person):
    global name
    global ll
    print(ll)
печатает не пойми что, а я не знаю как исправить
помогите пожалуйста!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.05.2020, 11:16
Ответы с готовыми решениями:

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

Нужно найти ошибки и исправить программу
name=(Введи имя:) place = input(Введи место:) goal = input(Введи предмет: ) print name + " отправляется в путешествие!" print...

Нужно исправить программу(Генератор визуально различимых паролей (A + B)
Помогите пожалуйста исправить программу. Вот условие задачи: Требуется по запросу выдавать N различных паролей длиной M символов,...

6
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
10.05.2020, 11:27
Цитата Сообщение от angelinaaaa Посмотреть сообщение
а я не знаю как исправить
удалить все глобал и поменять весь подход!

Цитата Сообщение от angelinaaaa Посмотреть сообщение
Алиса довольно уникальный человек, все ее друзья имеют разные, неповторяющиеся имена.
это тебе намек! какая структура данных сразу всплывает в памяти?

Добавлено через 36 секунд
Цитата Сообщение от angelinaaaa Посмотреть сообщение
печатает не пойми что
отлично)
0
2 / 2 / 0
Регистрация: 05.05.2020
Сообщений: 31
10.05.2020, 11:39  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
это тебе намек! какая структура данных сразу всплывает в памяти?
Множества?..
А как это сделать можно?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
10.05.2020, 11:45
Цитата Сообщение от angelinaaaa Посмотреть сообщение
Множества?
почти! словарь! где ключ это имя , а значение это список его друзей
типа
friends = {'angelinaa': ['Vasya', 'Petya']}
0
2 / 2 / 0
Регистрация: 05.05.2020
Сообщений: 31
10.05.2020, 12:06  [ТС]
спасибо! сейчас попробую

Добавлено через 19 минут
вот что у меня получилось:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
dict = {}
 
 
def add_friends(name_of_person, list_of_friends):
    dict[name_of_person] = list_of_friends
 
 
def are_friends(name_of_person1, name_of_person2):
    if name_of_person2 in dict[name_of_person1]:
        return True
    return False
 
 
def print_friends(name_of_person):
    for i in dict[name_of_person]:
        print(i, end=' ')
    print()
но при вводе
Python
1
2
3
4
5
add_friends("Катя", ["Женя", "Даша"])
print(are_friends("Катя", "Филипп"))
add_friends("Катя", ["Филипп"])
print(are_friends("Катя", "Филипп"))
print(are_friends("Катя", "Даша"))
печатает
False
True
False,
хотя должен False
True
True,
то есть он не добавляет в словарь, а переписывает его. как это можно исправить?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
10.05.2020, 12:16
angelinaaaa, я же даже имя тебе показал для словаря, ты зачем его дикт назвала? переименовать!
Цитата Сообщение от angelinaaaa Посмотреть сообщение
то есть он не добавляет в словарь, а переписывает его. как это можно исправить?
а сама как думаешь? наверное надо не перезаписывать, а добавлять?

Python
1
2
3
4
5
def add_friends(name_of_person, list_of_friends):
    if name_of_person in friends:
        friends[name_of_person]+=list_of_friends
    else:
        friends[name_of_person] = list_of_friends
0
2 / 2 / 0
Регистрация: 05.05.2020
Сообщений: 31
10.05.2020, 12:26  [ТС]
все переделала. еще добавила вывод по алфавиту(по условию)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
persones = {}
 
 
def add_friends(name_of_person, list_of_friends):
    a = persones.get(name_of_person)
    if a:
        persones[name_of_person] = a + list_of_friends
    else:
        persones[name_of_person] = list_of_friends
 
 
def are_friends(name_of_person1, name_of_person2):
    if name_of_person2 in persones[name_of_person1]:
        return True
    return False
 
 
def print_friends(name_of_person):
    s = reversed(persones[name_of_person])
    for i in s:
        print(i, end=' ')
    print()
решение принялось. Спасибо за помощь!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.05.2020, 12:26
Помогаю со студенческими работами здесь

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

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

Нужно написать программу, реализующую вычисление по формуле. Что нужно исправить?
X = (A*2 + B*C + 5) / (A*D – 3) Заданные значения: A = 20; B = 4; C = 15; D = 6\ Сам код написал, но выдаёт ошибку в 24 строке...

Нужно исправить программу
Помогите пожалуйста исправить программу Долно быть вот так: Произвести обход матрицы вот так 21 22 23 24 25 20 07 08 09 10 ...

Нужно исправить программу
Задание: удалить все цифры, все работает, но вместо цифр остаются пробелы, а их не должно быть. Функцию s.delete по заданию использовать...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru