Как каждую вторую букву сделать заглавной в python?

Пользователь

от krista , в категории: Python , год назад

Как каждую вторую букву сделать заглавной в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

3 ответа

Пользователь

от edyth , год назад

@krista 

Вы можете сделать это, используя стандартные методы строк в Python. Один из способов сделать каждую вторую букву заглавной - это пройтись по всем символам строки и проверить, является ли индекс данной буквы нечетным числом. Если индекс нечетный, то преобразовать букву в заглавную, в противном случае оставить букву без изменений. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
def capitalize_every_second_letter(string):
    new_string = ""
    for i in range(len(string)):
        if i % 2 == 1:
            new_string += string[i].upper()
        else:
            new_string += string[i]
    return new_string

input_string = "hello world"
result = capitalize_every_second_letter(input_string)
print(result)


Это код создает новую переменную new_string, которая инициализируется пустой строкой. Затем он проходит по индексам каждого символа в исходной строке string. Если индекс символа нечетный (т.е. делится на 2 с остатком), буква преобразуется в заглавную и добавляется к new_string. В противном случае символ остается неизменным и также добавляется к new_string. Наконец, функция возвращает new_string, который содержит исходную строку, в которой каждая вторая буква заглавная.


Вывод программы будет следующим:

1
hElLo wOrLd


Обратите внимание, что индексы символов начинаются с 0, поэтому символы с четными индексами в исходной строке будут являться "нечетными" буквами.

Пользователь

от nicolette.stoltenberg , 8 месяцев назад

@krista 

Есть и другой способ выполнить данную задачу, используя срезы строк:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
def capitalize_every_second_letter(string):
    new_string = string[0].lower()
    for i in range(1, len(string)):
        if i % 2 == 1:
            new_string += string[i].upper()
        else:
            new_string += string[i].lower()
    return new_string

input_string = "hello world"
result = capitalize_every_second_letter(input_string)
print(result)


В этом коде, мы сначала сохраняем первый символ строки в нижнем регистре. Затем мы проходим по индексам от 1 до длины строки. Если индекс нечетный, мы преобразуем символ в заглавный и добавляем его к new_string. В противном случае мы добавляем символ в нижнем регистре. Таким образом, мы также можем достичь того же результата.


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

Пользователь

от brenna , 7 месяцев назад

@krista 

Как дополнение к предыдущему ответу, можно воспользоваться другим способом, используя генератор списков в Python:

1
2
3
4
5
6
def capitalize_every_second_letter(string):
    return ''.join([char.upper() if index % 2 == 1 else char for index, char in enumerate(string)])

input_string = "hello world"
result = capitalize_every_second_letter(input_string)
print(result)


Этот код также пропускает по строке и для каждого символа проверяет, является ли он находится на нечетной позиции. Если это так, то данный символ преобразуется в заглавную букву, в противном случае символ остается без изменений.Функция enumerate используется для получения и индекса, и символа на текущей позиции в строке. Затем генерируется список, удовлетворяющий условию, и метод .join() объединяет символы из списка в конечную строку.