Форум сайта python.su
Завтра экзамен, нужно внести изменения в лабораторную, чтоб засчитали. Помогите пожалуйста, не шарю в питоне совсем…
Вот собственно исходное задание и код:
Напишите функцию, принимающую в качестве аргумента цифру сдвига (как ROT-13) и сообщение, а возвращающую закодированное сообщение >>> encrypt(13, “the cake is a lie”)
def encrypt(n, s):
result = “”
for ch in s:
if ch == “ ”:
result += “ ”
else:
result += chr(ord(ch) + n)
return result
s = input(“Введите строку: ”)
n = int(input(“Введите цифру сдвига: ”))
print(encrypt(n, s))
Что нужно сделать по индивидуальному заданию:
Сделать так, чтобы символы кодировались ключом, который каждый раз меняется на +2
0 1 2 3 4
z e b r a
1) z —-> с ключом 5
2) е —-> c ключом 7
3) b —-> с ключом 9
r —-> с ключом 11
a —-> с ключом 13
Отредактировано ellinishe (Дек. 26, 2014 20:42:30)
Прикреплённый файлы: 3.py (270 байт)
Офлайн
ну если я правильно понял задание, то как-то так
def encrypt(n, s): result = "" for ch in s: if ch == " ": result += " " else: result += chr(ord(ch) + n) return result s = input("Введите строку: ") n = int(input("Введите цифру сдвига: ")) print(encrypt(n, s)) #все что ниже это уже индивидуальное задание def id_task(s, k): return ''.join([chr(ord(s[i]) + j) if s[i] != ' ' else ' ' for i, j in enumerate(range(k, (len(s)-1)*2+k+1, 2))]) print(id_task(s, n))
Офлайн
спасибо! попробую сдать
Офлайн
from string import ascii_lowercase, ascii_uppercase def encrypt_symbol(sym, key): abc = False if sym in ascii_lowercase: abc = ascii_lowercase elif sym in ascii_uppercase: abc = ascii_uppercase if abc: sym = abc[(abc.index(sym) + key) % 26] return sym def encrypt_message(msg, key): enc_msg = "" for i in msg: enc_msg += encrypt_symbol(i, key) key += 2 return enc_msg print(encrypt_message("Zebra 666", 5))
Офлайн
NotDeadAlready
Синтаксис Питона сосредоточил в себе несуразности Лиспа и Фортрана. – Ларри Уолл, создатель Перла.
Отредактировано Isem (Дек. 30, 2014 19:36:17)
Офлайн
NotDeadAlreadyщас блевану
def encrypt_message(msg, key):
enc_msg = “”
for i in msg:
enc_msg += encrypt_symbol(i, key)
key += 2
return enc_msg
print(encrypt_message(“Zebra 666”, 5))
Офлайн
NotDeadAlreadyвозможно, ты хороший человек. Докажи тогда, что ты не дебил.
def encrypt_symbol(sym, key):
abc = False
if sym in ascii_lowercase:
abc = ascii_lowercase
elif sym in ascii_uppercase:
abc = ascii_uppercase
if abc:
sym = abc
return sym
Офлайн
Я никому ничего не обязан доказывать. Тем более эмоционально и интеллектуально незрелому человеку, мыслящему в категориях детсадовского “взятия на слабо”. Кем ты меня считаешь - твое личное дело.
Посмотри вот это видео и почитай статью, может быть просветлеет в мозгах. Хотя вряд ли, конечно…
http://news.rambler.ru/25560518/
http://www.youtube.com/watch?v=FcfDhRz8nUQ
Ну и вот еще - https://clck.ru/9PcuJ
Офлайн
NotDeadAlreadyДействительно не надо. Все и так всё поняли. Не тратьте свое и наше время зря. Да и говнокод плодить здесь тоже лишнее. Тут и так новички в темах жутняк пишут. А если еще таким же жутняком и начинают “эксперты” отвечать, то вообще становится тоскливо…
Я никому ничего не обязан доказывать.
Отредактировано 4kpt_III (Дек. 30, 2014 21:08:08)
Офлайн
Все и так всё поняли.
Офлайн