私はthis challenge in hackerrankを解決しようとしています。これはすべての小文字を大文字に変換するか、逆も同様です。文字列内のスワップケース
私は、次のコードでそれをしよう:それは関数に渡されると返される文字列が同じであるしかし
def swap_case(s):
length = len(s)
i=0
while length:
if s1[i].isupper():
s[i].lower()
elif s[i].islower():
s[i].upper()
length-=1
i+=1
return s
if __name__ == '__main__':
s = input()
result = swap_case(s)
print(result)
。間違いはどこですか?
文字列は変更できません。 's [i] .upper()'は 's [i]'の大文字の "コピー"を返しますが、 's [i]'自体は変更しません。あなたは完全に新しい文字列オブジェクトを作成する必要があります... – Julien
@Julienが言及したように、あなたは実際に元の文字列を変更していません。別の変数を使ってそれぞれの新しい更新を保持し、代わりにその新しい変数を返すことを考えてください。 –
また、Pythonにはこれまでどおり、 'str.swapcase()'という組み込み関数があります。 –