работа с параметрами в терминале python

Написал программу для шифровки и расшифровки текста с помощью шифра Цезаря

(я программирую на Python часов 7, сильно не бейте)

import sys
import argparse
 
def createParser ():
    parser = argparse.ArgumentParser()
    parser.add_argument ('-s')
    parser.add_argument ('-d')
    parser.add_argument ('-p')
    parser.add_argument ('-i')
    parser.add_argument ('-o')
 
    return parser


llst = ['а','б','в','г','д','е','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я']
blst = ['А','Б','В','Г','Д','Е','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я']
 
 

def encryptCaesar(msg, shift):
    ret = ""
    for x in msg:
        if x in llst:
            ind = llst.index(x)
            ret += llst[ind+shift]
        elif x in blst:
            ind = blst.index(x)
            ret += blst[ind+shift]
        else:
            ret += x
    return ret
 
def decryptCaesar(msg, shift):
    ret = ""
    for x in msg:
        if x in llst:
            ind = llst.index(x)
            ret += llst[ind-shift]
        elif x in blst:
            ind = blst.index(x)
            ret += blst[ind-shift]
        else:
            ret += x
    return ret
 
if __name__ == '__main__':
    parser = createParser()
    namespace = parser.parse_args(sys.argv[1:])
    
sh = len(str(namespace.p))
    #print (sh)
text = (namespace.i)
    #print (str(sh) + text)
for l in text:
    print(encryptCaesar(l, sh), end='')
    #for l in text:
    #   print(decryptCaesar(l, sh), end='')

в реализации должны использоваться такие условия

параметр -s реализует шифрование,

параметр -d реализует дешифрование,

параметр -p определяее пароль,

параметр -i входной текст

параметр -o выходной текст

параметры -p, -i я реализовать смог. С остальными проблемы, поэтому прошу вас помочь.

пример запуска программы

./zadanie1 -s-p passw -i ужи_к -о шлн_п


Ответы (0 шт):