Python 문자열 포맷 방법 소결

5815 단어 Python문자열포맷
Python 2.6+str.format 함 수 를 추가 하여 기 존의'%'연산 자 를 대체 합 니 다.그것 의 사용 은'%'보다 더욱 직관 적 이 고 유연 하 다.다음은 그것 의 사용 방법 을 상세 하 게 소개 한다.
다음은'%'를 사용 한 예 입 니 다.

""
"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 은 아래 의 표지 일 수 있 습 니 다.
  •  < 왼쪽 정렬,기본 값
  • >오른쪽 정렬
  • =여백 을 align 표지 뒤에 두 고 숫자 에 만 유효 합 니 다.무슨 뜻 이 죠?align 아래 에 서 는 숫자의 양음 번 호 를 표시 하고 숫자 에 만 유효 합 니 다.'='을 지정 하면 숫자의 양음 번 호 를 여백 앞 에 표시 합 니 다.예 를 들 어 format(-12,0=8)\#=>'-000012'는 단일 값 을 포맷 하 는 내장 함수 format 를 사용 합 니 다.0'은 fill 요소 로 여백 을 채 웁 니 다.'='바로 표식 이다.8'은 최소 너비 가 8 이기 때문에 5 개의 여백 이 있다 는 것 을 말한다.그럼 align 은 요?align 은 사실은 양음 호의 표시 방식 을 설명 하 는 것 입 니 다.여 기 는 기본 적 인'-'를 사용 한 다음 에 말씀 드 리 겠 습 니 다.
  • ^가운데 정렬
  • 2.sign 숫자 기호,숫자 에 만 유효 합 니 다.
  • +플러스 와 마이너스 표시
  • -플러스 가 표시 되 지 않 고 마이너스 가 표 시 됩 니 다.최소 폭 을 지정 하지 않 은 상태 에서 음 수 는 항상 양수 보다 하나의 기호 위 치 를 더 차지한다.기본 값
  • '(빈 칸 하나)플러스 대신 여백
  • '
    3.\#숫자 를 표시 하 는 접 두 사 는 몇 진법(0b,0o,0x)을 표시 합 니 다.
    4.0 은'0'으로 여백 을 채 웁 니 다.
    5.minimumwidth 는 최소 폭 을 지정 하여 이미 여러 번 사용 한 적 이 있 습 니 다.
    6.precision'precision'은 십 진법 숫자 로 소수점 뒤의 몇 자 리 를 나타 낸다.
    7.type 값 의 종류:
    ① 정형:
  •  b 2 진법
  • c 문자 형,숫자 를 유 니 코드 를 나타 내 는 문자 로 변환
  • d 10 진법
  • o 8 진법
  • x 16 진수,소문 자 표시
  • X 16 진수,대문자 표시
  • n 은 d 행위 와 같 고 로 컬 숫자 표시 방식
  • 을 사용 합 니 다.
  • '(빈 칸,빈 칸 없 음)d 와 같 음
  • ② 부동 소수점
  • e 과학 계수 법 에 따 르 면 소문 자 e
  • E 과학 계수 법 은 대문자 E
  • 를 나타 낸다.
  • f 는 정점 으로 표시 되 며,기본 소수점 뒤 6 자리
  • F 동 f
  • g 과학 기수법 으로 표시 할 지 자동 선택
  • G 동 g
  • n 동 g,로 컬 표시 방식 사용
  • %사용 백분율 표시
  • '(공)동 g
  • 모든 대상 은 자신의 포맷 설명 자 를 다시 쓸 수 있 습 니 다.예 를 들 어 datatime 류 를 다시 쓴 후에 이렇게 표시 할 수 있 습 니 다.
    
    "Today is: {0:%a %b %d %H:%M:%S %Y}".format(datetime.now())
    사전 전환
    ':'그 다음은 형식 설명자 이 고 그 전에 미리 전환 한 표 지 를 추가 할 수 있 습 니 다.
  • !r 호출 대상 의repr_표준 문자열 로 변환 하 는 방법
  • !s 호출 대상 의str_문자열 로 변환 하 는 방법
  • 다시 쓰기format_방법.
    우 리 는 문자열 을 포맷 할 때,먼저 모든 값 을 포맷 한 다음 문자열 에 삽입 합 니 다.포맷 값 호출 은 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 표준 라 이브 러 리 의 소스 코드 를 많이 보 는 것 이 학습 가치 가 있 습 니 다.
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기