Python 기본 텍스트 상수 와 문자열 템 플 릿
프로그램 에 서 는 효율 적 인 문자열 처리 방식 이 많 습 니 다.개발 자가 이러한 효율 적 인 문자열 처 리 를 완전히 파악 할 수 있다 면 개발 자 들 도 적은 노력 으로 큰 효 과 를 거 둘 수 있 습 니 다.예 를 들 어 문자열 에 대한 처리 도 자연 언어 처리 의 기초 지식 이다.
python 3 에서 문자열 을 처리 하 는 라 이브 러 리 는:string 입 니 다.이 편 은 각종 문자열 의 효율 적 인 처리 방식 을 상세 하 게 소개 할 것 이다.
이니셜 대문자
영어 단어 로 구 성 된 문자열 에 있어 서 우 리 는 영어 의 이니셜 을 대문자 로 변경 해 야 할 때 가 많다.효율 적 인 함 수 를 알 지 못 한다 면,일반적으로 우 리 는 순환 을 통 해 빈 칸 을 판단 하고,빈 칸 뒤의 자 모 를 취하 여 ASCII 에 있 는 인 코딩 을 판단 한 후,대문자 로 이 위치의 문자열 을 교체 합 니 다.
그러나 python 3 에는 이니셜 을 대문자 로 직접 쓸 수 있 는 함수 가 있 습 니 다.이 함 수 는 capwords()입 니 다.다음은 이니셜 대문자 문자열 변경 을 위 한 작은 코드 를 사용 합 니 다.
import string
s = "When he shewed the riches of his glorious kingdom and the honour of his excellent majesty many days, even an hundred and fourscore days"
print(" ")
print(s)
result = string.capwords(s)
print(" ")
print(result)
실행 한 후에 우 리 는 전체 대문자 문자열 을 얻 을 수 있 습 니 다.3.문자열 템 플 릿
string 라 이브 러 리 에서 문자열 템 플 릿 함 수 는 string.Template()로 문자열 을 맞 출 수 있 습 니 다.예제 코드 는 다음 과 같다.
import string
values = {
"name": "liyuanjing",
"age": "13",
}
s = """My name is : $name
I am $age years old
"""
template_str = string.Template(s)
print(template_str.substitute(values))
여기 서 문자열 템 플 릿 string.Template 를 사용 한 다음 함수 substitute()를 통 해 문자열 을 교체 합 니 다.그런데 여기 서 바 꿀 때 values 사전 에 대응 하 는 key 가 없 으 면 어떻게 합 니까?string 라 이브 러 리 는 우리 에 게 함수 safe 를 제공 합 니 다.substitute()。
import string
values = {
"name": "liyuanjing",
"age": "13",
}
s = """My name is : $name
I am $age years old
$work
"""
template_str = string.Template(s)
print(template_str.safe_substitute(values))
사전 에 대응 하 는 값 이 바 뀌 지 않 았 기 때문에 원본 문자열 데 이 터 를 보존 합 니 다.효 과 는 다음 과 같 습 니 다:4.고급 템 플 릿
위의 템 플 릿 사용 방법 은 string 라 이브 러 리 에서 기본적으로 제공 하 는 규칙 시스템 입 니 다.사실,우 리 는 템 플 릿 의 사용 일치 방법 을 사용자 정의 할 수 있 습 니 다.구체 적 인 코드 는 다음 과 같 습 니 다.
import string
class MyTemplate(string.Template):
delimiter = '@'
idpattern = '[a-z]+_[0-9]+'
values = {
"name_1": "liyuanjing",
"age_1": "13",
}
s = """My name is : @name_1
I am @age_1 years old
@work_1
"""
template_str = MyTemplate(s)
print(template_str.safe_substitute(values))
여기 서 delimiter 는 일치 하 는 기호 가 필요 합 니 다.기본 기호 인'$'는 블 로 거들 이'@'으로 바 뀌 었 습 니 다.그 다음으로 idpattern 은 values 에 대응 하 는 key 이름 규칙 입 니 다.여 기 는 정규 표현 식 으로 규정 합 니 다.예 를 들 어'문자열'입 니 다.숫자실행 후 효 과 는 다음 과 같 습 니 다.형식
기본 용법
다른 언어 기반 이 있 는 것 은 format 문자열 을 다소 접 한 적 이 있어 야 합 니 다.여기 서 우 리 는 그 기본 적 인 사용 방식 을 직접 살 펴 보 자.
print("My name is {}".format("liyuanjing"))# ,
print("My {1} is {0}".format("liyuanjing","name"))# ,
print("My {name} is {tom}".format(tom="liyuanjing",name="name"))# ,
실행 후 효 과 는 다음 과 같 습 니 다.6.진급 용법
format 함 수 는 문자열 을 바 꾸 는 것 과 일치 할 뿐만 아니 라 텍스트 나 소수 몇 자리 등 을 가 져 올 수 있 습 니 다.다음은 이 용법 들 이 어떻게 실현 되 는 지 살 펴 보 자.
print('{} and {}'.format('tom', 'Jerry'))
print('{:10s}'.format('*')) #
print('{:>10s}'.format('*')) #
print('{:^10s}'.format('*')) #
print('{:<10s}'.format('*')) #
print('{} is {:.2f}'.format(3.411592653, 3.1415926))# 2
values = {
"name_1": "liyuanjing",
"age_1": "13",
}
s = """My name is : {name_1}
I am {age_1} years old
"""
print(s.format(**values))
주석 은 이미 매우 상세 하 니,여 기 는 군말 이 아니다.효 과 는 다음 과 같 습 니 다:7.고급 용법
format 는 위 와 같은 일 을 할 수 있 는 것 외 에 도 진법 과 ASCII 코드 기호 등 을 바 꿀 수 있다.다음은 우리 가 이런 고급 용법 을 실현 하 겠 습 니 다.
print('{:b}'.format(8))#:b
print('{:c}'.format(200))#:c Unicode
print('{:d}'.format(111))#:d
print('{:o}'.format(8))#:o
print('{:x}'.format(32))#:x
print('{:e}'.format(32))#:e
print('{:%}'.format(0.32))#:%
print('{:n}'.format(32000000000))#:n
print('{:g}'.format(32000000000))#:n ,
실행 후 효 과 는 다음 과 같 습 니 다.파 이 썬 의 기본 텍스트 상수 와 문자열 템 플 릿 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 텍스트 상수 와 문자열 템 플 릿 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 을 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.