Python 문자열 포맷 방법 소결
다음은'%'를 사용 한 예 입 니 다.
""
"PI is %f..." % 3.14159 # => 'PI is 3.141590...'
"%d + %d = %d" % (5, 6, 5+6) # => '5 + 6 = 11'
"The usage of %(language)s" % {"language": "python"} # => 'The usage of python'
형식 이 C 언어의 printf 같 죠?'%'는 하나의 조작 부호 이기 때문에 좌우 양쪽 에 각각 하나의 매개 변 수 를 놓 을 수 있 기 때문에 오른쪽 에 있 는 여러 값 은 원 그룹 이나 사전 으로 포함 되 어야 합 니 다.원 그룹 사전 과 함께 사용 할 수 없고 유연성 이 부족 합 니 다.같은 예 를 format 방법 으로 고 쳐 씁 니 다.
"PI is {0}...".format(3.14159) # => 'PI is 3.14159...'
"{0} + {1} = {2}".format(5, 6, 5+6) # => '5 + 6 = 11'
"The usage of {language}".format(language = "Python") # => 'The usage of Python'
직관 적 이지 않 아 요?물론 C 언어 를 사용 하 는 저도 앞의 형식 표현 방식 을 좋아 합 니 다.-)포맷 문자열
"{named} consist of intermingled character {0} and {1}".format("data", "markup", \
named = "Formats trings")
format(10.0, "7.3g") # => ' 10'
"My name is {0} :-{{}}".format('Fred') # => 'My name is Fred :-{}'
첫 번 째 줄 의'\'를 주의 하 십시오.만약 한 문장 이 줄 을 바 꾸 려 면 반드시 끝 에 반사 선 전 의 를 붙 여야 합 니 다.'%'로 원본 과 사전 을 이렇게 혼용 할 수 없습니다.사실 여 기 는 파 이 썬 이라는 이름 의 매개 변수 입 니 다.배열 을 정의 할 때*args,**kwargs 문법 으로 집합 과 사전 을 펼 칠 수 있 습 니 다.이름 매개 변 수 는 뒤에 두 어야 합 니 다.
두 번 째 문 구 는 format 내 장 된 함수 가 단일 값 을 포맷 하 는 데 사용 된다 는 것 을 나타 낸다.
세 번 째 문 구 는{}의 전 의 를 표시 합 니 다.{}포맷 된 문자열 에 서 는 특수 문자 이기 때문에 직접 표시 할 수 없습니다.전의 방식 은 한 겹 더 끼 워 넣 는 것 이다.
속성 과 인덱스 사용
"My name is {0.name}".format(open('out.txt', 'w')) # => 'My name is out.txt'
'{0.name}'호출 대상 의 속성 open('out.txt','w')에 해당 합 니 다.name
"My name is {0[name]}".format(dict(name='Fred')) # => 'My name is Fred'
색인 을 사용 해도 됩 니 다.obj[key]는 obj. 에 해당 합 니 다.getitem____('key')
표준 설명자(Specifiers)
C 언어 를 쓴 프로그래머 는 printf 의 복잡 함 을 잘 알 아야 한다.format 도 많은 표준 설명 자 를 정의 하여 값 의 형식 을 설명 하고 문자열 에 삽입 합 니 다.예 를 들 면:
"My name is {0:8}".format('Fred') # => 'My name is Fred '
':'그 다음 에 설명자 입 니 다.위의 예 에서 설명 자 는'8'(minimumwidth)만 있 고 삽 입 된 값 의 폭 은 최소 8 임 을 나타 냅 니 다.'프 레 드 는 4 밖 에 없어 서 빈 칸 을 4 개 더 넣 었 다.설명자 의 자세 한 형식 은:
[[fill]align][sign][#][0][minimumwidth][.precision][type]
(C 의 printf 보다 더 간결 하지 않 아!)메모:'[]'는 이 요 소 를 선택 할 수 있 음 을 표시 합 니 다.그래서 모든 형식 설명자 가 선택 할 수 있 습 니 다!이전의 예 와 같이 이것 을 거의 사용 하지 않 았 다.사실 이것들 은 매우 유용 하 다.
우리 하나씩 보 자.
1.[fill]align 은 배열 방식 을 나타 낸다.minimumwidth 가 삽 입 된 값 보다 크게 설정 되 었 을 때 여백 이 생 겼 습 니 다.마치 이전 예 에서'My name is Fred'와 같 습 니 다.기본적으로 여백 을 오른쪽 에 두 었 습 니 다.즉,삽입 값 은 기본적으로 왼쪽 정렬 입 니 다.{0:>8}을 시도 해 보면'My name is Fred'가 되 었 습 니 다.
fill 은 여백 을 채 우 는 문 자 를 표시 합 니 다.align 이 지정 한 상태 에서 만 fill 이 유용 합 니 다!align 은 아래 의 표지 일 수 있 습 니 다.
3.\#숫자 를 표시 하 는 접 두 사 는 몇 진법(0b,0o,0x)을 표시 합 니 다.
4.0 은'0'으로 여백 을 채 웁 니 다.
5.minimumwidth 는 최소 폭 을 지정 하여 이미 여러 번 사용 한 적 이 있 습 니 다.
6.precision'precision'은 십 진법 숫자 로 소수점 뒤의 몇 자 리 를 나타 낸다.
7.type 값 의 종류:
① 정형:
"Today is: {0:%a %b %d %H:%M:%S %Y}".format(datetime.now())
사전 전환':'그 다음은 형식 설명자 이 고 그 전에 미리 전환 한 표 지 를 추가 할 수 있 습 니 다.
우 리 는 문자열 을 포맷 할 때,먼저 모든 값 을 포맷 한 다음 문자열 에 삽입 합 니 다.포맷 값 호출 은 format 내장 방법 입 니 다.format 는 이 값 을 간단하게 호출 하 는format_방법
def format(value, format_spec):
return value.__format__(format_spec)
object 클래스 에서 이 루어 졌 습 니 다format 방법 은 그 자 체 를 str()로 문자열 로 변환 한 다음 내 장 된 format 방법 으로 문자열 을 전송 하 는 것 입 니 다.사실은 문자열 로 변환 한 format 를 호출 하 는 것 입 니 다.방법
class object:
def __format__(self, format_spec):
return format(str(self), format_spec)
int/float/str 자체 실현format_방법 은 앞에서 각자 의 설명 부 를 소개 했다.종결 어
사용자 정의 Formatter 도 있 지만 평소에 사용 할 수 없습니다.다음 string 모듈 소스 코드 판독 내용 으로 남 겨 주세요.관심 있 는 친구 들 은 Python 표준 라 이브 러 리 의 소스 코드 를 많이 보 는 것 이 학습 가치 가 있 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.