당신이 모르는 Python의 Strip() 함수의 마법 같은 사용법

Y2J
풀어 주다: 2017-05-18 14:19:45
원래의
2620명이 탐색했습니다.

【에피타이저】

파이썬에서 스트립 방식을 접해 본 분들이라면 주로 공백을 제거하는 데 사용된다는 점을 아실 겁니다. 이를 달성하는 방법에는 두 가지가 있습니다.

방법 1: 내장 함수 사용

if name == 'main' :
    str = ' Hello world '
    print '[%s]' %str.strip()
로그인 후 복사

방법 2: 문자열 모듈에서 메소드 호출

import string
if name == 'main' :
    str = ' Hello world '
    print '[%s]' %string.strip(str)
로그인 후 복사

당신이 알고 있는지 모르겠습니다. 이 두 호출의 차이점이 무엇인지 아시나요? 다음은 개인적인 의견입니다

Ø str.strip()은 Python을 호출하는 내장 함수이고, string.strip(str)은 문자열 모듈을 호출하는 메소드입니다

Ø string.strip (str)은 string 모듈에 정의되어 있습니다. 그리고 str.strip()은 내장 모듈

에 정의되어 있습니다. 질문 1: 모듈의 메소드가 내장 모듈에 정의되어 있는지 확인하는 방법은 무엇입니까?

dir(모듈 이름)을 사용하여 'builtins' 속성이 있는지 확인하세요.

예: 문자열 모듈 보기

print dir(string)
로그인 후 복사

질문 2. Python에서 모든 내장 함수를 보는 방법

  print dir(sys.modules[ 'builtin' ])
로그인 후 복사

질문 3. 방법 내장 모듈 보기 내장 기능 정의

 print help(builtins)
로그인 후 복사

위 내용은 모두가 알고 있습니다. 이 기사의 주제로 들어가 보겠습니다.

[Hard Dish]

우선 , 살펴보시기 바랍니다. 다음 프로그램의 실행 결과를 살펴보십시오.

if name == 'main' :
    str = 'hello world'
    print str.strip( 'hello' )
    print str.strip( 'hello' ).strip()
    print str.strip( ' heldo ' ).strip()    #sentence 1
    stt = 'h1h1h2h3h4h'
    print stt.strip( 'h1' )                #sentence 2
    s = '123459947855aaaadgat134f8sfewewrf7787789879879'
    print s.strip( '0123456789' )         #sentence 3
로그인 후 복사

결과는 다음 페이지에 표시됩니다.

실행 결과:

world
world
wor
2h3h4
aaaadgat134f8sfewewrf
로그인 후 복사

답을 맞추셨나요? O(∩_∩)O~

모두 맞히시면 좋아요 32개 드리겠습니다...

결과 분석:

우선, 문자열을 확인하세요 모듈의 스트립 소스 코드:

# Strip leading and trailing tabs and spaces
def strip (s, chars= None ):
    """strip(s [,chars]) -> string
    Return a copy of the string swith leading and trailing
    whitespace removed.
    If chars is given and not None,remove characters in chars instead.
    If chars is unicode, S will beconverted to unicode before stripping.
    """
return s.strip(chars)
로그인 후 복사

자유롭게 번역하고 싶습니다. 이 방법은 앞뒤 공백과 탭을 제거하는 데 사용됩니다. 공백이 제거된 S 문자열의 복사본을 반환합니다. chars 매개변수에 None 값이 없으면 chars에 나타나는 모든 문자가 제거됩니다. chars가 유니코드인 경우 S는 유니코드로 변환된 후 연산됩니다.

다음은 위 단락의 문장 1 2 3에 대한 설명입니다.

str = 'hello world'
print str.strip( ' heldo ' ).strip()
로그인 후 복사
result:wor
执行步骤:
elloworld
lloworld
oworld
oworl
 worl
 wor
wor
로그인 후 복사

구체적인 코드 실행 과정은 다음과 같습니다. 🎜 >

  print str.strip( 'h' )
    print str.strip( 'h' ).strip( 'e' )
    print str.strip( 'h' ).strip( 'e' ).strip( 'l' )
    print str.strip( 'h' ).strip( 'e' ).strip( 'l' ).strip( 'd' )
    print str.strip( 'h' ).strip( 'e' ).strip( 'l' ).strip( 'd' ).strip( 'o' )
    print str.strip( 'h' ).strip( 'e' ).strip( 'l' ).strip( 'd' ).strip( 'o' ).strip( 'l' )
    print str.strip( 'h' ).strip( 'e' ).strip( 'l' ).strip( 'd' ).strip( 'o' ).strip( 'l' ).strip()
로그인 후 복사
이 미스터리를 이해하셨는지 모르겠습니다. 저는 프로젝트 매니저인 Shaan Fenyong의 도움으로 이 규칙을 발견했습니다.


이제 간략한 요약:

s.strip(chars) 사용 규칙:

먼저 문자의 첫 번째 문자를 탐색하여 S In에 있는지 확인합니다. 첫 번째 위치와 마지막 위치가 있으면 제거하세요. 제거된 새 문자열을 s로 설정하고 문자의 첫 번째 문자부터 시작하여

루프 를 계속합니다. 그렇지 않은 경우 문자의 두 번째 문자부터 직접 시작하십시오. s의 첫 번째와 마지막 문자가 문자에 없을 때까지 계속 반복한 다음 루프가 종료됩니다.

핵심: 문자에 있는 문자가 S에 있는지 확인

이 방법을 읽고 나서 파이썬 소스 코드 개발자들이 정말 대단하다는 것을 알았습니다. 그들은 이런 고전적인 알고리즘도 생각해 낼 수 있습니다. .

【식후 페이스트리】

이 방법은 특정 규칙에 따라 양쪽 끝에 지정된 문자를 제거하는 데 주로 사용됩니다. 문장3이 좋은 응용이라면.

예: 문자열 양쪽 끝의 숫자를 가로채거나 특정 문자가 처음 나타나는 부분과 마지막 부분 사이에 있는 문자열을 가져오는 등의 작업을 수행합니다.

[관련 추천]

1.

파이썬 무료 동영상 튜토리얼

파이썬에서 잘 알려지지 않은 스트립() 트랩

3.

Python 기본 입문에서는 Strip() 함수를 사용하여 공백 nrt를 제거하는 방법을 배웁니다.

4. ) 및 Python에서의 분할 () 사용 방법

5.

Python에서 스트립 기능의 사용 시나리오에 대한 자세한 설명

위 내용은 당신이 모르는 Python의 Strip() 함수의 마법 같은 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿