>  기사  >  백엔드 개발  >  Python_python의 str.format()에 대한 자세한 설명

Python_python의 str.format()에 대한 자세한 설명

不言
不言원래의
2018-04-04 17:27:141746검색

이 글은 주로 Python 프로그래밍에서 str.format()의 기본 구문과 고급 사용법을 소개합니다. 매우 자세하고 예제도 함께 제공됩니다. str.format 소개


Python에서는 +를 사용하여 문자열을 연결할 수 있는데, 이는 간단한 경우에 잘 작동합니다. 그러나 복잡한 문자열 연결을 수행해야 할 때 여전히 +를 사용하여 완료하면 코드가 모호해질 뿐만 아니라 코드를 유지 관리하기도 어려워집니다. 이때 이 방법은 충분하지 않습니다.

예를 들어 다음과 같은 레코드를 인쇄하려고 합니다.

User:John has done Action:pay 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과 unicode는 모두 str.format()을 사용하여 문자열 형식을 지정하는 것을 지원합니다.

다음에는 str.format()의 구체적인 사용법에 대해 자세히 논의하겠습니다.

2. str.format의 기본 구문


형식 문자열은 대체할 문자열인 대체 필드를 중괄호 {}로 묶습니다. 중괄호로 묶이지 않은 문자는 결과에 그대로 표시됩니다.

2.1. 위치 인덱스 사용

다음 두 가지 작성 방법은 동일합니다.

"Hello, {} 및 {}!".format("John", "Mary")

"Hello, {0} 및 {1}!".format("John", "Mary")

중괄호 안에 대상 문자열의 인덱스를 쓰거나 생략할 수 있습니다. 생략할 경우 형식 괄호 안에 포함된 대상 문자열의 순서대로 교체가 수행됩니다.

2.2 키워드 인덱스 사용

위치를 통해 대상 문자열을 지정하는 것 외에도 키워드를 통해 지정할 수도 있습니다.

예:

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

키워드 인덱스를 사용하면 매개변수의 위치에 신경 쓸 필요가 없고 문자열의 최종 결과를 한눈에 볼 수 있다는 장점이 있습니다. 향후 코드 유지 관리 시 문자열에 대해 해당 매개변수를 하나씩 검색할 필요 없이 해당 매개변수를 빠르게 수정할 수 있습니다.

참고: 문자열 자체에 중괄호가 포함된 경우 이스케이프하려면 이를 두 번 반복해야 합니다. 예를 들어 문자열 자체에 {가 포함되어 있으면 이것이 일반 문자이고 대체 필드를 둘러싸는 데 사용되는 중괄호가 아님을 Python에 알리기 위해 간단히 {{로 다시 작성합니다.

3.str.format 고급 구문

str.format은 일상 작업에서 접하는 형식화된 출력을 완성할 만큼 매우 강력합니다. 이 방법에 능숙해지면 향후 문자열 처리를 위한 견고한 기반을 마련하고 많은 시간을 절약할 수 있습니다.

3.1 매개변수의 속성 또는 요소에 액세스

str.format을 사용하여 문자열 형식을 지정할 때 일반적으로 대상 문자열을 형식 메서드에 매개변수로 전달합니다. 실제로 형식 문자열에서 매개변수의 특정 속성이나 요소에 액세스할 수도 있습니다.

"My car is {0.color}.".format(black_car)

"첫 번째 학생은 {student[ 0]}입니다. .".format(student=stu_list)

"John은 {d[john]}세입니다.".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, 변환 세 부분으로 나눌 수 있습니다. 및 format_spec은 각각 대체 필드 이름(인덱스), 변환 플래그, 형식 설명에 해당합니다. 그 중 필드명은 필수이고, 후자 2개는 선택사항입니다. 느낌표 뒤에는 변환 플래그가 나오고 콜론 뒤에는 형식 설명이 나옵니다.

앞서 언급했듯이 필드 이름은 위치 인덱스와 키워드 인덱스가 될 수 있습니다. 필드 이름 뒤에는 속성에 액세스하려면 점을, 요소에 액세스하려면 대괄호를 사용할 수 있습니다.

여기에서는 형식 설명(format_spec)에 중점을 둡니다.

형식 설명에는 채우기, 정렬, 부호, 너비, 정밀도 및 유형의 6가지 옵션이 포함되어 있습니다. 위치 관계는 다음과 같습니다:

[[fill]align][sign][#][0][width][,][.precision][type]

fill

은 모든 문자가 될 수 있으며 기본값은 공간.


align
최소 너비가 지정된 경우에만 유효합니다.

b9ad84f66ee821931b305effef7feb07 오른쪽 정렬
= 기호와 숫자 사이에 패딩 문자를 입력하는 경우에만 유효합니다. 예: +0001234
^ 가운데 정렬
기호
숫자에만 유효

+ 모든 숫자 부호 있음
- 음수만 부호 있음(기본 옵션)
즉, 양수 앞에는 공백이 있고 음수 앞에는 기호가 옵니다.
'#'
정수에만 유효합니다.

2진수, 8진수로 자동 변환됩니다. , 16진수 값 앞에 해당 0b, 0o, 0x를 추가합니다.

','
세 숫자마다 , 구분 기호를 자동으로 추가합니다.

width
최소 너비를 정의하는 십진수입니다. 지정하지 않으면 콘텐츠의 너비에 따라 결정됩니다.

정렬을 지정하지 않은 경우 너비 앞에 0을 추가하여 자동으로 0을 채울 수 있습니다. 이는 채우기를 0으로 설정하고 =로 정렬하는 것과 같습니다.

precision
부동 소수점 숫자의 정밀도 또는 문자열의 최대 길이를 결정하는 데 사용됩니다. 정수 값에는 사용할 수 없습니다.

type
매개변수 유형을 결정합니다. 기본값은 문자열인 s입니다.

정수 출력 유형:

b: 이진 형식으로 출력
c: 정수를 해당 유니코드 문자로 변환
d: 10진수로 출력(기본 옵션)
o: 8진수로 출력
x: 16진수 소문자로 출력
메소드 출력, e를 사용하여 지수 부분을 나타냅니다. 기본 정밀도는 6
E: e와 동일하지만 대문자 E를 사용하여 지수 부분을 나타냅니다.
f: 값을 고정 소수점 형식으로 출력합니다. 기본 정밀도는 6

F입니다. f

g와 동일: 일반 형식; 주어진 정밀도 p >= 1에 대해 값의 p자리 유효 숫자를 가져와 고정 소수점 또는 과학적 표기법으로 출력합니다(기본 옵션)

G: 일반 형식; g와 동일, 값이 너무 클 경우 지수 부분을 표현하기 위해 E 사용

n: g와 동일하지만, 현재 환경의 구분 기호를 사용하여 각 3자리 숫자를 구분함
%: 백분율 표시 형식 사용; 백분율을 사용하여 값을 출력하고 f 표시를 설정합니다.

관련 권장 사항:


php 차단 함수 Intercept_str

에 대한 자세한 설명

위 내용은 Python_python의 str.format()에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.