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이 말했듯이, 당신은 실제로 원래의 문자열을 변경하지 않습니다. 다른 변수를 사용하여 각각의 새 업데이트를 보관하고 그 대신 새로운 변수를 반환하는 것을 고려하십시오. –
또한 파이썬은 그 가치가 무엇인지에 대해 이미 'str.swapcase()'라는 내장 함수를 가지고 있습니다. –