Мое домашнее задание требует от меня повторения каждой буквы в строке с четным индексом в верхнем регистре и нечетным индексом в нижнем регистре. Он должен оставить все знаки препинания или цифры без изменений, и это должно изменить регистр каждой буквы с четным индексом. Это означает, что если буква изначально заглавная, ее следует преобразовать в строчную.

Например: 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!".

1
Ryan 18 Авг 2019 в 13:29

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
0
Patrick Nilexis 18 Авг 2019 в 11:01

Вы увеличиваете индекс после каждого символа, а не каждой буквы. Это включает в себя символы, такие как знаки препинания, пробелы, цифры.

Вам нужно добавить условный оператор, прежде чем увеличивать индекс с помощью функции isalpha ():

If letter.isalpha()
  Index += 1

Кроме того, вам нужно добавить еще один условный оператор, чтобы проверить, являются ли четные буквы уже заглавными, чтобы вы поменяли их регистр.

0
Iyad K 18 Авг 2019 в 10:42