2017-01-19 2 views
1

나는 솔루션을 찾을 수 없다는 매우 간단한 문제가있어서 여기에 "행운"을 빕니다.필링 트 규칙을 따르는 동안 긴 문자열의 서식을 지정하는 방법은 무엇입니까?

변수와 정적 텍스트를 모두 사용하여 만든 문자열이 있습니다. 다음과 같습니다 :

하지만 내 문제는 너무 길어서이 문자열 reprensentation에 대해 불평하고 있다는 것입니다. 그리고 여기에 문제가 있습니다. 이상하게 보이지 않고 여러 줄에 걸쳐이 문자열 표현을 어떻게 포맷하겠습니까? 그리고 여전히 pylint의 "규칙"안에 머물러 있습니다. 나는 그것을 포맷 된 경우가 pylint의 "규칙"을 따를 것을 발견

filename_gps = 'id' + str(
    trip_id) + '_gps_did' + did + '_start' + str(
       trip_start) + '_end' + str(
       trip_end) + '.json' 

:에 믿을 그러나이 같은보고를 가진 결국 한 지점에서

"추악한"보고하기 이 같은 : 많이

filename_gps = 'id' + str(
    trip_id) + '_gps_did' + did + '_start' + str(
    trip_start) + '_end' + str(
    trip_end) + '.json' 

는 "예뻐"보고 있지만, 경우에 나는 캐스트, 어떻게 이러한 문자열을 만드는 방법에 대해 갈 것 ")가 (캐릭터"를하지 않았다?

파이썬 2.x와 3.x에서 필림 사이에 차이가 있을지 모르지만, 파이썬 3.x를 사용하고 있다면.

답변

3

str() 전화를 너무 많이 사용하지 마십시오. string formatting 사용 : 부품의 많은 긴 표현이있는 경우

filename_gps = 'id{}_gps_did{}_start{}_end{}.json'.format(
    trip_id, did, trip_start, trip_end) 

, 당신은 더 이상 논리적 라인을 만들 수 있습니다 (...) 괄호를 사용하여 :

filename_gps = (
    'id' + str(trip_id) + '_gps_did' + did + '_start' + 
    str(trip_start) + '_end' + str(trip_end) + '.json') 

이 문자열을 깨는 일 것 형식 지정 작업의 템플릿으로도 사용하고 있습니다.

foo_bar = (
    'This is a very long string with some {} formatting placeholders ' 
    'that is broken across multiple logical lines. Note that there are ' 
    'no "+" operators used, because Python auto-joins consecutive string ' 
    'literals.'.format(spam)) 
+0

주셔서 감사합니다. 문자열 표현에 괄호를 사용할 수 있는지 몰랐습니다. 이미 문자열 서식 지정에 대해 알고있었습니다. 이미 코드에서 여러 번 사용하고 있습니다. 또한 문자열 형식으로 숫자를 생략 할 수 있다는 것을 알지 못했습니다. ''some_string {0} ''형식 (통과)'. 위의 공유 코드는 배운 이전의 잔재 일 뿐이며 어떤 이유로 든 if를 생각하지 않았습니다. Lol. – Zeliax

관련 문제