У меня есть такая строка:
a = 'CODE1'
Как увеличить 1 внутри строки на 1?
Я пробовал это:
a = a+1
но получил эту ошибку:
TypeError: can only concatenate str (not "int") to str






Проблема в том, что вы пытались объединить типы str и int. Вы должны выбрать последний символ, преобразовать в int для операции увеличения и вернуться к str для конкатенации с остальной строкой:
a[:-1] + str(int(a[-1]) + 1)
Или в случаях, обсуждаемых в комментариях, вы можете использовать регулярное выражение для соответствия последней группе цифр и выполнять приращение:
import re
a = 'CODE19'
splits = re.split(r'(\d+)', a)
print(''.join(splits[:-2]) + str(int(splits[-2]) + 1))
# CODE20
@MarkRansom, ты снова просчитался :) 19-й результат будет «110»
Вы можете увеличить последнее число в строке следующим образом:
re.sub('\d+(?!.*\d)', lambda d: str(int(d[0]) + 1), a)
Нет, я не пропустил. Но я просчитался, сработает 19 раз. Или, может быть, 18, я не пытаюсь быть точным.