Здравствуйте, только начал изучать Python, не могу понять в чём проблема, при повторном использовании ответ просто дублируется
может я неправильно использовал конструкцию ?
for i in K:
for a in range(len(M)):
if i==M[a]:
y+=Z[a]
break
Ответы (1 шт):
Автор решения: Andrei
→ Ссылка
Дело в том что здесь y+=Z[a] и здесь y+=M[a] Вы добавляете к уже существующим данным еще данные то есть += и в конце операции не сбрасываете переменную y к начальному состоянию и обратно добавляете к ней новые данные. и так по кругу. Должно быть так:
M=['i','l','o','v','e','y','o','u','s','p']
Z=[')','.', '_','=',':','>','?','*','&','$']
K=-1
y=""
while K!=0:
K=input("Чего пожелаете?\n"
"1-Зашифровать\n"
"2-Расшифровать\n"
"3-Покинуть программу\n"
"Я не отстану, введи число от 1 до 3 и даже не думай нажимать на крестик!\n")
if K=="1":
K=input("Введите строку, которую хотите зашифровать:\n"
"Доступные символы для написания: \ni l o v e y o u s p\n")
for i in K:
for a in range(len(M)):
if i==M[a]:
y+=Z[a]
break
elif K=="2":
K=input("Введите строку, которую хотите расшифровать:\n"
"Доступные символы для написания: \n) . _ = : > ? * & $\n")
for i in K:
for a in range(len(Z)):
if i==Z[a]:
y+=M[a]
break
elif K=='3':
break
else:
print ("Нет-нет, так не пойдёт, давай от 1 до 3 :)")
print(y)
y = ''
