Python의 내장 문자열 분석법
이 글에서는 개요, 문자열 대소문자 변환, 문자열 형식 출력, 문자열 검색, 위치 지정 및 대체, 문자열 결합 및 분할, 문자열 판단, 문자열 인코딩 등 Python에 내장된 문자열 메서드 중 일부를 주로 소개합니다.
문자열 처리는 매우 일반적인 기술이지만 Python에는 내장된 문자열 메서드가 너무 많아 종종 잊어버리곤 합니다. 빠른 참고를 위해 각 내장 메서드는 Python 3.5.1을 기반으로 특별히 작성되었습니다. 예제는 쉽게 분류됩니다. 인덱싱.
PS: 개요에서 녹색 제목을 클릭하여 해당 카테고리를 입력하거나 오른쪽 사이드바에 있는 기사 디렉토리를 통해 해당 방법을 빠르게 색인화할 수 있습니다.
대소문자 변환
str.capitalize()
첫 글자를 대문자로 변환 , 첫 번째 단어가 대문자 형식이 아닌 경우 원래 문자열이 반환된다는 점에 유의하세요.
'adi dog'.capitalize()
# 'Adi dog'
'abcd Xu'.capitalize()
# 'Abcd Xu'
'Xu abcd'.capitalize()
# 'Xu abcd'
'ß'.capitalize()
# 'SS'
str. lower()
문자열을 소문자로 변환합니다. 이는 ASCII로 인코딩된 문자에만 유효합니다.
'DOBI'.lower()
# 'dobi'
'ß'.lower() # 'ß'는 독일어 소문자로, 여기에 또 다른 소문자 'ss'가 있습니다. , lower 메소드는 변환할 수 없습니다
# 'ß'
'Xu ABCD'.lower()
# 'Xu abcd'
str.casefold ( )
문자열을 소문자로 변환합니다. 유니코드 인코딩의 해당 소문자 형식이 변환됩니다.
'DOBI'.casefold()
# 'dobi'
'ß'.casefold() #독일어의 소문자 ß는 소문자 ss와 동일하며, 대문자는 SS
# 'ss'
str.swapcase()
문자열의 대소문자를 반대로 바꿉니다.
'Xu Dobi a123 ß'.swapcase()
#: 'Xu dOBI A123 SS' 여기서 ß는 대문자인 SS로 변환됩니다
단, s라는 점에 유의해야 합니다. swapcase( ).swapcase() == s가 반드시 참은 아닙니다:
u'xb5'
# 'μ'
u'xb5'.swapcase()
# 'Μ'
u'xb5'.swapcase().swapcase()
# 'μ'
hex(ord(u'xb5'.swapcase().swapcase() ))
Out[154]: '0x3bc'
'Μ'(M이 아닌 mu)의 소문자는 'μ'를 쓰는 것과 정확히 같습니다.
str.title()
문자열에 있는 각 "단어"의 첫 글자를 대문자로 표시합니다. "단어"를 판단하는 기준은 띄어쓰기와 구두점을 기준으로 하기 때문에 영어 소유격이나 일부 영어 약어를 대문자로 표기하는 경우 오류가 발생합니다.
'Hello world'.title()
# 'Hello World'
'중국어 abc def 12gh'.title()
# '중국어 Abc Def 12Gh'
# 하지만 이 방법은 완벽하지 않습니다.
"they're Bill's friends from the UK".title()
# "They'Re Bill'S Friends From The UK"
str.upper()
문자열의 모든 문자를 대문자로 변환하고, 대문자로 변환할 수 없는 문자는 자동으로 무시합니다.
'중국어 abc def 12gh'.upper()
# '중국어 ABC DEF 12GH'
s.upper().isupper()가 반드시 True일 필요는 없다는 점에 유의해야 합니다.
문자열 형식 출력
str.center(width[, fillchar])
주어진 너비에 따라 문자열을 가운데에 배치합니다. 지정된 문자 수에 따라 길이를 초과하거나, 지정된 길이가 문자열 길이보다 작은 경우 원래 문자열을 반환합니다.
'12345'.center(10, '*')
# '**12345***'
'12345'.center(10)
# ' 12345 '
str.ljust(width[, fillchar]); str.rjust(width[, fillchar])
왼쪽에 문자열 내용을 포함하여 지정된 길이의 문자열을 반환합니다. (오른쪽) 길이가 문자열 길이보다 작으면 원래 문자열을 반환합니다. 기본 패딩은 ASCII 공백이며, 패딩된 문자열을 지정할 수 있습니다.
'dobi'.ljust(10)
# 'dobi'
'dobi'.ljust(10, '~')
# 'dobi~~~~~ ~'
'dobi'.ljust(3, '~')
# 'dobi'
'dobi'.ljust(3)
# 'dobi'
str.zfill(width)
문자열을 '0'으로 채우고 지정된 너비의 문자열을 반환합니다.
"42".zfill(5)
# '00042'
"-42".zfill(5)
# '-0042'
'dd' .zfill(5)
# '000dd'
'--'.zfill(5)
# '-000-'
' '.zfill(5)
# '0000'
''.zfill(5)
# '00000'
'dddddddd'.zfill(5)
# 'dddddddd'
str.expandtabs(tabsize=8)
인접 문자열 사이의 간격이 지정된 공백 수 내에 유지되도록 가로 탭 문자를 지정된 공백으로 바꿉니다.
탭 = '1t23t456t7890t1112131415t161718192021'
tab.expandtabs()
# '1 23 456 7890 1112131415 161718192021'
# '123456781234567812345678123456 781234567812345678'
탭 위의 공백 개수와 출력 위치 간의 관계 .expandtabs(4)
# '1 23 456 7890 1112131415 161718192021'
# '12341234123412341234123412341234'
str.format(^args,^^kwargs)
🎜>
# '내 이름은 John입니다. 저는 56세입니다.'
text = '외부 보호 덮개'
# 4
# 1
# 0
str.find(sub[, start[, end]]); str.rfind(sub [, start[, end]])
text = '외부 보호 덮개'
# 3
# -1
Out[121]: 3
아웃[122]: 20
아웃[123]: -1
아웃[124]: 20
아웃[125]: 20
아웃[126]: 20
아웃[129]: -1
str.index(sub[, start [, end]]); str.rindex(sub[, start[, end]])
find() rfind()와 유사하지만, 발견되지 않으면 ValueError가 발생한다는 차이점이 있습니다.
'dog wow wow jiao'.replace('wow', 'wang')
# 'dog wang wang jiao'
# 'dog wow wow jiao'
# 'dog wow wow jiao'
# 'dog wang wang jiao'
# 'dog wang wang jiao'
str.lstrip([chars]); str.rstrip([문자]); str.strip([문자])
' dobi'.lstrip()
# 'dobi'
'db.kun.ac.cn'.lstrip(' dbk')
# '.kun.ac.cn'
# ' 도비'
'db.kun.ac.cn'.rstrip( 'acn')
# 'db.kun.ac.'
# 'dobi'
'db.kun.ac.cn'.strip ('db.c')
# 'kun.ac.cn'
'db.kun.ac.cn'.strip('cbd.un')
# 'kun.a'
static str.maketrans(x[, y[, z]]); str.translate(table)
maktrans는 번역에 사용할 비교 테이블을 생성하는 데 사용되는 정적 메서드입니다.
maktrans에 매개변수가 하나만 있는 경우 매개변수는 사전이어야 합니다. 사전의 키는 유니코드 인코딩(정수)이거나 길이가 1인 문자열입니다. 사전의 값은 None 또는 임의의 문자열일 수 있습니다. 유니코드 인코딩.
ord('o')
# 111
# 97
# '0x72d7'
table = str.maketrans(b)
# 'dobi is a dog'
# 'alph hs a alg'
# 'aph hs a ag'
문자열의 결합 및 분할
str.join(iterable)
# '2012-3-12'
# TypeError: 시퀀스 항목 0: 예상되는 str 인스턴스, int 발견
# TypeError: 시퀀스 항목 2: 예상되는 문자열 인스턴스, 바이트가 발견되었습니다
'-'.join(['2012'])
# '2012'
'-'.join([])
# ''
' -'.join([None])
# TypeError: 시퀀스 항목 0: 예상되는 str 인스턴스, NoneType 발견
'-'.join([''])
# ''
','.join({'dobi':'dog', 'polly':'bird'})
# 'dobi,polly'
','.join({ 'dobi':'dog', 'polly':'bird'}.values())
# 'dog,bird'
str.partition(sep); str.rpartition(sep)
'dog wow wow jiao'.partition('wow')
# ('dog', 'wow', 'wow jiao')
'dog wow wow jiao'.partition('dog')
# ('', 'dog', 'wow wow jiao')
'dog wow wow jiao'.partition('jiao')
# ('dog wow wow', 'jiao', '')
'dog wow wow jiao'.partition('ww')
# ('dog wow wow jiao', '', '' )
'dog wow wow jiao'.rpartition('wow')
Out[131]: ('dog wow', 'wow', 'jiao' )
'dog wow wow jiao'.rpartition('dog')
Out[132]: ('', 'dog', 'wow wow jiao')
'dog 와우 와우 jiao'.rpartition('jiao')
Out[133]: ('dog wow wow ', 'jiao', '')
'dog wow wow jiao'.rpartition('ww ')
아웃[135]: ('', '', 'dog wow wow jiao')
str.split(sep=None, maxsplit=-1); str.rsplit(sep=None, maxsplit=-1)
'1,2,3'.split(','), '1, 2, 3'.rsplit()
# (['1 ', '2', '3'], ['1,', '2,', '3'])
'1,2,3'.split(',', maxsplit=1 ), '1,2,3'.rsplit(',', maxsplit=1)
# (['1', '2,3'], ['1,2', '3'])
'1 2 3'.split(), '1 2 3'.rsplit()
# (['1', '2', '3'], ['1', '2 ', '3'])
'1 2 3'.split(maxsplit=1), '1 2 3'.rsplit(maxsplit=1)
# (['1', '2 3'], ['1 2', '3'])
' 1 2 3 '.split()
# ['1', '2', '3']
'1,2,,3,'.split(','), '1,2,,3,'.rsplit(',')
# (['1', '2', '', '3', ''], ['1', '2', '', '3', ''])
''.split()
# []
''.split('a')
# ['']
'bcd'.split('a')
# ['bcd']
'bcd'.split( 없음)
# ['bcd']
str.splitlines([keepends])
字符串以行界符为分隔符拆分为列表;当 keepends 为True,拆分后保留行界符,能被识别的行界符见官方文档。
'ab cnnde fgrklrn'.splitlines()
# ['ab c', '', 'de fg ', 'kl']
'ab cnnde fgrklrn'.splitlines(keepends=True)
# ['ab cn', 'n', 'de fgr', 'klrn']
"".splitlines(), ''.split('n') #注意两者的区别
# ([], [''])
"One Linen".splitlines()
# (['한 줄'], ['두 줄', ''])
字符串条件判断
str.endswith( 접미사[, 시작[, 끝]]); str.startswith(prefix[, start[, end]])
text = '외부 보호 덮개'
text.endswith('ing')
# True
text .endswith(('gin', 'ing'))
# True
text.endswith('ter', 2, 5)
# True
text.endswith('ter ', 2, 4)
# False
str.isalnum()
字符串和数字任意组合,即为真,简而言之:
只要 c.isalpha(), c.isdecimal(), c.isdigit(), c.isnumeric() 中任意一个为真,则 c.isalnum() 为真。
'dobi'.isalnum()
# True
'dobi123'.isalnum()
# True
'123'.isalnum( )
# 참
'徐'.isalnum()
# 참
'dobi_123'.isalnum()
# 거짓
'dobi 123'.isalnum()
# False
'%'.isalnum()
# False
str.isalpha()
Unicode 字符数据库中작为 “Letter”(这些字符一般具에는 "Lm", "Lt", "Lu", "Ll" 또는 "Lo"가 있습니다. 🎜># 참
'do bi'.isalpha()
# 거짓
'dobi123'.isalpha()
# 거짓
'徐' .isalpha()
# 참
三个方法적 区别에서 于对 유니코드 일반적으로 사용되는 标识적 真值判断范围불동:
isdecimal: Nd,
isdigit: No, Nd,
숫자와 소수의 차이점은 일부 숫자 문자열이 숫자이지만 소수가 아니라는 점입니다. 자세한 내용은 여기를 클릭하세요
num = 'u2155'
print(num)
# ⅕
num .isdecimal(), num.isdigit(), num.isnumeric()
#(False, False, True)
num = 'u00B2'
print(num)
# ²
num.isdecimal(), num.isdigit(), num.isnumeric()
# (False, True, True)
num = "1" #unicode
num .isdecimal (), num.isdigit(), num.isnumeric()
# (참, 참, 참)
num = "'Ⅶ'"
num.isdecimal(), num .isdigit (), num.isnumeric()
# (False, False, True)
num = "十"
num.isdecimal(), num.isdigit(), num.isnumeric ()
# (거짓, 거짓, 참)
num = b"1" # byte
num.isdigit() # True
num.isdecimal() # AttributeError 'bytes' 객체에 'isdecimal' 속성이 없습니다
num.isnumeric() # AttributeError 'bytes' 객체에 'isnumeric' 속성이 없습니다
str.isidentifier()
문자열이 유효함은 법적 식별자입니다.
'def'.isidentifier()
# True
'with'.isidentifier()
# True
'false'.isidentifier ()
# 참
'dobi_123'.isidentifier()
# 참
'dobi 123'.isidentifier()
# 거짓
'123'.isidentifier()
# False
str.islower()
'Xu'.islower()
# False
'ß'.islower() #독일어 대문자
# False
'a Xu'.islower()
# True
'ss'.islower()
# True
'23'.islower()
# 거짓
'Ab'.islower()
# 거짓
str.isprintable()
문자열의 모든 문자가 인쇄 가능한 문자인지 또는 문자열이 비어 있는지 판단합니다. 유니코드 문자 집합의 "기타" 및 "구분 기호" 범주에 있는 문자는 인쇄할 수 없는 문자입니다(그러나 ASCII 공백(0x20)은 포함하지 않음).
'dobi123'.isprintable()
# True
'dobi123n'.isprintable()
Out[24]: False
'dobi 123' .isprintable()
# 참
'dobi.123'.isprintable()
# 참
''.isprintable()
# 참
str.isspace()
문자열에 문자가 하나 이상 있는지, 모든 문자가 공백 문자인지 확인합니다.
인 [29]: 'rnt'.isspace()
아웃[29]: True
인 [30]: ''.isspace()
아웃[30 ]: False
In [31]: ' '.isspace()
Out[31]: True
str.istitle()
문자열의 문자가 대문자인지, 알파벳이 아닌 문자는 무시되는지 여부를 결정합니다.
'Python의 작동 방식'.istitle()
# True
'Python의 작동 방식'.istitle()
# False
'Python의 작동 방식 '.istitle()
# False
'Python의 작동 방식'.istitle()
# True
' '.istitle()
# False
''.istitle()
# 거짓
'A'.istitle()
# 참
'a'.istitle()
# 거짓
'Diaoshui Abc Def 123'.istitle()
# True
str.isupper()
'Xu'.isupper()
# False
'DOBI'.isupper()
Out[41]: True
'Dobi'.isupper()
# False
'DOBI123'.isupper()
# 참
'DOBI 123'.isupper()
# 참
'DOBIt 123'.isupper()
# 참
'DOBI_123' . isupper()
# 참
'_123'.isupper()
# 거짓
문자열 인코딩
str.encode(encoding="utf-8", 오류="엄격")
fname = 'Xu'
fname.encode('ascii')
# UnicodeEncodeError: 'ascii' 코덱은 'u5f90' 문자를 인코딩할 수 없습니다...
fname.encode('ascii', 'replace')
# b'?'
fname.encode('ascii', 'ignore')
# b''
fname.encode('ascii', 'xmlcharrefreplace')
# b'Xu'
fname.encode('ascii', 'backslashreplace')
# b'\u5f90'
Python에 내장된 문자열 분석과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 참고하세요. !

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

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

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

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

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.

PHP는 웹 개발 및 빠른 프로토 타이핑에 적합하며 Python은 데이터 과학 및 기계 학습에 적합합니다. 1.PHP는 간단한 구문과 함께 동적 웹 개발에 사용되며 빠른 개발에 적합합니다. 2. Python은 간결한 구문을 가지고 있으며 여러 분야에 적합하며 강력한 라이브러리 생태계가 있습니다.

VS 코드는 Windows 8에서 실행될 수 있지만 경험은 크지 않을 수 있습니다. 먼저 시스템이 최신 패치로 업데이트되었는지 확인한 다음 시스템 아키텍처와 일치하는 VS 코드 설치 패키지를 다운로드하여 프롬프트대로 설치하십시오. 설치 후 일부 확장은 Windows 8과 호환되지 않을 수 있으며 대체 확장을 찾거나 가상 시스템에서 새로운 Windows 시스템을 사용해야합니다. 필요한 연장을 설치하여 제대로 작동하는지 확인하십시오. Windows 8에서는 VS 코드가 가능하지만 더 나은 개발 경험과 보안을 위해 새로운 Windows 시스템으로 업그레이드하는 것이 좋습니다.

VS 코드는 파이썬을 작성하는 데 사용될 수 있으며 파이썬 애플리케이션을 개발하기에 이상적인 도구가되는 많은 기능을 제공합니다. 사용자는 다음을 수행 할 수 있습니다. Python 확장 기능을 설치하여 코드 완료, 구문 강조 및 디버깅과 같은 기능을 얻습니다. 디버거를 사용하여 코드를 단계별로 추적하고 오류를 찾아 수정하십시오. 버전 제어를 위해 git을 통합합니다. 코드 서식 도구를 사용하여 코드 일관성을 유지하십시오. 라인 도구를 사용하여 잠재적 인 문제를 미리 발견하십시오.

PHP는 1994 년에 시작되었으며 Rasmuslerdorf에 의해 개발되었습니다. 원래 웹 사이트 방문자를 추적하는 데 사용되었으며 점차 서버 측 스크립팅 언어로 진화했으며 웹 개발에 널리 사용되었습니다. Python은 1980 년대 후반 Guidovan Rossum에 의해 개발되었으며 1991 년에 처음 출시되었습니다. 코드 가독성과 단순성을 강조하며 과학 컴퓨팅, 데이터 분석 및 기타 분야에 적합합니다.

vs 코드에서는 다음 단계를 통해 터미널에서 프로그램을 실행할 수 있습니다. 코드를 준비하고 통합 터미널을 열어 코드 디렉토리가 터미널 작업 디렉토리와 일치하는지 확인하십시오. 프로그래밍 언어 (예 : Python의 Python Your_file_name.py)에 따라 실행 명령을 선택하여 성공적으로 실행되는지 여부를 확인하고 오류를 해결하십시오. 디버거를 사용하여 디버깅 효율을 향상시킵니다.

VS 코드 확장은 악의적 인 코드 숨기기, 취약성 악용 및 합법적 인 확장으로 자위하는 등 악성 위험을 초래합니다. 악의적 인 확장을 식별하는 방법에는 게시자 확인, 주석 읽기, 코드 확인 및주의해서 설치가 포함됩니다. 보안 조치에는 보안 인식, 좋은 습관, 정기적 인 업데이트 및 바이러스 백신 소프트웨어도 포함됩니다.
