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

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

22.03.2020, 07:14. Показов 31758. Ответов 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
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
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
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
22.03.2020, 17:59
WilsonRich,
Цитата Сообщение от WilsonRich Посмотреть сообщение
Если для каких-то слов гематрия совпадает, то их выводите в алфавитном порядке
тут как раз такой случай.
1
 Аватар для Semen-Semenich
5226 / 3472 / 1174
Регистрация: 21.03.2016
Сообщений: 8,299
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
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
22.03.2020, 18:28
Semen-Semenich,
гематрия 'aaaaaa' равна 6*1=6
гематрия ''bBb' равна 3*2=6
1
 Аватар для Semen-Semenich
5226 / 3472 / 1174
Регистрация: 21.03.2016
Сообщений: 8,299
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
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
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
5226 / 3472 / 1174
Регистрация: 21.03.2016
Сообщений: 8,299
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
Ответ Создать тему
Новые блоги и статьи
Камера 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, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru