Форум сайта python.su
Забились на завтра с друзьями сверить наши коды, реализующие шифр Цезаря. Выиграет тот, у кого функция получилась короче(по кол. символов и строкам). Она должна уметь и шифровать, и расшифровывать. Обязательные аргументы функции: text и key. Их дефултные значения должны быть hello world и 1. Вот моя версия:
def caesar_cipher(text="Hello, world!", key=1, task=True): return "".join([chr(((ord(a) + key) if task else (ord(a) - key)) % 0x0FFFF) for a in text])
# Life loop while alive: if (fun > boredom) and money: pass_day(fun, boredom, money) continue else: break
Офлайн
В лоб
Обязательные аргументы функции: text и key.1. Про таск ничего не говорится
def caesar_cipher(text="Hello, world!", key=1, t=1): return "".join(chr(((ord(a) + key) if t else (ord(a) - key)) % 2**16) for a in text)
Офлайн
Лишние скобки
def caesar_cipher(text="Hello, world!", key=1, t=1): return "".join(chr((ord(a) + key if t else (ord(a) - key)) % 2**16) for a in text)
Офлайн
Добавим магии
["a", "b"][1] == ["a", "b"][True] ["a", "b"][0] == ["a", "b"][False]
def caesar_cipher(text="Hello, world!", key=1, t=1): return "".join(chr([(ord(a) - key) % 2**16, ord(a) + key][t]) for a in text)
Офлайн
Спасибо, через 3 часа покажу код
# Life loop while alive: if (fun > boredom) and money: pass_day(fun, boredom, money) continue else: break
Офлайн
FishHook+1
1. Про таск ничего не говорится
a=''.join([chr(i) for i in range(0,257)]);s=lambda x:x[1:]+x[0];print("Hello, world!".translate(str.maketrans(a,s(a))))
Отредактировано papuas (Янв. 23, 2018 16:40:59)
Офлайн
DamMercul
Выиграет тот, у кого функция получилась короче(по кол. символов и строкам)
DamMerculне теми письками меряетесь.
(по кол. символов и строкам)
Офлайн
JOHN_16Дак мы школьники
Давайте посерьезней
Офлайн