Здравствуйте. Подскажите пожалуйста. Я допустим ввожу любую строку и мне нужно получить новую строку путём замены каждого символа следующим за ним, стоящим в таблице ASCII. Я знаю что можно использовать ord и chr, но не пойму как это реализовать.
Не совсем понятно условие:
Строку символов можно обработать как массив или список и сдвигать в цикле:
# Python cls.py
# cyclical left shift
def shift(lst, steps):
if steps < 0:
steps = abs(steps)
for i in range(steps):
lst.append(lst.pop(0))
s = ['a','b','c','d','e','f','g','h']
print (s)
shift(s, -1)
print (s)
Ух… ничего не пойму))). Так щас пример приведу т.е
Входные данные:
qwerty
Выходные данные:
rxfsuz
т.е есть же таблица ASCII вот, после элемента q, следует элемент r, после элемента w, следует элемент x и т.д
Тогда наверное. Загонять всю таблицу в список. Находить в списке введенный символ и на выход выводить следом идущий по списку элемент.
Ууу, а по другому нельзя? Там больше 100 символов
Так ведь необходимо с чем-то сравнивать введенный символ.
И наверное будет проще если декодировать введенный символ в десятичное значение. Можно будет работать как с целочисленным массивом.
P. S.
И можно ведь не вводить всю таблицу, а например только буквы (верхний регистр от 65 до 90, нижний от 97 до 122).
Вот. Это всё что дано.
Напишите программу, которая считывает исходную строку и получает новую путём замены каждого символа следующим за ним, стоящим в таблице ASCII.
Я сначала подумал сделать через цикл и типа вот что-то такого
s = input()
k = ord (s)
print (chr (k+1))
Тут ещё цикл прописать, но так не работает.(
Ну так листинг в первом ответе это и делает.
За исключением ввода строки, задана константно.
P. S.
Хотя нет, там сдвиг. А нужна замена по таблице.
Так что прийдеться создавать список.
Хорошо, чуть позже попробую