Ваше время l oop не похоже на pythoni c. Когда вы пытаетесь использовать сложные вещи, это усложняет ваш код. Попробуйте использовать for в l oop следующим образом:
for symbol in filedata:
if symbol.isalpha():
actions..
И вам не нужно использовать в нем индекс i и j.
Но если вы хотите использовать "while "l oop, сделайте это
while i < len(filedata):
j = 0
while j < len(alp):
if filedata[i] != alp[j]:
j+=1
if filedata[i] == alp[j]:
k = old_string.rfind(filedata[i])
if i < (len(alp) - key):
old_string = old_string[:k] + alp[j+key] + old_string[k+1:]
else:
old_string = old_string[:k] + alp[(j+key)%26] + old_string[k+1:]
break
i += 1
Попробуйте использовать простые функции, которых много в Python