2016-09-11 4 views
0

저는 섭씨를 화씨로 변환하기위한 열 스타일을 얻으려고합니다.열이 늘어서 있지 않습니다.

내 질문 : 나는 그것을 실행할 때 숫자가 멋지게 줄 지어있다. 그러나 c와 f는 왼쪽으로 정렬되고 숫자 위에 있지 않습니다. 왜 이런거야? 여기

내 코드입니다 :

def convert(celc): 
    fahr = celc * 1.8 + 32 
    return fahr 

def table(): 
    format_str = '{0:10} {1:10}' 
    c = 'c' 
    f = 'f' 
    cfhead = format_str.format(c, f) 
    print(cfhead) 
    for graden in range(-40,30,10): 
     result = format_str.format(convert(graden), graden) 
     print(result) 

table() 
항상 오른쪽으로 정렬하여 형식
+0

내가 c''때문에 생각하고'문자 f'하고 다른 사람들이 부동 소수점 및 정수와 같은 숫자이고, 당신은'결과를 할 경우 = format_str.format (str (변환 (graden)), str (graden))'작동 할 것입니다. –

+0

@KalpeshDusane : 왜 명시 적 정렬을 설정하지 않습니까? 그리고 형식 문자열에서 자리 표시 자 이름/번호 다음에'! s'를 추가하면 값은'str'으로 변환됩니다. –

+0

@ Martijn Pieters 감사합니다. 정렬 방법에 대해 알지 못했지만 문자열로 변환하려고 시도했지만 작동합니다.하지만 새로운 것을 배웠습니다. 감사합니다. –

답변

0

사용 > :

format_str = '{0:>10} {1:>10}' 

기본값은 문자열이 왼쪽 정렬 될 때까지, 숫자가 잘 될 것입니다 - 정렬. Format Specification Mini-Language documentation에서

:

'<'
강제 필드는 사용 가능한 공간 (이것은 대부분의 개체의 기본입니다) 내에서 왼쪽으로 정렬합니다.

'>'
필드가 사용 가능한 공간 내에서 오른쪽 정렬되도록합니다 (이것은 숫자의 기본값입니다). 당신이 원하는 출력을 얻을 명시 적 정렬 포맷으로

:

>>> table() 
     c   f 
    -40.0  -40 
    -22.0  -30 
     -4.0  -20 
     14.0  -10 
     32.0   0 
     50.0   10 
     68.0   20 
관련 문제