좌표 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 ++에는 너비와 정렬을 설정할 수 있는 조작기 등이 있습니까?
답변
최신 str.format
구문을 사용하여이 방법을 시도하십시오 .
line_new = '{:>12} {:>12} {:>12}'.format(word[0], word[1], word[2])
그리고 다음은 이전 %
구문을 사용하여 수행하는 방법입니다 (지원하지 않는 이전 버전의 Python에 유용함 str.format
).
line_new = '%12s %12s %12s' % (word[0], word[1], word[2])
답변
다음을 사용하여 달성 할 수 있습니다 rjust
.
line_new = word[0].rjust(10) + word[1].rjust(10) + word[2].rjust(10)
답변
다음과 같이 정렬 할 수 있습니다.
print('{:>8} {:>8} {:>8}'.format(*words))
여기서 >
수단 ” 오른쪽 정렬 “과 8
는 IS 폭 특정 값이.
그리고 여기에 증거가 있습니다 :
>>> 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
3 개의 요소 만있는 목록 이라고 가정 ).
답변
파이썬 3.6 이상에서 새로운 리터럴 문자열 보간을 정말 즐깁니다.
line_new = f'{word[0]:>12} {word[1]:>12} {word[2]:>12}'
참조 : PEP 498-리터럴 문자열 보간
답변
다음은 ‘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 자이며 오른쪽으로 정렬되었다는 것입니다.
답변
출력의 간단한 표 :
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- 문자열을 사용하고 후행 자릿수를 제어하여 수행하려면 다음을 수행하십시오.
print(f'A number -> {my_number:>20.5f}')