Привет всем :) Я строю скрипт для кодирования текста с простым поворотом текста (ROT). Скрипт работает хорошо, но у меня проблема, он также вращает все символы, такие как [пробелы,!,?,.] Я работаю с таблицей ascii, чтобы сделать это, что я могу сделать, чтобы избежать вращения символов этого типа ?
def rot13(input,key): #Function to code a text with caeser chyper.
if key > 25:
key = 25
elif key < 2:
key = 2
finaltext = ''
for letter in input:
num = ord(letter)
if (num + key) > 122: #If the final number is greater than 122..
x = (num + key) - 122
finaltext += chr(x + ord('a') - 1)
elif((num + key <= 122)):
finaltext += chr(num + key)
print(finaltext)
2 ответа
Прежде чем «вращать» своего персонажа, добавьте проверку, чтобы увидеть, является ли он буквенно-цифровым:
if letter.isalpha():
# Do your thing
else:
finaltext += letter
Попробуй это:
>>> import string
>>> letter = 'a'
>>> letter in string.letters
True
>>> letter = '.'
>>> letter in string.letters
False
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.