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))
사전 에 대응 하 는 값 이 바 뀌 지 않 았 기 때문에 원본 문자열 데 이 터 를 보존 합 니 다.효 과 는 다음 과 같 습 니 다:
模板2
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"))#     ,      
실행 후 효 과 는 다음 과 같 습 니 다.
format1
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))
주석 은 이미 매우 상세 하 니,여 기 는 군말 이 아니다.효 과 는 다음 과 같 습 니 다:
format2
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    ,              
실행 후 효 과 는 다음 과 같 습 니 다.
format3
파 이 썬 의 기본 텍스트 상수 와 문자열 템 플 릿 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 텍스트 상수 와 문자열 템 플 릿 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 을 바 랍 니 다!

좋은 웹페이지 즐겨찾기