練習3:関数を1つ書き、アルパカ命名法文字列を下線命名文字列に変換する

863 ワード

#              
#            ,      ,       。
def change_name(listx):
    listy = listx[0].lower()
    for i in range(1, len(listx)):
        if listx[i].isupper():  #          
            if i+1 >= len(listx):
                listy += listx[i]
            else:
                if not listx[i + 1].isupper():  #            ,      _,     
                    listy += '_'
                    listy += listx[i].lower()
                elif not listx[i - 1].isupper():  #            ,    
                    listy += '_'
                    listy += listx[i]
                else:  #                  ,   
                    listy += listx[i]
        else:  #         ,     
            listy += listx[i]
    return listy


#         
list = input("           :")
print("          :",change_name(list))