Я провел некоторое исследование по SO, и я знаю, что многие подобные вопросы были заданы, но я не мог получить свой андерсер. Во всяком случае, я пытаюсь создать библиотеку, чтобы «зашифровать» строку с помощью метода номера «Цезарь», означающего, что мне нужно взять строку и заменить каждую букву на другую букву X в алфавите (я надеюсь, что это имеет смысл) , Вот мой код:Python: Выход из цикла?
from string import ascii_lowercase, ascii_uppercase
def creer_encodeur_cesar(distance):
retour = lambda x: encodeur_cesar(x, distance)
return retour
def encodeur_cesar(string, distance):
tabLowerCase = list(ascii_lowercase)
tabUpperCase = list(ascii_uppercase)
tabString = list(string)
l_encodedStr = []
for char in tabString:
position = 0
if char == " ":
pass
elif char.isupper():
#do something
elif char.islower():
for ctl in range(0, len(tabLowerCase)):
position = ctl
if char == tabLowerCase[ctl]:
if (ctl + distance) > 26:
position = ctl + distance - 25
char = tabLowerCase[position + distance]
l_encodedStr.append(char)
#How to break out of here??
encodedStr = str(l_encodedStr)
return encodedStr
encodeur5 = creer_encodeur_cesar(5)
print(encodeur5("lionel"))
Таким образом, в своем втором заявлении Элифа, я хочу сломать однажды я нашел и успешно зашифрован символ вместо зацикливания корыта всего алфавита. Я попытался использовать break
, но он вырвался из основного цикла. Не то, что я хочу. Я видел, что могу использовать try
except
и raise
, но я не совсем понимаю, как я мог это сделать, и это хорошая идея?
Каков наилучший способ для этого? Каковы хорошие практики в этом случае?
Любая помощь будет оценена и благодарна заранее!
, из которого петли вы хотите вырваться из? Этот: 'для char в tabString:' или this: 'для ctl в диапазоне (0, len (tabLowerCase)):'? –
для ctl в диапазоне (0, len (tabLowerCase)): один. Извините, я не был более ясен. – Gaboik
Использовать break для выхода из цикла – tinySandy