Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/145: Рейтинг темы: голосов - 145, средняя оценка - 4.66
1 / 1 / 0
Регистрация: 07.12.2018
Сообщений: 9

Гематрия по-английски

22.03.2020, 07:14. Показов 31917. Ответов 14

Студворк — интернет-сервис помощи студентам
Словесной гематрией называется сумма номеров (кодов, числовых значений) входящих в слово букв.
На вход программы поступает список английских слов. На одной строке записано одно слово, количество слов неизвестно.
Для вычисления гематрии поступим следующим образом:

1. Переведём слово в верхний регистр.
2. Числовое значение буквы вычислим как КодБуквы - КодБуквыA + 1
Выведите полученные слова в порядке возрастания их гематрии. Если для каких-то слов гематрия совпадает, то их выводите в алфавитном порядке.


Пример 1

Ввод:
mother
Daddy
sIster

Вывод:
Daddy
mother
sIster

Пример 2

Ввод:
bBb
aaaaaa
word

Вывод:
aaaaaa
bBb
word

Помогите с кодом проваливаеться на тесте


Python
1
2
3
4
5
6
7
8
9
10
11
12
list = []
while True:
    try:
        words = str(input())
        if words == '':
            break
        list.append(words)
    except Exception as ex:
        break
 
 
print(*sorted(list, key=lambda word: sum([ord(i) - (ord('A') + 1) for i in word.upper()])), sep='\n')
Добавлено через 8 минут
Проваливаеться на этом, не могу понять в чем баг

Ввод:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
The
universe
is
enormous
so
the
chances
of
us
being
the
only
living
creatures
are
small
Ожидаемый результат:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
of
are
is
The
the
the
so
being
us
chances
small
only
living
creatures
universe
enormous
Вывод:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
of
are
is
The
the
being
the
so
us
chances
small
only
living
creatures
universe
enormous
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2020, 07:14
Ответы с готовыми решениями:

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

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

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

14
5519 / 2872 / 571
Регистрация: 07.11.2019
Сообщений: 4,762
22.03.2020, 07:38
Со скобками напутали:
Python
1
print(*sorted(list, key=lambda word: sum([(ord(i) - ord('A') + 1) for i in word.upper()])), sep='\n')
Добавлено через 6 минут
не очень хорошая идея давать переменными имена типа list, tuple, dict...
1
1 / 1 / 0
Регистрация: 07.12.2018
Сообщений: 9
22.03.2020, 17:41  [ТС]
Спасибо, учту

Добавлено через 15 минут
Теперь крашиться на этом тесте:
Ввод:
bBb
aaaaaa
word

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

Вывод:
bBb
aaaaaa
word
0
5519 / 2872 / 571
Регистрация: 07.11.2019
Сообщений: 4,762
22.03.2020, 17:59
WilsonRich,
Цитата Сообщение от WilsonRich Посмотреть сообщение
Если для каких-то слов гематрия совпадает, то их выводите в алфавитном порядке
тут как раз такой случай.
1
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
22.03.2020, 18:15
Цитата Сообщение от WilsonRich Посмотреть сообщение
Теперь крашиться на этом тесте:
странно ведь по условию
Цитата Сообщение от WilsonRich Посмотреть сообщение
Выведите полученные слова в порядке возрастания их гематрии
bBb
aaaaaa
word

(396, 'bBb')
(580, 'word')
(786, 'aaaaaa')
>>>
ввод и результат где цифры это гематрия данного слова. как получается вывод
bBb
aaaaaa
word

не пойму.
1
1 / 1 / 0
Регистрация: 07.12.2018
Сообщений: 9
22.03.2020, 18:20  [ТС]
Тоже не могу понять
0
5519 / 2872 / 571
Регистрация: 07.11.2019
Сообщений: 4,762
22.03.2020, 18:28
Semen-Semenich,
гематрия 'aaaaaa' равна 6*1=6
гематрия ''bBb' равна 3*2=6
1
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
22.03.2020, 18:38
пардон. вместо КодБуквы - КодБуквыA + 1 я складывал. исправил на минус теперь тест с
bBb
aaaaaa
word
u235, как так гематрия 'aaaaaa' равна 6*1=6? наверно задание не совсем поняли. то есть я так понимаю берутся не все буквы а по одному экземпляру? типа set из слова и по нему считается гематрия?
но так в условии сказано 'сумма номеров (кодов, числовых значений) входящих в слово букв'
Python
1
2
3
4
5
>>> code = ord('A')+1
>>> word = 'aaaaaa'
>>> print(sum([ord(let) - code for let in word.upper()]))
-6
>>>
1
5519 / 2872 / 571
Регистрация: 07.11.2019
Сообщений: 4,762
22.03.2020, 18:47
Python
1
print(sum([ord(let)+1 - ord('A') for let in word.upper()]))
Добавлено через 1 минуту
Semen-Semenich, у вас ошибка, как у ТС.
КодБуквы - КодБуквыA + 1 не равен КодБуквы - (КодБуквыA + 1)

Добавлено через 2 минуты
Python
1
2
3
4
5
6
code = ord('A')
 
word = 'aaaaaa'
 
print(sum([ord(let) - code+1 for let in word.upper()]))
6
2
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
22.03.2020, 19:09
u235, блин на таком пустяке проколоться
1
1 / 1 / 0
Регистрация: 11.02.2021
Сообщений: 1
11.02.2021, 16:02
Немного запоздал но вот:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
import sys
 
 
g = dict()
c = ord('A') + 1
data = list(map(str.strip, sys.stdin))
for word in data:
    if sum([ord(let) - c for let in word.upper()]) in list(g.keys()):
        g[sum([ord(let) - c for let in word.upper()])].append(word)
    else:
        g[sum([ord(let) - c for let in word.upper()])] = [word]
for h in sorted(list(g.keys())):
    print(*sorted(g[h]))
1
4 / 4 / 0
Регистрация: 06.02.2021
Сообщений: 2
20.02.2021, 19:08
Не корректно, не учтена ошибка u235 и выводит без разбивки список ключа


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import sys
 
 
s = dict()
b = ord('A')
data = list(map(str.strip, sys.stdin))
for word in data:
    if sum([ord(i) - b + 1 for i in word.upper()]) in list(s.keys()):
        s[sum([ord(i) - b + 1 for i in word.upper()])].append(word)
    else:
        s[sum([ord(i) - b + 1 for i in word.upper()])] = [word]
        
for h in sorted(list(s.keys())):
    print('\n'.join(sorted(s[h])))
1
1 / 1 / 0
Регистрация: 05.05.2021
Сообщений: 2
05.05.2021, 10:18
Python
1
2
3
4
5
import sys
some_list = sorted([x.rstrip('\n') for x in sys.stdin])
some_list.sort(key=lambda x: (sum([(ord(i) - ord('A') + 1) for i in x.upper()]), x))
for i in some_list:
    print(i)
1
0 / 0 / 0
Регистрация: 17.12.2021
Сообщений: 2
05.02.2022, 15:59
Перед выводом отстортированном по гематрии списка, нужно просто отсортировать его в алфавитном порядке
words.sort()
0
1 / 1 / 0
Регистрация: 09.01.2025
Сообщений: 1
20.02.2025, 13:55
Мож еще кому-то надо.
Python
1
2
3
4
5
6
7
import sys
sp = [elem for elem in map(str.strip, sys.stdin)]
n = ord('A') - 1
sp = [(elem, sum(map(lambda x: ord(x) - n, elem.upper()))) for elem in sp]
sp = sorted(sp, key=lambda x: (x[-1], x[0]))
sp = [elem[0] for elem in sp]
print('\n'.join(sp))
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.02.2025, 13:55
Помогаю со студенческими работами здесь

Регулярные выражения. Найти и вывести в файл result.txt английские и латинские термины, используемые в статье.
Выбрать и сохранить в формате html любую статью в википедии о каком-либо животном на русском языке. Используя регулярные выражения, ...

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

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

Нужно зашифровать все английские слова во введённой строке
Задача взята с сайта https://informatics.mccme.ru/ На нём работает тестирующая система, на которой нижележащий код проходит всего...

Английские числительные
Напишите функцию numerals() для записи чисел до 100 словами на английском языке. Пример 1 Ввод: print(numerals(30)) Вывод: thirty...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru