Python

Python программирование. Помогите написать программу.

Напишите функцию convert_to_python_case(text), которая принимает в качестве аргумента строку в «верблюжьем регистре» и преобразует его в «змеиный регистр».

Следующий программный код:

print(convert_to_python_case('ThisIsCamelCased'))
print(convert_to_python_case('IsPrimeNumber'))
должен выводить:

this_is_camel_cased
is_prime_number

Или намекните на ошибку в моей написанной программе если не лень:
# объявление функции
def convert_to_python_case(text):
s = []
s.append(text)
t = []
for i in range(0, len(s) - 1):
t.append(s[i]) # добавляем каждый элемент отдельно
if s[i].isupper() and i != 0: # проверяем на наличие буквы верхнего регистра
t.append('_')
return t

# считываем данные
txt = input()

# вызываем функцию
print(convert_to_python_case(txt))

Если подаю на вход как по примеру выше, то на выходе получаю : [] ????
AN
Ahror Nadirov
25
АД
Алехандро Делавега
60 662
Лучший ответ
def convert_to_python_case(s):
~~~~t = [s[0].lower()]
~~~~for a in s[1:]:
~~~~~~~~if a.isupper(): # проверяем на наличие буквы верхнего регистра
~~~~~~~~~~~~t.append('_')
~~~~~~~~t.append(a.lower()) # добавляем каждый элемент отдельно
~~~~return ''.join(t)

PS
Для поиска ошибки в крутых IDE есть дебаггер, где можно видеть переменные в ходе выполнения программы.
По-моему в простеньких учебных примерах проще использовать print() для отладки
Например если вставить принт внутрь функции
def convert_to_python_case(text):
~~~~s = []
~~~~s.append(text)
~~~~print(s)
~~~~print(len(s) - 1)
~~~~t = []
~~~~for i in range(0, len(s) - 1):
~~~~~~~~t.append(s[i]) # добавляем каждый элемент отдельно
~~~~~~~~if s[i].isupper() and i != 0: # проверяем на наличие буквы верхнего регистра
~~~~~~~~~~~~t.append('_')
~~~~return t
То будет выдано
==================
ThisIsCamelCased
['ThisIsCamelCased']
0
[]
>>>
То есть видно, что в список s, состоит не из букв строки 'ThisIsCamelCased', а из самой строки и его длина равна единице, а не количеству букв строки.
Чтобы получить список из букв строки, надо к строке применить функцию list()
>>> list('ThisIsCamelCased')
['T', 'h', 'i', 's', 'I', 's', 'C', 'a', 'm', 'e', 'l', 'C', 'a', 's', 'e', 'd']
>>>
Ahror Nadirov я понял в чем была ошибка, спасибо
# put your python code here
def convert_to_python_case(text):
return ''.join(['_'+i.lower() if i.isupper() else i.lower() for i in text])[1:]

# считываем данные
txt = input()

# вызываем функцию
print(convert_to_python_case(txt))
# объявление функции

def convert_to_python_case(text):

for i in text:

if i.isupper():

text = text.replace(i, '_' + i.lower())


return text[1:]



# считываем данные

txt = input()


# вызываем функцию

print(convert_to_python_case(txt))