Мой код реализует шифр Цезаря, и эта функция должна преобразовывать введенную строку в зашифрованную строку.
Для этого мне приходится искать символ в 2-х списках, список строчных букв, прописных букв, а потом, если это не буква, просто добавить символ в зашифрованную строку.
Для этого я решил использовать два слоя try и exclude. Есть ли лучший способ сделать это, может быть, с if/else?
import string
from tkinter import *
from tkinter import ttk
alphaLower = string.ascii_lowercase
alphaUpper = string.ascii_uppercase
alphaShiftL = alphaLower
alphaShiftU = alphaUpper
def shiftList(amount):
global alphaShiftL
global alphaShiftU
alphaShiftL = alphaLower[amount:] + alphaShiftL[:amount]
alphaShiftU = alphaUpper[amount:] + alphaShiftU[:amount]
def encrypt(unencrypted):
encrypted = ''
for char in unencrypted:
#HERE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
try:
alphaLower.index(char)
encrypted += alphaShiftL[alphaLower.index(char)]
except ValueError:
try:
encrypted += alphaShiftU[alphaUpper.index(char)]
except ValueError:
encrypted += char
return encrypted
find
вместоindex
и вообще избегайте исключений. - person Matteo Italia   schedule 24.02.2016