Development Tip

파이썬 문자열의 첫 번째와 마지막 문자 확인

yourdevel 2020. 12. 3. 20:43
반응형

파이썬 문자열의 첫 번째와 마지막 문자 확인


누구든지이 코드의 문제점을 설명해 주시겠습니까?

str1='"xxx"'
print str1
if str1[:1].startswith('"'):
    if str1[:-1].endswith('"'):
        print "hi"
    else:
        print "condition fails"
else:
    print "bye"   

내가 얻은 출력은 다음과 같습니다.

Condition fails

그러나 hi대신 인쇄 할 것으로 예상했습니다 .


[:-1]마지막 요소를 제거 한다고 말할 때 . 문자열을 자르는 대신 다음 startswithendswith같이 문자열 객체 자체에 적용 할 수 있습니다.

if str1.startswith('"') and str1.endswith('"'):

그래서 전체 프로그램은 이렇게됩니다

>>> str1 = '"xxx"'
>>> if str1.startswith('"') and str1.endswith('"'):
...     print "hi"
>>> else:
...     print "condition fails"
...
hi

조건식으로 더 간단하게

>>> print("hi" if str1.startswith('"') and str1.endswith('"') else "fails")
hi

당신은

if str1[0] == '"' and str1[-1] == '"'

또는

if str1.startswith('"') and str1.endswith('"')

하지만 슬라이스하지 않고 startswith / endswith를 함께 확인하십시오. 그렇지 않으면 찾고있는 것을 슬라이스 할 것입니다.


마지막 문자를 뺀 문자열에 대해 테스트하고 있습니다 .

>>> '"xxx"'[:-1]
'"xxx'

마지막 문자 "인이 슬라이스 출력의 일부가 아니라는 점에 유의하십시오 .

나는 당신이 마지막 캐릭터에 대해 테스트하기를 원했다고 생각합니다. [-1:]마지막 요소 만 슬라이스 하는 사용 합니다.

그러나 여기서는 슬라이스 할 필요가 없습니다. str.startswith()그리고 str.endswith()직접 사용하십시오 .


문자열 변수를 설정하면 따옴표를 저장하지 않고 정의의 일부입니다. 그래서 당신은 사용할 필요가 없습니다 : 1

참고 URL : https://stackoverflow.com/questions/19954593/python-checking-a-strings-first-and-last-character

반응형