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과 C는 각각 고유 한 장점이 있으며 선택은 프로젝트 요구 사항을 기반으로해야합니다. 1) Python은 간결한 구문 및 동적 타이핑으로 인해 빠른 개발 및 데이터 처리에 적합합니다. 2) C는 정적 타이핑 및 수동 메모리 관리로 인해 고성능 및 시스템 프로그래밍에 적합합니다.

Python 또는 C를 선택하는 것은 프로젝트 요구 사항에 따라 다릅니다. 1) 빠른 개발, 데이터 처리 및 프로토 타입 설계가 필요한 경우 Python을 선택하십시오. 2) 고성능, 낮은 대기 시간 및 근접 하드웨어 제어가 필요한 경우 C를 선택하십시오.

매일 2 시간의 파이썬 학습을 투자하면 프로그래밍 기술을 효과적으로 향상시킬 수 있습니다. 1. 새로운 지식 배우기 : 문서를 읽거나 자습서를 시청하십시오. 2. 연습 : 코드를 작성하고 완전한 연습을합니다. 3. 검토 : 배운 내용을 통합하십시오. 4. 프로젝트 실무 : 실제 프로젝트에서 배운 것을 적용하십시오. 이러한 구조화 된 학습 계획은 파이썬을 체계적으로 마스터하고 경력 목표를 달성하는 데 도움이 될 수 있습니다.

2 시간 이내에 Python을 효율적으로 학습하는 방법 : 1. 기본 지식을 검토하고 Python 설치 및 기본 구문에 익숙한 지 확인하십시오. 2. 변수, 목록, 기능 등과 같은 파이썬의 핵심 개념을 이해합니다. 3. 예제를 사용하여 마스터 기본 및 고급 사용; 4. 일반적인 오류 및 디버깅 기술을 배우십시오. 5. 목록 이해력 사용 및 PEP8 스타일 안내서와 같은 성능 최적화 및 모범 사례를 적용합니다.

Python은 초보자 및 데이터 과학에 적합하며 C는 시스템 프로그래밍 및 게임 개발에 적합합니다. 1. 파이썬은 간단하고 사용하기 쉽고 데이터 과학 및 웹 개발에 적합합니다. 2.C는 게임 개발 및 시스템 프로그래밍에 적합한 고성능 및 제어를 제공합니다. 선택은 프로젝트 요구와 개인적인 이익을 기반으로해야합니다.

Python은 데이터 과학 및 빠른 개발에 더 적합한 반면 C는 고성능 및 시스템 프로그래밍에 더 적합합니다. 1. Python Syntax는 간결하고 학습하기 쉽고 데이터 처리 및 과학 컴퓨팅에 적합합니다. 2.C는 복잡한 구문을 가지고 있지만 성능이 뛰어나고 게임 개발 및 시스템 프로그래밍에 종종 사용됩니다.

파이썬을 배우기 위해 하루에 2 시간을 투자하는 것이 가능합니다. 1. 새로운 지식 배우기 : 목록 및 사전과 같은 1 시간 안에 새로운 개념을 배우십시오. 2. 연습 및 연습 : 1 시간을 사용하여 소규모 프로그램 작성과 같은 프로그래밍 연습을 수행하십시오. 합리적인 계획과 인내를 통해 짧은 시간에 Python의 핵심 개념을 마스터 할 수 있습니다.

Python은 배우고 사용하기 쉽고 C는 더 강력하지만 복잡합니다. 1. Python Syntax는 간결하며 초보자에게 적합합니다. 동적 타이핑 및 자동 메모리 관리를 사용하면 사용하기 쉽지만 런타임 오류가 발생할 수 있습니다. 2.C는 고성능 응용 프로그램에 적합한 저수준 제어 및 고급 기능을 제공하지만 학습 임계 값이 높고 수동 메모리 및 유형 안전 관리가 필요합니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

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

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.
