Если вам нужно немного более элегантное и гибкое решение, которое позволяет избежать условий if
, вы можете предварительно определить диапазон символов, которые вы хотите циклически перебирать, и использовать оператор по модулю %
, чтобы ваш +1
автоматически проходил через диапазон ASCII, не выпадая на [
, который является символом после Z
.
chr_range_start = ord('A') # Set your first character
chr_range_end = ord('Z') # Set your last character
chr_range = chr_range_end - chr_range_start
char = str(input())
char1 = chr_range_start + ((ord(char) + 1 - chr_range_start) % (chr_range + 1))
print(chr(char1))
Если вы решили, что хотите перебирать строчные буквы az вместо AZ, вы можете просто заменить ' A 'с' a 'и' Z 'с' z 'в первых двух строках. Вы можете сделать это для любого диапазона символов ASCII.
Если вы хотите изменить шаг на +2 символа, вы просто измените первый +1 (второй должен оставаться как есть):
char1 = chr_range_start + ((ord(char) + 2 - chr_range_start) % (chr_range + 1))
Это даст вам A
→ C
и Z
→ Β
. Если вы сделали это с условием if
, вам придется изменить его на:
if char == 'Y':
char1 = 'A'
elif char == 'Z':
char1 = 'B'
Это может стать громоздким. С помощью приведенного выше кода вы можете произвольно изменить свой диапазон, а также значение шага, не меняя код.