С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
sudo rm -rf /*
0 / 0 / 1
Регистрация: 12.12.2016
Сообщений: 19

Помощь со скриптом

29.04.2024, 16:32. Показов 417. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Есть скрипт для замены символов, но почему-то он не корректно работает!
В теории значение должно браться из словаря и подменяться на выходе,
но что-то пошло не так....

Вот код:
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
33
34
35
def multiple_replace_rus(target_str, hex_val_rus):
    for i, j in hex_val_rus.items():
        target_str = target_str.replace(i, j)
    return target_str
 
st_lendec = "Длина строки в DEC ---->  "
st_lenhex = "Длина строки в HEX ---->  "
 
hex_val_rus = {
    "a": "04 00 00 00 ", "b": "05 00 00 00 ", "c": "06 00 00 00 ", "d": "07 00 00 00 ",
    "e": "08 00 00 00 ", "f": "09 00 00 00 ", "g": "0A 00 00 00 ", "h": "0B 00 00 00 ",
    "i": "0C 00 00 00 ", "j": "0D 00 00 00 ", "k": "0E 00 00 00 ", "l": "0F 00 00 00 ",
    "m": "10 00 00 00 ", "n": "11 00 00 00 ", "o": "12 00 00 00 ", "p": "13 00 00 00 ",
    "q": "14 00 00 00 ", "r": "15 00 00 00 ", "s": "16 00 00 00 ", "t": "17 00 00 00 ",
    "u": "18 00 00 00 ", "v": "19 00 00 00 ", "w": "1A 00 00 00 ", "x": "1B 00 00 00 ",
    "y": "1C 00 00 00 ", "z": "1D 00 00 00 ", "A": "1E 00 00 00 ", "B": "1F 00 00 00 ", 
    "C": "20 00 00 00 ", "D": "21 00 00 00 ", "E": "22 00 00 00 ", "F": "23 00 00 00 ",
    "G": "24 00 00 00 ", "H": "25 00 00 00 ", "I": "26 00 00 00 ", "J": "27 00 00 00 ", 
    "K": "28 00 00 00 ", "L": "29 00 00 00 ", "M": "2A 00 00 00 ", "N": "2B 00 00 00 ",
    "O": "2C 00 00 00 ", "P": "2D 00 00 00 ", "Q": "2E 00 00 00 ", "R": "2F 00 00 00 ",
    "S": "30 00 00 00 ", "T": "31 00 00 00 ", "U": "32 00 00 00 ", "V": "33 00 00 00 ",
    "W": "34 00 00 00 ", "X": "35 00 00 00 ", "Y": "36 00 00 00 ", "Z": "37 00 00 00 ",
    "П": "03 00 00 00 "
    }
 
decode_str = input("Конвертировать в HEX ---->  ")
tst0 = decode_str
tst1 = decode_str
decode_str = multiple_replace_rus(tst0, hex_val_rus)
lenght_str = len(tst0)
tl_in1 = st_lendec, lenght_str
tl_in2 = st_lenhex, hex(lenght_str)
print(tl_in1)
print(tl_in2)
print(decode_str)
*П - пробел (используется в игре, как 03 00 00 00)
---------------------------------------------------------------------------------------------

К примеру, строку SalvatorKen он должен преобразовать в:
30 00 00 00 04 00 00 00 0F 00 00 00 19 00 00 00 04 00 00 00 17 00 00 00 12 00 00 00
15 00 00 00 28 00 00 00 08 00 00 00 11 00 00 00


Но получается вот это.....
30 00 00 00 04 00 00 00 023 00 00 00 00 00 00 19 00 00 00 04 00 00 00 17 00 00 00 12 00 00 00
15 00 00 00 28 00 00 00 08 00 00 00 11 00 00 00


Все работает, но на символе "l" что-то происходит!
В чем мождет быть проблема?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.04.2024, 16:32
Ответы с готовыми решениями:

Нужна помощь со скриптом
Мальчики,всем привет! :) Я хочу научиться пользоваться Bash Shell'ом, но пока несильно это получается... На одном из форумов нашла...

Нужна помощь со скриптом!
здравствуйте!пожалуйста напишите мне если не трудно скрипт, когда человек введет меил и пароль,чтоб этот мэил и пароль записывалось куда...

Проблема со скриптом, нужна помощь.
Здравствуйте. В скриптах дуб, поэтому прошу помощи. Есть сайт, там парсер (парсит новости). Парсит очень глючно, новости с...

2
 Аватар для Semen-Semenich
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,295
29.04.2024, 17:57
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
def multiple_replace_rus(decode_str, hex_val_rus):
    result = ''
    for key in decode_str:
        result += hex_val_rus.get(key)
    return result
 
hex_val_rus = {
    "a": "04 00 00 00 ", "b": "05 00 00 00 ", "c": "06 00 00 00 ", "d": "07 00 00 00 ",
    "e": "08 00 00 00 ", "f": "09 00 00 00 ", "g": "0A 00 00 00 ", "h": "0B 00 00 00 ",
    "i": "0C 00 00 00 ", "j": "0D 00 00 00 ", "k": "0E 00 00 00 ", "l": "0F 00 00 00 ",
    "m": "10 00 00 00 ", "n": "11 00 00 00 ", "o": "12 00 00 00 ", "p": "13 00 00 00 ",
    "q": "14 00 00 00 ", "r": "15 00 00 00 ", "s": "16 00 00 00 ", "t": "17 00 00 00 ",
    "u": "18 00 00 00 ", "v": "19 00 00 00 ", "w": "1A 00 00 00 ", "x": "1B 00 00 00 ",
    "y": "1C 00 00 00 ", "z": "1D 00 00 00 ", "A": "1E 00 00 00 ", "B": "1F 00 00 00 ", 
    "C": "20 00 00 00 ", "D": "21 00 00 00 ", "E": "22 00 00 00 ", "F": "23 00 00 00 ",
    "G": "24 00 00 00 ", "H": "25 00 00 00 ", "I": "26 00 00 00 ", "J": "27 00 00 00 ", 
    "K": "28 00 00 00 ", "L": "29 00 00 00 ", "M": "2A 00 00 00 ", "N": "2B 00 00 00 ",
    "O": "2C 00 00 00 ", "P": "2D 00 00 00 ", "Q": "2E 00 00 00 ", "R": "2F 00 00 00 ",
    "S": "30 00 00 00 ", "T": "31 00 00 00 ", "U": "32 00 00 00 ", "V": "33 00 00 00 ",
    "W": "34 00 00 00 ", "X": "35 00 00 00 ", "Y": "36 00 00 00 ", "Z": "37 00 00 00 ",
    "П": "03 00 00 00 "
    }
decode_str = input("Конвертировать в HEX ---->  ")
decode_str = multiple_replace_rus(decode_str, hex_val_rus)
print(decode_str)
Добавлено через 3 минуты
Цитата Сообщение от _DedSec Посмотреть сообщение
В чем мождет быть проблема
проблема в том что вы меняете символы во время итерации по строке. заменив l на 0F 00 00 00 теперь цикл доходит до F и меняет ее на 23 00 00 00
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
29.04.2024, 19:12
Мой вариант больше не подходит?
Python
1
2
3
4
5
6
7
8
9
10
11
def un(hex_num: str) -> str:
    b = bytes.fromhex(hex_num)
    r = struct.unpack('<I', b)[0]
    print(r)
    if r == 3:
        r += ord(' ') - 3
    elif 4 <= r <= 29:
        r += ord('a') - 4
    elif r >= 30:
        r += ord('A') - 30
    return chr(r)
Добавлено через 24 минуты
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def pack(ch: str) -> bytes:
    r = ord(ch)
    # print('>', r)
    if ord(' ') == r:
        r -= ord(' ') - 3
    elif ord('a') <= r <= ord('z'):
        r -= ord('a') - 4
    elif ord('A') <= r <= ord('Z'):
        r -= ord('A') - 30
    # print('<', r)
    return struct.pack('<I', r)
 
for i in 'Trixie is Best Pony':
    print(*pack(i), end=' ')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.04.2024, 19:12
Помогаю со студенческими работами здесь

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

Очень нужна помощь со скриптом который при запуске php файла меняет index.html
есть такой скрипт: &lt;?php if (empty ($_GET)) { $string = file_get_contents...

как сделать так, чтобы создав cookies клиентским скриптом я могу получить к нему доступ серверным скриптом?
Добры день!!! Вот допустим я создаю cookie из JavaScript. В самом фале cookies будет создано несколько строк: IF_LastVisit - название...

Создание БД скриптом
Привет! Создаю базу скриптом из шелла. Инстанс стартует, память выделяется, а дальше ничего не происходит. Все строки из скрипта пройдены...

Проблема со скриптом
Возникла ошибка в скрипте, не знаю как решить. Кто сможет - помогите пожалуйста Скрипт: Ошибка:


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru