Python2.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'
형식은 printf와 매우 유사합니다. C언어 맞죠? '%'는 연산자이므로 왼쪽과 오른쪽에 하나의 매개변수만 배치할 수 있으므로 오른쪽에 있는 여러 값을 튜플이나 딕셔너리에 포함해야 하므로 튜플과 딕셔너리는 함께 사용할 수 없으므로 유연성이 부족합니다. .
동일한 예를 형식 메서드를 사용하여 다시 작성했습니다.
"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 :-{}'
첫 번째 줄의 ''에 주의하세요. 문을 줄바꿈해야 하는 경우 끝에 백슬래시를 사용하여 이스케이프해야 합니다.
'%'를 사용하면 이와 같이 튜플과 딕셔너리를 혼합할 수 없습니다. 실제로 여기에는 Python의 기능인 명명된 매개변수가 있습니다. 배열을 정의할 때 *args, **kwargs 구문을 사용하여 컬렉션과 사전을 확장할 수 있습니다. 명명된 매개변수는 끝에 배치된다는 점에 유의해야 합니다.
두 번째 문은 형식 내장 함수가 단일 값의 형식을 지정하는 데 사용됨을 나타냅니다.
세 번째 문은 {}의 이스케이프를 나타냅니다. 왜냐하면 {}는 형식이 지정된 문자열의 특수 문자이고 직접 표시될 수 없기 때문입니다. 이스케이프 방법은 한 수준 더 중첩하는 것입니다.
속성 및 인덱스 사용
"My name is {0.name}".format(open('out.txt', 'w')) # => 'My name is out.txt'
'{0.name}'은 object 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'(최소 너비) 하나만 갖습니다. 이는 삽입된 값의 너비가 8 이상이어야 함을 의미합니다. '프레드'는 4개만 있어서 4개의 공백이 더 추가됩니다.
지정자의 자세한 형식은 다음과 같습니다:
[[fill]align][sign][#][0][minimumwidth][.precision][type]
(C의 printf보다 더 간결하지는 않습니다!)
참고: '[]' 요소가 선택사항임을 나타냅니다. 따라서 모든 형식 지정자는 선택 사항입니다! 이전 예제와 마찬가지로 이는 거의 사용되지 않습니다(단지 예제를 더 명확하게 하기 위해). 사실, 이것들은 매우 유용합니다.
하나씩 살펴보겠습니다.
1. [fill]align은 배열을 의미합니다. 최소폭을 삽입된 값보다 크게 설정하면 앞선 예시의 '내 이름은 프레드'처럼 공백이 생깁니다. 기본적으로 공백은 오른쪽에 배치됩니다. 즉, 삽입된 값은 기본적으로 왼쪽 정렬됩니다. {0:>8}을 시도하면 결과는 'My name is Fred'가 됩니다.
fill은 공백을 채우는 데 사용되는 문자를 나타냅니다. 채우기는 정렬이 지정된 경우에만 유용합니다! align은 다음 식별자일 수 있습니다:
> 오른쪽 정렬
-
= 정렬 표시 뒤에 공백을 두십시오. 이는 숫자에만 유효합니다. 그것은 무엇을 의미합니까? 아래에서 설명하겠지만 align은 숫자의 양수 및 음수 부호를 표시하며 이는 숫자에만 유효합니다. '='를 지정하면 공백 앞에 숫자의 양수 및 음수 부호가 표시됩니다. 예: format(-12, "0=8") # => '-0000012' 여기서는 단일 값의 형식을 지정하기 위한 내장 함수 형식이 사용됩니다. '0'은 공백을 채우는 데 사용되는 채우기 요소입니다. '='는 최소 너비가 8이므로 공백이 5개만 있음을 의미합니다. 정렬은 어떻습니까? Align은 실제로 더하기 및 빼기 기호의 표시 방법을 설명합니다. 여기서는 기본 '-'가 사용되며 이에 대해서는 나중에 설명합니다.
^ 가운데 정렬
2. 숫자에만 유효합니다.
+ 더하기 및 빼기 기호 표시
- 더하기 기호는 표시하지 않고 빼기 기호를 표시합니다. 최소 너비를 지정하지 않으면 음수는 항상 양수보다 기호 위치를 하나 더 많이 차지합니다. 기본값
' '(공백) 더하기 기호를 대체하려면 공백을 사용하세요.
3 # 표시되는 숫자의 접두사는 나타냅니다. 십진법(0b, 0o, 0x)
4.0 공백을 '0'으로 채웁니다.
5. 최소 너비는 최소 너비를 지정하며 여러 번 사용되었습니다.
6. 정밀도 '정밀도'는 소수점 이하 자릿수를 나타내는 숫자입니다.
7. 유형 값 유형:
① 정수 유형:
b 바이너리
c 문자 유형, 숫자를 유니코드를 나타내는 문자로 변환
d 십진수
o 8진수
x 16진수, 소문자 표시
X 16진수, 대문자 표시
n과 d 동작 동일, 지역 숫자 표현 사용
''(비어 있음, 공백 없음)은 d
②부동 소수점 수
와 같습니다.e 科学计数法表示,小写e
E 科学计数法表示,大写E
f 显示为定点数,默认小数点后六位
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标准库的源码,很有学习价值。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持PHP中文网。
更多Python实现字符串格式化的方法小结相关文章请关注PHP中文网!

이 튜토리얼은 Python을 사용하여 Zipf의 법칙의 통계 개념을 처리하는 방법을 보여주고 법을 처리 할 때 Python의 읽기 및 대형 텍스트 파일을 정렬하는 효율성을 보여줍니다. ZIPF 분포라는 용어가 무엇을 의미하는지 궁금 할 것입니다. 이 용어를 이해하려면 먼저 Zipf의 법칙을 정의해야합니다. 걱정하지 마세요. 지침을 단순화하려고 노력할 것입니다. Zipf의 법칙 Zipf의 법칙은 단순히 : 큰 자연어 코퍼스에서 가장 자주 발생하는 단어는 두 번째 빈번한 단어, 세 번째 빈번한 단어보다 세 번, 네 번째 빈번한 단어 등 4 배나 자주 발생합니다. 예를 살펴 보겠습니다. 미국 영어로 브라운 코퍼스를 보면 가장 빈번한 단어는 "TH입니다.

이 기사에서는 HTML을 구문 분석하기 위해 파이썬 라이브러리 인 아름다운 수프를 사용하는 방법을 설명합니다. 데이터 추출, 다양한 HTML 구조 및 오류 처리 및 대안 (SEL과 같은 Find (), find_all (), select () 및 get_text ()와 같은 일반적인 방법을 자세히 설명합니다.

시끄러운 이미지를 다루는 것은 특히 휴대폰 또는 저해상도 카메라 사진에서 일반적인 문제입니다. 이 튜토리얼은 OpenCV를 사용 하여이 문제를 해결하기 위해 Python의 이미지 필터링 기술을 탐구합니다. 이미지 필터링 : 강력한 도구 이미지 필터

PDF 파일은 운영 체제, 읽기 장치 및 소프트웨어 전체에서 일관된 콘텐츠 및 레이아웃과 함께 크로스 플랫폼 호환성에 인기가 있습니다. 그러나 Python Processing Plain Text 파일과 달리 PDF 파일은 더 복잡한 구조를 가진 이진 파일이며 글꼴, 색상 및 이미지와 같은 요소를 포함합니다. 다행히도 Python의 외부 모듈로 PDF 파일을 처리하는 것은 어렵지 않습니다. 이 기사는 PYPDF2 모듈을 사용하여 PDF 파일을 열고 페이지를 인쇄하고 텍스트를 추출하는 방법을 보여줍니다. PDF 파일의 생성 및 편집에 대해서는 저의 다른 튜토리얼을 참조하십시오. 준비 핵심은 외부 모듈 PYPDF2를 사용하는 데 있습니다. 먼저 PIP를 사용하여 설치하십시오. PIP는 p입니다

이 튜토리얼은 Redis 캐싱을 활용하여 특히 Django 프레임 워크 내에서 Python 응용 프로그램의 성능을 향상시키는 방법을 보여줍니다. 우리는 Redis 설치, Django 구성 및 성능 비교를 다루어 Bene을 강조합니다.

이 기사는 딥 러닝을 위해 텐서 플로와 Pytorch를 비교합니다. 데이터 준비, 모델 구축, 교육, 평가 및 배포와 관련된 단계에 대해 자세히 설명합니다. 프레임 워크, 특히 계산 포도와 관련하여 주요 차이점

데이터 과학 및 처리가 가장 좋아하는 Python은 고성능 컴퓨팅을위한 풍부한 생태계를 제공합니다. 그러나 Python의 병렬 프로그래밍은 독특한 과제를 제시합니다. 이 튜토리얼은 이러한 과제를 탐구하며 전 세계 해석에 중점을 둡니다.

이 튜토리얼은 Python 3에서 사용자 정의 파이프 라인 데이터 구조를 작성하여 클래스 및 작업자 과부하를 활용하여 향상된 기능을 보여줍니다. 파이프 라인의 유연성은 일련의 기능을 데이터 세트, GE에 적용하는 능력에 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음
