_gvsss Ответов: 1

Чтобы изменить регистр символов на основе индекса


Напишите программу для получения строки S, типа преобразования (1 - преобразование в нижний регистр, 2 - преобразование в верхний регистр) T и целого числа P . Преобразуйте регистр букв в позиции, кратные P.(индексация на основе 1).

Входное Описание:
Задается строка S, тип преобразования T и целое число P

Описание Выхода:
Преобразуйте регистр букв и выведите строку

Входной Сигнал Образца :
профиль
1
2

Пример Вывода :
Профиль

Что я уже пробовал:

text=input()
list1=list(text)
k=0
for i in range(0,len(list1)):
    if(list1[i]=='p'or list1[i]=='P'):
        k=i
k=k+1

for i in range(0,len(list1)):
    if(i%k==0):
        
        if(list1[i].islower()):
            list1[i]=chr(ord(list1[i])-32)
        if(list1[i].isupper()):
            list1[i]=chr(ord(list1[i])+32)

ans="".join(list1)
print(ans)

1 Ответов

Рейтинг:
10

OriginalGriff

Я настоятельно рекомендую вам перечитывать свой домашний вопрос, уделяя пристальное внимание этому биту:

Цитата:
Напишите программу для получения строки S, типа преобразования (1 - преобразование в нижний регистр, 2 - преобразование в верхний регистр) T и целого числа P .
Это не то, что делает ваш код, не так ли?


_gvsss

спасибо, после исправления .Я не понял более поздней части
Преобразуйте регистр букв в позиции, кратные P.(индексация на основе 1)

OriginalGriff

Какую часть этого вы не понимаете?
Вы прочитали P от пользователя, да?

_gvsss

да

_gvsss

п р О Ф И Л Е
1 2 3 4 5 6 7
Р=2
кратные 2 ?

OriginalGriff

P=2 означает, что вы воздействуете на второй, четвертый, шестой, ... символы.
Примечание: вопрос конкретно требует индексации на основе 1, а массивы python основаны на нуле, поэтому вам нужно будет конвертировать ...

Подсказка: подумайте о первом значении индекса и о том, сколько вы хотите добавить каждый раз вокруг цикла ... нужно ли вообще смотреть на каждого персонажа?

_gvsss

да я только что это понял

OriginalGriff

Превосходно!
Это прекрасный баланс - пытаться дать вам достаточно, чтобы помочь вам решить это, не отдавая все это, и вы ничему не научитесь ... :смеяться:

_gvsss

Я понял
Извините если это наивное сомнение я новичок в программировании
Заранее спасибо