Я хочу написать кодировщик ROT 13 на Python - PullRequest
0 голосов
/ 01 декабря 2019

Я хотел написать кодер ROT 13 на python. Я никогда не использовал Python раньше. Кодер, который мне нужен, если я попробую написать скрипт, но он способен выполнять только базовый ROT 13. Вот один из скриптов, который я использовал

alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
num_chars = len(alphabet)
rot_amt = 13

string_input = input('Enter a string: ')
string_output = ''

for curr_char in string_input:
    char_loc = alphabet.index(curr_char)
    new_loc = (char_loc + rot_amt) % num_chars
    string_output += alphabet[new_loc]

print(string_output)

Ответы [ 3 ]

0 голосов
/ 01 декабря 2019

Вы почти там, вы только забыли сменить на верхний регистр:

alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
num_chars = len(alphabet)
rot_amt = 13

string_input = input('Enter a string: ')
string_output = ''

for curr_char in string_input:
    char_loc = alphabet.index(curr_char.upper())
    new_loc = (char_loc + rot_amt) % num_chars
    string_output += alphabet[new_loc]

print(string_output)
0 голосов
/ 01 декабря 2019

Преобразуйте ввод в верхний регистр, и ваш скрипт будет работать нормально. Вы можете сделать это, принимая данные с помощью функции upper():

string_input = input('Enter a string: ').upper()

Надеюсь, это поможет.

0 голосов
/ 01 декабря 2019

Возможно, вы слышали о Zen of Python, который печатается, когда вы import this. На самом деле используется кодировка rot13. Вы можете увидеть его источник в официальном cPython git здесь

...