Python 에서 str.format()상세 설명

5302 단어 Pythonstr.format
1.str.format 의 도입
Python 에서 우 리 는+를 사용 하여 문자열 을 연결 할 수 있 습 니 다.간단 한 상황 에서 이런 방식 은 잘 작 동 할 수 있 습 니 다.그러나 복잡 한 문자열 연결 이 필요 할 때+를 사용 하여 완성 하면 코드 를 어렵 게 만 들 뿐만 아니 라 코드 를 유지 하기 어렵 게 만 들 수 있 습 니 다.이때 이런 방식 은 힘 에 부친 다.
예 를 들 어,우 리 는 이러한 기록 을 인쇄 하고 싶다.
User:John has completed Action:payment at Time:13:30:00 
만약 에 플러스 번 호 를 사용 하여 실현 한다 면 다음 과 같은 형식 일 것 이다.

print "User:" + user_name + " has completed Action:" + \ 
      action_name + " at Time:" + current_time
나중에 고 개 를 돌려 이 코드 를 읽 으 면 우 리 는 출력 형식 을 직관 적 으로 보기 어렵 고 수정 하기 도 상대 적 으로 번거롭다.
우 리 는%로 바 꿔 서 실현 할 수 있다.

print "User:%s has completed Action:%s at Time:%s" % \ 
    (user_name, action_name, current_time)
이번 에는 코드 가 훨씬 뚜렷 하고 간결 해 졌 다.
그러나 Python 은 우리 에 게 또 다른 간결 하고 우아 한 실현 방식 을 제공 하 였 으 며,또한 공식 적 으로 더욱 추천 하 는 방식 이기 도 합 니 다.str.format()을 사용 하여 문자열 의 포맷 을 실현 합 니 다.

print "User:{} has completed Action:{} at Time:{}".format( 
    user_name, action_name, current_time)
str.format 는 간단 한 장면 에 도 사용 할 수 있 고 복잡 한 문자열 의 교 체 를 감당 할 수 있 으 며 번 거 로 운 문자열 연결 작업 이 필요 하지 않 습 니 다.Python 의 내 장 된 형식 str 와 유 니 코드 는 str.format()를 사용 하여 문자열 을 포맷 하 는 것 을 지원 합 니 다.
우 리 는 이어서 str.format()의 구체 적 인 용법 에 대해 상세 하 게 토론 할 것 이다.
2.str.format 기본 문법
포맷 문자열 은 대체 필드,즉 교체 할 문자열 을 괄호{}로 포위 합 니 다.괄호 로 둘러싸 이지 않 은 문 자 는 결과 에 그대로 나타난다.
2.1.위치 인덱스 사용
다음 두 가지 표기 법 은 등가 이다.
"Hello, {} and {}!".format("John", "Mary")
"Hello, {0} and {1}!".format("John", "Mary")
괄호 안에 대상 문자열 의 색인 을 쓸 수도 있 고 생략 할 수도 있 습 니 다.생략 하면 format 괄호 안의 대상 문자열 순서대로 바 꿉 니 다.
2.2 키워드 인덱스 사용
위치 로 대상 문자열 을 지정 하 는 것 외 에 키 워드 를 통 해 지정 할 수 있 습 니 다.
예 를 들 면:

"Hello, {boy} and {girl}!".format(boy="John", girl="Mary")


키워드 색인 을 사용 하 는 장점 은 매개 변수의 위치 에 관심 을 가 질 필요 가 없고 문자열 의 최종 결 과 를 한눈 에 알 수 있다 는 것 이다.이후 코드 유지 보수 에서 우 리 는 문자열 을 대조 하지 않 고 해당 하 는 파 라 메 터 를 신속하게 수정 할 수 있 습 니 다.
메모:문자열 자체 에 괄호 가 있 으 면 두 번 반복 해서 의 미 를 바 꿔 야 합 니 다.예 를 들 어 문자열 자체 에{가 포함 되 어 있 습 니 다.파 이 썬 이 필드 를 바 꾸 는 괄호 가 아 닌 일반 문자 라 는 것 을 알 게 하기 위해 서 는{{로 바 꾸 면 됩 니 다.
3.str.format 고급 문법
str.format 는 매우 강력 하여 일상 업무 에서 만 나 는 포맷 출력 을 완성 할 수 있 습 니 다.이 방법 을 익히 면 앞으로 의 문자열 처 리 를 위해 기 초 를 다 질 수 있 고 많은 시간 을 절약 할 수 있다.
3.1.매개 변수의 속성 이나 요소 에 접근
str.format 을 사용 하여 문자열 을 포맷 할 때,우 리 는 보통 목표 문자열 을 파라미터 로 format 방법 에 전달한다.실제로 우 리 는 포맷 문자열 에서 매개 변수의 속성 이나 요 소 를 방문 할 수 있 습 니 다.
"My car is {0.color}.".format(black_car)
"The first student is {student[0]}.".format(student=stu_list)
"John is {d[john]} years old.".format(d=age_dict)
3.2.매개 변수 출력 변환
매개 변수의 문자열 출력,기본 값 은 자신의format__ 방법 으로 이 루어 졌 다.즉,Python 은 매개 변 수 를 사용 하 는format__ 필드 대신 출력 을 가 져 옵 니 다.str()또는 repr()를 호출 하여 파 라 메 터 를 바 꾸 려 면 변환 표 지 를 추가 하여 실현 할 수 있 습 니 다.

# call str() on argument
"It's a {0!s}."

#call repr() on argument
"We can get info from {name!r}."

4.str.format 일반 형식
포맷 문자열 의 일반적인 형식 은 다음 과 같 습 니 다.
"... {field_name!conversion:format_spec} ..."
위의 코드 에서 볼 수 있 듯 이 포맷 문자열 은 field 로 나 눌 수 있 습 니 다.name、conversion、format_spec 세 부분 은 각각 필드 이름(색인),변환 표지,형식 설명 에 대응 합 니 다.그 중에서 필드 이름 은 필수 이 고 그 다음 두 가 지 는 선택 할 수 있 습 니 다.전환 표 지 는 영어 느낌표 뒤에 바짝 붙 어 있 고,형식 설명 은 영어 사칭 뒤에 바짝 붙 어 있다.
앞에서 언급 했 듯 이 필드 이름 은 위치 색인 일 뿐만 아니 라 키워드 색인 이기 도 합 니 다.필드 이름 뒤에 점 을 통 해 속성 에 접근 하거나 괄호 를 통 해 요소 에 접근 할 수 있 습 니 다.
여기 서 격식 설명(formatspec)이 항목.
형식 설명 에는 fill,align,sign,width,precision,type 등 6 가지 옵션 이 포함 되 어 있 습 니 다.그들의 위치 관 계 는 다음 과 같다.
[[fill]align][sign][#][0][width][,][.precision][type]
fill
임의의 문자 일 수 있 습 니 다.기본 값 은 빈 칸 입 니 다.
align
최소 폭 을 지정 할 때 만 유효 합 니 다.
<왼쪽 정렬(기본 설정)
>오른쪽 정렬
=숫자 에 만 유효 합 니 다.기호 와 숫자 사이 에 채 워 진 문 자 를 넣 습 니 다.예 를 들 어+0001234
↑가운데 정렬
sign
숫자 에 만 유효 합 니 다.
+모든 숫자 에 기호 가 있 음
-음수 만 기호(기본 설정)
 즉 빈 칸;양수 앞 에는 빈 칸 이 있 고,음수 앞 에는 기호 가 있다.
'#'
정수 에 만 유효 하 다
2 진법,8 진법,16 진법 수치 전에 대응 하 는 0b,0o,0x 를 자동 으로 추가 합 니 다.
','
세 개의 숫자 사이 에 구분자 가 자동 으로 추 가 됩 니 다.
width
10 진 숫자 로 최소 폭 을 정의 합 니 다.지정 되 지 않 으 면 내용 의 너비 에 따라 결 정 됩 니 다.
정렬 방식(align)이 지정 되 지 않 았 다 면 width 앞 에 0 을 추가 하여 자동 으로 0 을 채 울 수 있 습 니 다.fill 을 0 으로 설정 하고 align 을=으로 설정 할 수 있 습 니 다.
precision
부동 소수점 의 정밀도 나 문자열 의 최대 길 이 를 확인 하 는 데 사용 합 니 다.정형 수치 에 사용 할 수 없습니다.
type
매개 변수 형식 을 확인 합 니 다.기본 값 은 s,즉 문자열 입 니 다.
정수 출력 형식:
b:바 이 너 리 형식 으로 출력
c:정 수 를 대응 하 는 유 니 코드 문자 로 변환 합 니 다.
d:10 진 으로 출력(기본 옵션)
o:8 진 으로 출력
x:16 진수 소문 자로 출력
X:16 진수 대문자 로 출력
n:d 와 같 지만 현재 환경의 구분자 로 3 자리 숫자 를 구분 합 니 다.
10 진 부동 소수점 출력 형식:
e:지수 표시;과학 계수 법 으로 출력 하고 e 로 지수 부분 을 표시 하 며 기본 precision 은 6 입 니 다.
E:e 와 같 지만 대문자 E 로 지수 부분 을 표시 합 니 다.
f:고정 형식 으로 수 치 를 출력 하고 기본 precision 은 6 입 니 다.
F:f 와 같 음
g:일반적인 형식;주어진 precision p>=1 에 대해 서 는 수치의 p 비트 유효 숫자 를 추출 하고 정점 또는 과학 계수 법 으로 출력 합 니 다(기본 옵션)
G:일반적인 형식;g 와 마찬가지 로 수치 가 너무 클 때 E 를 사용 하여 지수 부분 을 표시 합 니 다.
n:g 와 같 지만 현재 환경의 구분자 로 3 자리 숫자 를 구분 합 니 다.
%:백분율 표시;백분율 형식 출력 수 치 를 사용 하고 f 표 시 를 설정 합 니 다.

좋은 웹페이지 즐겨찾기