Мое домашнее задание требует от меня повторения каждой буквы в строке с четным индексом в верхнем регистре и нечетным индексом в нижнем регистре. Он должен оставить все знаки препинания или цифры без изменений, и это должно изменить регистр каждой буквы с четным индексом. Это означает, что если буква изначально заглавная, ее следует преобразовать в строчную.
Например: mock ("Abcd. Efgh .. Ijkl!") Вернет "abCd. EfGh .. IJkL!". Буквы четного индекса (A, C, E, g, j, l) изменили регистр, все остальные символы не изменились.
Я попытался поменять его местами и пытается разделить их и вернуться обратно к строке. Но я не мог заставить это работать.
def mock(word):
index = 0
result = ''
swap = word.swapcase()
for letter in swap:
if index % 2 == 0:
result += letter.upper()
else:
result += letter.lower()
index += 1
return result
Мы проверили ваш код с помощью a_str = "Abcd. Efgh .. Ijkl!". Мы ожидали, что макет вернет str "abCd. EfGh .. IJkL!". Однако он вернул строку "aBcD. EFgH .. IjKl!".
2 ответа
Ваш код в настоящее время делает так, чтобы буквы с нечетными индексами стали в нижнем регистре, а буквы с четными индексами - в верхнем. Если вы хотите, чтобы буквы в четных индексах изменялись только с прописных на прописные или с прописных на строчные, вам следует использовать следующий метод:
def mock(word):
index = 0
result = ''
for letter in word:
if index % 2 == 0:
if letter.isupper():
result += letter.lower()
else:
result += letter.upper()
else:
result += letter
index += 1
return result
Вы увеличиваете индекс после каждого символа, а не каждой буквы. Это включает в себя символы, такие как знаки препинания, пробелы, цифры.
Вам нужно добавить условный оператор, прежде чем увеличивать индекс с помощью функции isalpha ():
If letter.isalpha()
Index += 1
Кроме того, вам нужно добавить еще один условный оператор, чтобы проверить, являются ли четные буквы уже заглавными, чтобы вы поменяли их регистр.
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.