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

Замена всех символов

22.09.2015, 16:34. Показов 4836. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
* Выложил здесь, т.к. требуется питоновский код
Задача: получаю из веб формы текст пользователя. Нужно заменить все символы на другие (зашифровать). Делаю в джанго. Передаю методом пост, обрабатываю, но не могу справиться с кодом.
Создал словарь типа: deo = { 'a': 'я' ... }
и как ,например текст из формы "горе от ума", "зашифровать"(просто замена символов)?
ЗЫ использовал такое: (не пашут тэги кодов)

Python
1
2
3
4
5
6
7
deo = { ... }
def cypher_get1(sym):
 try:
  return deo[sym]
 except sym
def cypher1(msg):
 return ''.join(map(cypher_get1, msg)
так вот совсем не понравился код и еще ошибку шлет sequence item 0: excepted str instance, BoundField found
Ну не важно... буду рад более грамотному способу

*во вьюхе*^
Python
1
2
3
4
5
6
def do_code(request):
 if request.POST:
  new = codetextform(request.POST) // codetextform - форма питоновская с модулем
  if new.is_valid():
     return cypher1(new)
return render_to_response('code_prog_res.html', {'new': new})
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.09.2015, 16:34
Ответы с готовыми решениями:

Замена всех символов вокруг скобки
Всем привет. К примеру есть предложение Мне нужно сделать так, если скобку окружают не буквы, то их нужно убрать ...

Замена всех символов кроме первого на звёздочки
Всем привет. Есть ли какой-то автоматический способ проделать эту операцию, допустим есть переменная: string name =...

Замена всех символов в урл через HTACESS
Добрый день. Никак не могу найти решение: требуется при обращении по адресу http://site.ru/catalog1/catalog2/page.html открывалась...

10
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
22.09.2015, 20:10
Если msg список то нет проблем, если нет — преобразовывайте.
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
22.09.2015, 20:35
Code
1
2
3
4
5
6
7
8
9
>>> for x in list(zip([x for x in range (1040, 1104)], [x for x in range(63,-65,-2)])):
...     dct[chr(x[0])] = chr(x[0]+x[1])
 
>>> word = 'угадайка'
>>> for letter in word:
...     result += dct[letter]
 
>>> result
'МЬЯЫЯЦХЯ'
обратно

Code
1
2
3
4
5
6
7
>>> result2 = ''
>>> word2 = 'МЬЯЫЯЦХЯ'
>>> for letter in word2:
...     result2 += dct[letter]
 
>>> result2
'угадайка'
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
23.09.2015, 07:35
Как-то так:
Python
1
2
3
4
5
d = {'a':'b', 'b':'c', 'c':'d'}
 
string = 'bca'
str2 = [d[l] for l in string]
print ''.join(str2)
0
0 / 0 / 0
Регистрация: 12.05.2015
Сообщений: 132
23.09.2015, 13:05  [ТС]
dondublon, воспользовался Вашим способом.
ошибкаесть скрин): django.forms.forms.BoundField object at 0x037A....

страничка с формой, которую заполняет пользователь

HTML5
1
2
3
<form action="/do/" method="post">
{{ form }}
<input type="submit" value="code"></form>
сама форма такая:

Python
1
2
class codetextform(forms.Form):
 codetext = forms.CharField(widget=Textarea)
вьюха

Python
1
2
3
4
5
6
7
8
9
def do_code(request):
 d = {'a': 'b', 'b': 'c', 'c': 'a', 'l': 't'}
 if request.method == 'POST':
   new = codetextform(request.POST)
   if new.is_valid():
sres = [d[l] for l in new]
so = ''.join(sres)
return so
  return render_to_response('code_prog_res.html', {'so': so, 'new': new})

в чем ошибка не пойму? вроде форму получаю, но стопорит на sres = [d[l] for l in new]
Миниатюры
Замена всех символов  
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
23.09.2015, 13:09
XaxOo, KeyError указывает на то, что пришла буква, которой нет в словаре.
0
0 / 0 / 0
Регистрация: 12.05.2015
Сообщений: 132
23.09.2015, 13:33  [ТС]
dondublon, но я ввожу символы из словаря "d". И в графе request inform видно, что я писал "aa"
Jabbson, интерпретатор питона " dct " не понимает (выдает ошибку name dct is not defind или error in block)
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
23.09.2015, 13:36
Цитата Сообщение от XaxOo Посмотреть сообщение
Jabbson, интерпретатор питона " dct " не понимает (выдает ошибку name dct is not defind или error in block)
Code
1
>>> dct = {}
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
23.09.2015, 14:10
XaxOo, ну проверьте, чо.
Можно воспользоваться get:
Python
1
[d.get(l)...
1
0 / 0 / 0
Регистрация: 12.05.2015
Сообщений: 132
24.09.2015, 10:45  [ТС]
с get заработало)) , но не все.. теперь ругается на so = ''.join(sres)

TypeError : sequence item 0: expected str instance, NoneType found

Суть сего в том, чтобы получить из формы текст, преобразовать его и вывести преобразованный. А вывести я могу если присвою его какой-либо переменной, верно?

я так понимаю нужно указать или преобразовать в строку? Я уж помучаю Вас))

Добавлено через 7 минут
so = ''.join(str(sres))
ITs WORK

Добавлено через 18 часов 35 минут
в итоге родил:
html
HTML5
1
2
3
4
5
6
7
8
9
{% block code %}
 
<form action="/do/" method="POST">
<input type="text" name="ur">
<input type="submit" value="code">
</form>
 
 
{% endblock %}
вьюха:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
def do_code(request):
    d = {
    'а': 'я', '1': '0', 'A': 'Я', 'a': 'z', 'A': 'Z',
    'б': 'ю', '2': '9', 'Б': 'Ю', 'b': 'y', 'B': 'Y',
    'в': 'э', '3': '8', 'В': 'Э', 'c': 'x', 'C': 'X',
    'г': 'ь', '4': '7', 'Г': 'Ь', 'd': 'w', 'D': 'W',
    'д': 'ы', '5': '6', 'Д': 'Ы', 'e': 'v', 'E': 'V',
    'е': 'ъ', '6': '5', 'Е': 'Ъ', 'f': 'u', 'F': 'U',
    'ё': 'щ', '7': '4', 'Ё': 'Щ', 'g': 't', 'G': 'T',
    'ж': 'ш', '8': '3', 'Ж': 'Ш', 'h': 's', 'H': 'S',
    'з': 'ч', '9': '2', 'З': 'Ч', 'i': 'r', 'I': 'R',
    'и': 'ц', '0': '1', 'И': 'Ц', 'j': 'q', 'J': 'Q',
    'й': 'х', ' ': '$', 'Й': 'Х', 'k': 'p', 'K': 'P',
    'к': 'ф', '!': '^', 'К': 'Ф', 'l': 'o', 'L': 'O',
    'л': 'у', '?': '*', 'Л': 'У', 'm': 'n', 'M': 'N',
    'м': 'т', '.': '@', 'М': 'Т', 'n': 'm', 'N': 'M',
    'н': 'с', ',': '#', 'Н': 'С', 'o': 'l', 'O': 'L',
    'о': 'р', '№': '[', 'О': 'Р', 'p': 'k', 'P': 'K',
    'п': 'п', '%': ']', 'П': 'П', 'q': 'j', 'Q': 'J',
    'р': 'о', ';': '.', 'Р': 'О', 'r': 'i', 'R': 'I',
    'с': 'н', '(': '+', 'С': 'Н', 's': 'h', 'S': 'H',
    'т': 'м', ')': '-', 'Т': 'М', 't': 'g', 'T': 'G',
    'у': 'л', '/': ',', 'У': 'Л', 'u': 'f', 'U': 'F',
    'ф': 'к', '@': '!', 'Ф': 'К', 'v': 'e', 'V': 'E',
    'х': 'й', ':': '?', 'Х': 'Й', 'w': 'd', 'W': 'D',
    'ц': 'и', '$': '(', 'Ц': 'И', 'x': 'c', 'X': 'C',
    'ч': 'з', '#': ')', 'Ч': 'З', 'y': 'b', 'Y': 'B',
    'ш': 'ж', '[': '=', 'Ш': 'Ж', 'z': 'a', 'Z': 'A',
    'щ': 'ё', ']': '/', 'Щ': 'Ё',
    'ъ': 'е', '=': '%', 'Ъ': 'Е',
    'ы': 'д', '~': '&', 'Ы': 'Д',
    'ь': 'г', '&': '~', 'Ь': 'Г',
    'э': 'в', '{': '_', 'Э': 'В',
    'ю': 'б', '}': '<', 'Ю': 'Б',
    'я': 'а', '_': '>', 'Я': 'А',
               '<': '}',
               '>': '{',
               '*': '|',
               '+': '№',
               '-': '`'
    }
    if request.method == 'POST':
        if 'ur' in request.POST:
            new = request.POST['ur']
            sres = [d.get(l) for l in new]
            so = ''.join(sres)
            return render_to_response('code_prog_res.html', {'so': so, 'new': new})
        else:
            return redirect('/')
спасибо за советы.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
25.09.2015, 07:22
Цитата Сообщение от XaxOo Посмотреть сообщение
с get заработало)) , но не все.. теперь ругается на so = ''.join(sres)
TypeError : sequence item 0: expected str instance, NoneType found
Ну правильно. Пришла буква, которой нет в словаре.
Просто d[l] вырубало, теперь d.get(l) для неё возвращает None. Этот None участвует в join и вырубает его.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.09.2015, 07:22
Помогаю со студенческими работами здесь

Замена в строке длиной N символов всех пробелов на символ $
помогите решить пожалуйста, я ни черта здесь не понимаю((((

Замена первых двух символов во всех string полях
struct abonent { string Fname, Name, Otch, Adres, Home, Org; int Tnumber, Mnumber; }; int main() { int n; ...

Замена всех встречающихся символов (replace), а не только первого
Всем привет. Подскажите пожалуйста, как сделать так, чтобы заменялись все необходимые символы, а не только первый #include...

Замена всех символов точек «.» в строке на восклицательные знаки «!»
Помогите написать программу, которая заменяет все символы точки «.» в строке, введенной пользователем, на символы восклицательного знака...

Замена всех символов после * на символ "-"
В данном тексте заменить все символы после первой * на символ -. Если * нет, оставить без изменения.


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Камера 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