복붙노트

[PYTHON] 문자열 바꾸기가 작동하지 않는 것 같습니다.

PYTHON

문자열 바꾸기가 작동하지 않는 것 같습니다.

처음에 = 연산자를 사용하여 값을 할당하려고 시도했지만 오류가 반환되었습니다. 다음 string.replace () 사용하여 시도 :

encrypted_str.replace(encrypted_str[j], dec_str2[k], 2)

encrypted_str.replace(encrypted_str[j], unichr(ord(dec_str2[k]) - 32), 2)

그러나 그것은 원래의 가치를 되돌리고있다.

정확한 결과를 내기 위해 replace API를 올바르게 사용하는 방법에 대해 도와주세요. 또한 unichr () 대신 사용할 수있는 다른 API가 있습니다.

encrypted_str은 encrypted_str = raw_input ()에 의해 사용자로부터 취해지고 있습니다. dec_str2는 사용자가 입력하는 freq 문자열입니다. 이 문제는 변수에 거의 영향을 미치지 않습니다. 내가 replcae () API를 잘못 사용하고 있는지 알고 싶습니다. encrypted_str에 대한 출력이 변경되지 않습니다. encrypted_str [j]를 사용하면 문자열의 문자를 반환하여 replace () API의 하위 문자열을 정의 할 수 있습니다. 나는 encrypted_str.replace (encrypted_str [j], unichr (ord_ (dec_str2 [k]) - 32)를 사용했습니다. 1) max replace 1 2 대신 (하나의 교체가 필요함).

수행해야 할 실제 작업은 다음과 같이 C로됩니다. encrypted_str [j] = dec_str2 [k] -32.

내가 파이썬에 처음 왔기 때문에 나는 대체물을 찾으려고 노력하고있다.

해결법

  1. ==============================

    1.파이썬의 문자열은 변경할 수 없습니다. 즉, 주어진 문자열 객체는 생성 된 후에 값이 변경되지 않습니다. 이것이 some_str [4] = "x"와 같은 요소 할당이 예외를 발생시키는 이유입니다.

    파이썬의 문자열은 변경할 수 없습니다. 즉, 주어진 문자열 객체는 생성 된 후에 값이 변경되지 않습니다. 이것이 some_str [4] = "x"와 같은 요소 할당이 예외를 발생시키는 이유입니다.

    비슷한 이유로 str 클래스에서 제공하는 메서드 중 문자열을 변경할 수있는 메서드가 없습니다. 그래서, str.replace 메소드는 여러분이 기대하는대로 작동하지 않습니다. 문자열을 수정하지 않고 요청 된 대체 문자열을 반환합니다.

    시험:

    encrypted_str = encrypted_str.replace(encrypted_str[j], dec_str2[k], 2)
    

    그러한 대체물을 많이 만들려는 경우 문자열을 문자 목록으로 바꾸고 수정 사항을 하나씩 만든 다음 str.join을 사용하여 목록을 다시 문자열로 되돌릴 수 있습니다. 다시 끝났어.

  2. ==============================

    2.파이썬 문자열은 불변입니다. 즉, 게시물에 설명 된대로 메소드 호출로 문자열을 수정할 수 없습니다. 메서드 호출에서 반환 된 문자열을 사용하려면 할당을 사용해야합니다.

    파이썬 문자열은 불변입니다. 즉, 게시물에 설명 된대로 메소드 호출로 문자열을 수정할 수 없습니다. 메서드 호출에서 반환 된 문자열을 사용하려면 할당을 사용해야합니다.

    예 :

    encrypted_str = encrypted_str.replace(encrypted_str[j], dec_str2[k], 2)
    

    이제 encrypted_str에 새 값이 포함됩니다.

  3. from https://stackoverflow.com/questions/26943256/string-replace-doesnt-appear-to-be-working by cc-by-sa and MIT license