Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.59/56: Рейтинг темы: голосов - 56, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 12.04.2021
Сообщений: 21

Шифровка

12.04.2021, 19:13. Показов 11906. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Шифровка
Стало известно, что противник шифрует текст следующим образом. Сначала определяется количество букв в самом длинном слове, его длину обозначим k (словом называется непрерывная последовательность английских букв, слова друг от друга отделяются любыми другими символами, длина слова не превышает 20 символов). Затем каждая английская буква заменяется на букву, стоящую в алфавите на k букв ранее (алфавит считается циклическим, то есть перед буквой A стоит буква Z). Другие символы остаются неизменными. Строчные буквы при этом остаются строчными, а заглавные — заглавными. Расшифруйте найденную шифровку.

Входные данные

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

Выходные данные

Выведите исходный текст.

Примеры
Ввод
Вывод
Zb Ra Ca Dab Ra.
Ce Ud Fd Gde Ud.
не понимаю что делать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.04.2021, 19:13
Ответы с готовыми решениями:

шифровка
Стало известно, что противник шифрует текст следующим образом. Сначала определяется количество букв в самом длинном слове, его длину...

Шифровка
Стало известно, что противник шифрует текст следующим образом. Сначала определяется количество букв в самом длинном слове, его длину...

Шифровка
Шифровка Стало известно, что противник шифрует текст следующим образом. Сначала определяется количество букв в самом длинном слове, его...

40
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
13.04.2021, 21:53
Студворк — интернет-сервис помощи студентам
Дык это шифр Цезаря)
ну, тогда ...
Python
1
2
3
4
5
6
7
8
9
10
11
12
def ave(l, mstr):
    for i in mstr:
        mlist.append(alpha[(alpha.find(i) + l) % len(alpha)])
    print('Result: ', '"', ''.join(mlist), '"', sep='')
 
 
if __name__ == '__main__':
    l = int(input())
    mstr = input()
    alpha = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'
    mlist = []
    ave(l, mstr)
0
0 / 0 / 0
Регистрация: 12.04.2021
Сообщений: 21
13.04.2021, 21:59  [ТС]
Dax, так там английские буквы! Интересно, что будет, если изменить на латиницу... Попробую...
0
4 / 4 / 0
Регистрация: 20.03.2021
Сообщений: 54
14.04.2021, 02:00
Dimakonuhov17, получилось? у меня никак...(((
0
0 / 0 / 0
Регистрация: 22.02.2021
Сообщений: 3
14.04.2021, 09:53
у меня тоже
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
14.04.2021, 10:30
GorodetskiyKP, выдает True для любого алфавита
Python
1
if letter.isalpha():
1
 Аватар для GorodetskiyKP
139 / 97 / 48
Регистрация: 22.10.2012
Сообщений: 234
14.04.2021, 12:25
Ок.. заменил метод isalpha() на поиск по таблице символов.. латинские символы во всех кодировках стоят на тех же местах?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
text = input()
 
alphabetical = [letter for letter in text if (65 <= ord(letter) <= 122) or letter == ' ']
k = max(map(len, ''.join(alphabetical).split()))
 
letters = []
 
for letter in text:
    if 65 <= ord(letter) <= 122:
        alph_index = ord("A") if letter.istitle() else ord("a")
        letters.append(chr((ord(letter) - alph_index + k) % 26 + alph_index))
    else:
        letters.append(letter)
 
print("".join(letters))
1
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
14.04.2021, 12:33
GorodetskiyKP, лучше тогда
Python
1
if 97 <= ord(letter.lower()) <= 122:
Между строчными и прописными еще 6 других символов
1
 Аватар для GorodetskiyKP
139 / 97 / 48
Регистрация: 22.10.2012
Сообщений: 234
14.04.2021, 14:27
Gdez, да.. увидел. Спасибо!
0
4 / 4 / 0
Регистрация: 20.03.2021
Сообщений: 54
14.04.2021, 16:43
GorodetskiyKP, уважаемый подскажите какой код пропускает проверщик? Пробовали вот так
Python
1
2
3
4
5
6
7
8
9
10
11
text = input()
alphabetical = [letter for letter in text if (97 <= ord(letter) <= 122) or letter == ' ']
k = max(map(len, ''.join(alphabetical).split()))
letters = []
for letter in text:
    if 97 <= ord(letter) <= 122:
        alph_index = ord("A") if letter.istitle() else ord("a")
        letters.append(chr((ord(letter) - alph_index + k) % 26 + alph_index))
    else:
        letters.append(letter)
print("".join(letters))
не прошло....(((((
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
14.04.2021, 17:03
eiktyrnir, попробуй
Python
1
2
3
4
5
6
7
8
9
10
11
12
text = input()
alphabetical = [letter if (97 <= ord(letter.lower()) <= 122)
                        else ' ' for letter in text]
k = max(map(len, ''.join(alphabetical).split()))
letters = []
for letter in text:
    if 97 <= ord(letter.lower()) <= 122:
        alph_index = ord("A") if letter.istitle() else ord("a")
        letters.append(chr((ord(letter) - alph_index + k) % 26 + alph_index))
    else:
        letters.append(letter)
print("".join(letters))
0
0 / 0 / 0
Регистрация: 14.04.2021
Сообщений: 4
14.04.2021, 17:06
У меня не прошёл(((
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
14.04.2021, 17:24
Igoryan08, пропустил "пустую" строку
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
text = input()
alphabetical = [letter if (97 <= ord(letter) <= 122)
                        or (65 <= ord(letter) <= 90) else ' '
                         for letter in text]
tmp = ''.join(alphabetical).split()
if tmp:
    k = max(map(len, tmp))
    letters = []
    for letter in text:
        if 97 <= ord(letter.lower()) <= 122:
            alph_index = (ord("A") if letter.istitle()
                                 else ord("a"))
            letters.append(chr((ord(letter)
             - alph_index + k) % 26 + alph_index))
        else:
            letters.append(letter)
    text = "".join(letters)
print(text)
2
4 / 4 / 0
Регистрация: 20.03.2021
Сообщений: 54
14.04.2021, 17:29
Gdez, ОГРОМНОЕ ОГРОМНОЕ ПРИОГРОМНОЕ ЧЕЛОВЕЧЕСКОЕ ЧЕЛОВЕЧЕСКОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!!!
ДА ХРАНИТ ВАС БОГ!!!
0
0 / 0 / 0
Регистрация: 14.04.2021
Сообщений: 4
14.04.2021, 17:37
СПАСИБО!!!!!!!
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
14.04.2021, 17:57
Igoryan08, на будущее - есть модуль string. Вместо ord и chr иногда лучше с ним
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
import re 
 
#########
import string
eng_low = string.ascii_lowercase
eng_upp = string.ascii_uppercase
#########
 
text = input()
tmp = re.findall(r'[a-zA-Z]+', text)
if tmp:
    k = max(map(len, tmp))
res = ''
for w in text:
    
    if w in eng_low:
        ind = (eng_low.find(w) + k) % 26
        w = eng_low[ind]
        
    elif w in eng_upp:
        ind = (eng_upp.find(w) + k) % 26
        w = eng_upp[ind]
        
    res += w
print(res)
0
 Аватар для GorodetskiyKP
139 / 97 / 48
Регистрация: 22.10.2012
Сообщений: 234
14.04.2021, 18:47
Gdez, никогда так if в LC не использовал.. выглядит круто! Спасибо!

Python
1
alphabetical = [letter if (97 <= ord(letter.lower()) <= 122) else ' ' for letter in text]
0
0 / 0 / 0
Регистрация: 28.03.2021
Сообщений: 6
14.04.2021, 20:34
Форумчане помогите пожалуйста доделать код:
Python
1
2
3
4
5
6
7
8
w=input()
ww=w.count(' ')
www = w.split()
e=ww//(len(www)-1)
ee=ww%(len(www)-1)
print(*[www[q]+" "*e for q in range(len(www)-ee-1)],sep="",end="")
print(*[www[print(-t-1)]+" "*(ee+e) for t in range(ee)],sep="")
print(www[-1])
Заранее спасибо!
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
14.04.2021, 20:39
KOKem, афигеть принтов то
Есть функция join для формирования строк
0
14.04.2021, 20:46

Не по теме:

Ни чем не лучше го8ноКодов выше :rofl:

0
0 / 0 / 0
Регистрация: 28.03.2021
Сообщений: 6
14.04.2021, 20:52
Знаю, но джойном пользоваться не умею можете помочь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.04.2021, 20:52

Задача E. Шифровка
Стало известно, что противник шифрует текст следующим образом. Сначала определяется количество букв в самом длинном слове, его длину...

Задача 'Шифровка'
Помогите пожалуйста с задачей. Стало известно, что противник шифрует текст следующим образом. Сначала определяется количество букв в...

Шифровка Python
Стало известно, что противник шифрует текст следующим образом. Сначала определяется количество букв в самом длинном слове, его длину...

Шифровка и расшифровка
Здравствуйте, помогите пожалуйста написать программу которая будет шифровать и расшифровывать слово. Примеры: Шифровка: привет...

Шифровка rot13
Не могу понять, почему шифровка идёт не по кругу, а идёт дальше и использует другие символы text = input() key = 4 alphabet...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
После бана на Пикабу не работает авторизация аккаунта с Яндекса.
Hrethgir 09.07.2026
В частности https:/ / auto. ru/ logbook/ zapret-na-vozhdenie-posle-65-let_1cf28789-07b4-4c75-a2f7-4cd4edf9deeb тут хотел оставить комментарий такой Зрите в корень - монополизация на разработку программ. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru