我做了一些研究,發現有很多類似的問題已經被提出,但是我無法得到我的答案。無論如何,我試圖建立一個圖書館來「加密」字符串與「塞薩爾的數字」技術,這意味着我必須採取字符串,並用另一個字母替換每個字母在字母表中的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"))
所以,在我的第二個elif的發言,我想破一次,我已成功發現和加密的字符,而不是循環槽全字母。我試圖使用break
,但它已經打破了主循環。不是我想要的。我看到我可以使用try
except
和raise
,但我不太清楚我該怎麼做,這是一個好主意嗎?
這樣做的最好方法是什麼?這種情況下的良好做法是什麼?
任何幫助將不勝感激,並提前致謝!
從中圈你想打出來的?這一個:'對於tabString中的字符:'或這個:'對於範圍內的ctl(0,len(tabLowerCase)):'? –
for the ctl in range(0,len(tabLowerCase)):one。對不起,我不是更清楚 – Gaboik
使用break來退出循環 – tinySandy