출력 문자열 형식 지정, 오른쪽 정렬
좌표 x, y, z가 포함된 텍스트 파일을 처리하는 중입니다.
1 128 1298039
123388 0 2
....
모든 라인은 다음을 사용하여 3개의 항목으로 구분됩니다.
words = line.split()
데이터를 처리한 후에는 입력 파일뿐만 아니라 각 열의 항목이 올바르게 정렬되도록 다른 txt 파일에 좌표를 다시 기록해야 합니다.모든 라인은 좌표로 구성됩니다.
line_new = words[0] + ' ' + words[1] + ' ' words[2].
이런 조작자가 있습니까?std::setw()
C++에서 폭과 정렬을 설정할 수 있는 등?
최신 구문을 사용하여 이 방법을 사용해 보십시오.
line_new = '{:>12} {:>12} {:>12}'.format(word[0], word[1], word[2])
그리고 여기 오래된 것을 사용하는 방법이 있습니다.%
구문(지원하지 않는 이전 버전의 파이썬에 유용함)str.format
):
line_new = '%12s %12s %12s' % (word[0], word[1], word[2])
다음과 같이 정렬할 수 있습니다.
print('{:>8} {:>8} {:>8}'.format(*words))
어디에>
"오른쪽으로 정렬"을 의미합니다.8
특정 값의 너비입니다.
그리고 여기 그 증거가 있습니다.
>>> for line in [[1, 128, 1298039], [123388, 0, 2]]:
print('{:>8} {:>8} {:>8}'.format(*line))
1 128 1298039
123388 0 2
추신.*line
을 의미합니다.line
목록이 압축 해제될 것입니다..format(*line)
와 유사하게 작동합니다..format(line[0], line[1], line[2])
(계속)line
는 세 개의 요소만 포함된 목록입니다.
다음은 'f-string' 형식을 사용하여 형식을 지정하는 다른 방법입니다.
print(
f"{'Trades:':<15}{cnt:>10}",
f"\n{'Wins:':<15}{wins:>10}",
f"\n{'Losses:':<15}{losses:>10}",
f"\n{'Breakeven:':<15}{evens:>10}",
f"\n{'Win/Loss Ratio:':<15}{win_r:>10}",
f"\n{'Mean Win:':<15}{mean_w:>10}",
f"\n{'Mean Loss:':<15}{mean_l:>10}",
f"\n{'Mean:':<15}{mean_trd:>10}",
f"\n{'Std Dev:':<15}{sd:>10}",
f"\n{'Max Loss:':<15}{max_l:>10}",
f"\n{'Max Win:':<15}{max_w:>10}",
f"\n{'Sharpe Ratio:':<15}{sharpe_r:>10}",
)
그러면 다음과 같은 출력이 제공됩니다.
Trades: 2304
Wins: 1232
Losses: 1035
Breakeven: 37
Win/Loss Ratio: 1.19
Mean Win: 0.381
Mean Loss: -0.395
Mean: 0.026
Std Dev: 0.56
Max Loss: -3.406
Max Win: 4.09
Sharpe Ratio: 0.7395
여기서 말하는 것은 첫 번째 열은 15자이고 왼쪽 맞춤이고 두 번째 열(값)은 10자이고 오른쪽 맞춤입니다.
목록에서 항목을 결합하고 항목 사이의 공백을 포맷하려면 '' 및 일반 포맷 기술을 사용할 수 있습니다.
이 예제에서는 각 숫자를 3개의 공백으로 구분합니다.여기서 키는 f"{'':>3}"입니다.
print(f"{'':>3}".join(str(i) for i in range(1, 11)))
출력:
1 2 3 4 5 6 7 8 9 10
다음을 사용하여 달성할 수 있습니다.rjust
:
line_new = word[0].rjust(10) + word[1].rjust(10) + word[2].rjust(10)
저는 Python 3.6+에서 새로운 리터럴 문자열 보간을 정말 즐깁니다.
line_new = f'{word[0]:>12} {word[1]:>12} {word[2]:>12}'
참조: PEP 498 -- 리터럴 문자열 보간
출력에 대한 간단한 표:
a = 0.3333333
b = 200/3
print("variable a variable b")
print("%10.2f %10.2f" % (a, b))
출력:
variable a variable b
0.33 66.67
%10.2f: 10은 최소 길이이고 2는 소수 자릿수입니다.
f-string을 사용하고 후행 자릿수를 제어하여 이 작업을 수행하려면:
print(f'A number -> {my_number:>20.5f}')
블라드의 훌륭한 콘텐츠를 다른 사람들과 혼합하여 코드를 쉽고 사용하기 쉽게 작성할 수도 있습니다.
>>> cnt = wins = losses = str( 2)
>>> evens = win_r = mean_w = str( 14)
>>> mean_l = mean_trd = sd = str( 336)
>>> max_l = max_w = sharpe_r = str(4278)
>>>
>>> rpad = 10
>>>
>>> print(
... '\n Trades ' + cnt.rjust(rpad),
... '\n Wins ' + wins.rjust(rpad),
... '\n Losses ' + losses.rjust(rpad),
... '\n Breakeven ' + evens.rjust(rpad),
... '\n Win/Loss Ratio ' + win_r.rjust(rpad),
... '\n Mean Win ' + mean_w.rjust(rpad),
... '\n Mean Loss ' + mean_l.rjust(rpad),
... '\n Mean ' + mean_trd.rjust(rpad),
... '\n Std Dev ' + sd.rjust(rpad),
... '\n Max Loss ' + max_l.rjust(rpad),
... '\n Max Win ' + max_w.rjust(rpad),
... '\n Sharpe Ratio ' + sharpe_r.rjust(rpad),
... )
Trades 2
Wins 2
Losses 2
Breakeven 14
Win/Loss Ratio 14
Mean Win 14
Mean Loss 336
Mean 336
Std Dev 336
Max Loss 4278
Max Win 4278
Sharpe Ratio 4278
언급URL : https://stackoverflow.com/questions/8234445/format-output-string-right-alignment
'programing' 카테고리의 다른 글
홈브루가 있는 최신 MongoDB로 업데이트할 수 없는 이유는 무엇입니까? (0) | 2023.07.04 |
---|---|
기본, 고유 및 외부 키 제약 조건과 인덱스의 차이점은 무엇입니까? (0) | 2023.07.04 |
상태 변경 시 믹스인을 사용하여 차트를 업데이트하는 방법은 무엇입니까? (0) | 2023.07.04 |
메시지가 수신되었을 때 Android의 Firebase Messaging이 갑자기 중단되기 시작했습니다. (0) | 2023.07.04 |
URL 쿼리에 대한 이름 값 모음? (0) | 2023.07.04 |