2017-07-14 10 views
-4

単語の前半を小文字に変換し、後半を大文字に変換するプログラムを作成しました。しかし、それは明らかに私のために働いていない..それを把握することはできません。Pythonリストの大文字または小文字を取得できません

def sillycase(string1): 
    a = int(len(string1)/2) 
    b = list(string1) 
    for all_things in b[0:a]: 
     all_things.lower() 
    for all_things2 in b[a+1:]: 
     all_things2.upper() 
    string1 = "".join(b) 
    return string1 


string1 = input("Enter value:") 
print(sillycase(string1)) 
+0

文字列は*不変*です。 'str.lower()'と 'str.upper()'は古いものを置き換えるために使うことができる*新しい文字列*を返します。あなたのコードは返された文字列を無視します。 –

+0

[str.lowerのドキュメント](https://docs.python.org/3.6/library/stdtypes.html#str.lower)を読んでください:*文字列の**コピー**をすべての小文字に変換されたケース文字* –

答えて

4

lowerupper(および他str方法、Pythonの文字列は不変であるため)をインプレース
ありません。戻り値を再割り当てする必要があります。

>> string_list = ['a', 'B'] 
>> all_lower = [string.lower() for string in string_list] 
>> all_lower 
['a', 'b'] 
関連する問題