2017-01-04 1 views
0

파이썬 문서에서, 정렬 '<'은 필드가 사용 가능한 공간 내에서 왼쪽 정렬되도록합니다."<" and ">"은 서식 지정에서 무엇을합니까?

이 코드 줄은 각 변수의 간격을 10 칸이나 10 칸으로 정렬합니까?

print("{:<10} {:<10} {:<10} £{:<10} £{:<10}".format(GTIN,product,Quantity,indprice,finprice)) 

답변

1

<10 포맷 필드의 왼쪽 부분의 값의 변환 str() 우세적어도 10 문자 넓은 각 필드를 만든다. 따라서 'foo' (3 자 길이)의 값은 10 자의 문자열을 생성하기 위해 오른쪽으로 7 개의 공백으로 끝나기 때문에 그 값이 채워지는 문자열은 {..} 필드를 대체합니다.

값이 10자를 초과하면 해당 필드는 값의 전체 텍스트로 바뀝니다. 너비는 최소 길이이며 최대 값은 아닙니다.

따라서 각 {:<10} 필드는 값의 오른쪽에 차이를 만들기 위해 공백을 사용하여 최소 10 자 이상의 문자로 대체됩니다.

데모 왼쪽 정렬 (5)의 최소 폭의 필드에 값을 충전 :

값은 최소 필드 폭으로 왼쪽 정렬되지만 foobar 길게하므로 총 출력 길이이다
>>> for value in ('f', 'foo', 'foobar'): 
...  formatted = '>{:<5}<'.format(value) 
...  print(len(value), len(formatted), formatted) 
... 
1 7 >f < 
3 7 >foo < 
6 8 >foobar< 

필드의 성장과 일치했습니다.

+0

내가 이해할 수없는 것은 8 자리 숫자 (예 : "35619833")가있는 이유입니다. 왜 숫자 앞에 2 칸이 아닌 3 칸이 생성됩니까? –

+0

@ Dolodo.RS :'{..}'필드 사이의 공백을보십시오? 그것들은 리터 랄 (literal) 공백이며'{..}'필드의 일부가 아니며 문자 그대로 출력에 포함됩니다. –

+0

@ Dolodo.RS : 그들은 내 데모의'>'및'<'문자 또는 문자열의'£'파운드 기호와 다르지 않습니다. –

관련 문제