python str.format 와 탭 문자\t 중국어 정렬 에 대한 자세 한 문제

연습 하 는 파충 류 를 썼 는데...수출 할 때 불쾌 하 게 나 타 났 어 요.♂즐 거 운 문제
이렇게:
python str.format与制表符\t关于中文对齐的细节
정말 괴롭다!
#------------------------------------------
그 전에 python 의.format 포맷 출력 을 말씀 드 리 겠 습 니 다.
python str.format与制表符\t关于中文对齐的细节
python 2.6 부터 str.format 를 사용 하여 쉽게 포맷 할 수 있 습 니 다.
위 에서 보 듯 이 변수 에 대한 처 리 는 간결 하고 유연 하 며 숫자 에 대한 각종 자릿수 처리 도 잘 되 어 있다.
{:오른쪽 정렬,^가운데)을 표시 합 니 다.x 비트 보다 적 으 면 자동 으로 정렬 합 니 다(기본 값 은 빈 칸 정렬)
여기 서 주의해 야 할 것 은 x 도 변수 로 대 입 할 수 있다 는 것 이다.
python str.format与制表符\t关于中文对齐的细节
#------------------------------------------
문제 해결 에 착수 하 다.
첫 번 째 반응 은\t 탭 문 자 를 사용 합 니 다.문 제 는 문자열 의 길이 차이 가 하나의 탭 위 치 를 초과 할 때 다음 탭 으로 넘 어 갑 니 다.그림 과 같 습 니 다.
python str.format与制表符\t关于中文对齐的细节
받 아들 일 수 없습니다.str.format 을 사용 하여 name 속성의 길 이 를 25 로 보충 합 니 다.
결 과 는 이렇다.
python str.format与制表符\t关于中文对齐的细节
py 좋 지만 일부 디 테 일 은 중국 어 를 배려 하지 않 았 습 니 다.
여기 길 이 를 채 울 때 중국어 문자 도 1 바이트 로 계산 합 니 다.
그러나 우 리 는 utf-8 에서 중국어 가 3 개의 바이트 를 차지 하고 GBK 에서 2 개의 바이트 를 차지 하 며 1 바이트 로 만 계산 하면 분명히 정렬 할 수 없다 는 것 을 알 고 있다.
이 때 prettytable 패키지 출력 표 에 도움 을 청 합 니 다.그러나 출력 도 이상 적 이지 않 습 니 다.중국어 인 코딩 문 제 를 고려 하지 않 았 다 고 상상 할 수 있 습 니 다.(또는 utf-8 또는 gbk 로 인 코딩 을 설정 해 야 합 니까?)
이상 적 인 name 이 차지 하 는 길 이 를 분석 하려 면 고정된 x 바이트 여야 합 니 다.
그럼 길 이 는...
len=22-gbk 인 코딩 name 의 바이트 수+name 의 문자 수
다행히도 str.format 는 길이 대신 변 수 를 사용 하 는 것 을 지원 합 니 다.
다음 코드 를 시도 해 보십시오:

print('[{name:<{len}}x'.format(name=name+']',len=22-len(name.encode('GBK'))+len(name)))
결 과 는 이상 에 매우 가깝다.
python str.format与制表符\t关于中文对齐的细节
아니면 일부 팬 들 의 문제 로 인해 1-0.5 바이트 길이 의 편차 가 생 겼 는데 중국어 글씨체 가 등 폭 글씨체 가 아니 기 때 문 일 까요?
그러나 걱정 하지 마 세 요.여 기 는 거 친 탭 문자\t 를 사용 하여 문 제 를 해결 할 수 있 습 니 다.

print('[{name:<{len}}\tx'.format(name=name+']',len=22-len(name.encode('GBK'))+len(name)))
python str.format与制表符\t关于中文对齐的细节
큰 성 과 를 거두다.쟁쟁!
#------------------------------------------
뒷말
이번에 쓴 것 은 주로 몇 개의 주요 거래 사이트 와 steam 에서 dota 2 액세서리 가격 을 얻 는 파충류 인 데 그 중에서 발생 하 는 문제 도 매우 많다.예 를 들 어 로그 인 동태 로드 등 이다.
잘 쓰 면 아마 같이 올 라 올 거 예요.
이상 python str.format 와 탭 문자\t 의 중국어 정렬 에 관 한 세부 적 인 문 제 는 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기