프로그래밍 언어/Python

파이썬에서 긴 여러 줄 문자열을 작성하는 방법

Rateye 2022. 3. 29. 13:15
728x90
반응형
질문 : 긴 여러 줄 문자열을 만드는 Pythonic 방법

매우 긴 쿼리가 있습니다. 파이썬에서 여러 줄로 나누고 싶습니다. JavaScript에서이를 수행하는 방법은 여러 문장을 사용하고 + 연산자로 결합하는 것입니다 (가장 효율적인 방법은 아닐 수도 있지만이 단계에서 성능에 대해서는 신경 쓰지 않습니다. 코드 가독성 만 있습니다. ). 예:

var long_string = 'some text not important. just garbage to' +
                  'illustrate my example';

파이썬에서 비슷한 것을 시도했지만 작동하지 않았으므로 \ 를 사용하여 긴 문자열을 분할했습니다. 그러나 이것이 유일하고 / 최고 / pythonic 한 방법인지 확실하지 않습니다. 어색해 보인다. 실제 코드 :

    query = 'SELECT action.descr as "action", '\
        'role.id as role_id,'\
        'role.descr as role'\
        'FROM '\
        'public.role_action_def,'\
        'public.role,'\
        'public.record_def, '\
        'public.action'\
        'WHERE role.id = role_action_def.role_id AND'\
        'record_def.id = role_action_def.def_id AND'\
        'action.id = role_action_def.action_id AND'\
        'role_action_def.account_id = ' + account_id + ' AND'\
        'record_def.account_id=' + account_id + ' AND'\
        'def_id=' + def_id
답변

여러 줄 문자열에 대해 이야기하고 있습니까? 쉽게 시작하고 끝낼 때 세 개의 따옴표를 사용하십시오.

s = """ this is a very
        long string if I had the
        energy to type more and more ..."""

당신은 (시작과 끝에서 물론 그 중 3) 너무 작은 따옴표를 사용하고 결과 문자열을 처리 할 수 s 다른 모든 캐릭터처럼.

참고 : 모든 문자열과 마찬가지로 시작 및 끝 따옴표 사이의 모든 항목이 문자열의 일부가되므로이 예제에는 선행 공백이 있습니다 (@ root45에서 지적한대로). 이 문자열은 또한 공백과 개행을 모두 포함합니다.

즉 :

' this is a very\n        long string if I had the\n        energy to type more and more ...'

마지막으로 다음과 같이 Python에서 긴 줄을 구성 할 수도 있습니다.

 s = ("this is a very"
      "long string too"
      "for sure ..."
     )

여분의 공백이나 줄 바꿈을 포함하지 않습니다 (이것은 공백을 건너 뛰는 결과가 어떤 결과를 가져 오는지를 보여주는 의도적 인 예입니다) :

'this is a verylong string toofor sure ...'

쉼표가 필요하지 않습니다. 결합 할 문자열을 한 쌍의 괄호로 묶고 필요한 공백과 줄 바꿈을 고려하십시오.

출처 : https://stackoverflow.com/questions/10660435/pythonic-way-to-create-a-long-multi-line-string
728x90
반응형