Вывод текста "заборчиком"
Необходимо вывести строку формата *слово*другоеслово* заборчком, т.е. каждая последующая буква в другом регистре (*СлОвО*дРуГоЕсЛоВо*). Имеется такой код:
text = input("Введите строку: ")
for i in range(len(text)):
if i % 2 == 0:
print(text[i].upper(), end="")
else:
print(text[i], end="")
Проблема заключается в том, что после символа '*' буква не меняяет своей регистр и получается так:
*СлОвО*ДрУгОеСлОвО*
Как это можно исправить?
Ответы (2 шт):
Автор решения: Алексей Белкин
→ Ссылка
import string
text_sample = '*слово*другоеслово*'
i = 0
for simvol in text_sample:
if simvol in string.punctuation:
print(simvol, end='')
continue
if i % 2 == 0:
print(simvol.upper(), end='')
else:
print(simvol.lower(), end='')
i += 1
Автор решения: beng0
→ Ссылка
Самая банальная версия
text = "*моя*строка*"
t = "l"
for i in range(len(text)):
if text[i] == "*":
print(text[i], end="")
else:
if t == "l":
print(text[i].upper(), end="")
t = "u"
else:
print(text[i].lower(), end="")
t = "l"
Используем переменную t для определения регистра предыдущей буквы (u - upper, l - lower), т.е. после каждого изменения меняем её. От изменения регистра символа * изабвляемся первым if.