Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 문자열에 특정 부분 문자열이 포함되어 있는지 확인하는 방법

이 문제에서는 하나의 문자열이 주어지며, 그 문자열 안에 특정 부분 문자열(substring)이 존재하는지 확인해야 합니다. 파이썬에서는 내장 함수인 find()를 사용하면 간단하게 해결할 수 있습니다.

알고리즘

1단계: 사용자로부터 문자열과 부분 문자열을 입력받아 각각 별도의 변수에 저장합니다.
2단계: 부분 문자열이 문자열 내에 존재하는지 확인합니다. 이때 파이썬의 내장 함수인 find()를 사용합니다.
3단계: 최종 결과를 출력합니다.
4단계: 프로그램을 종료합니다.

예제 코드

def check(str1, sstr): 
   if (str1.find(sstr) == -1): 
      print(sstr,"IS NOT PRESENT IN THE GIVEN STRING") 
   else: 
      print(sstr,"IS PRESENT IN THE GIVEN STRING") 
# Driver code 
str1 = input("Enter the string ::>")
sstr=input("Enter Substring ::>")
check(str1, sstr) 

실행 결과

Enter the string ::> python program
Enter Substring ::> program
program IS PRESENT IN THE GIVEN STRING
Enter the string ::> python program
Enter Substring ::> programming
programming IS NOT PRESENT IN THE GIVEN STRING

코드 설명

find() 함수는 문자열에서 부분 문자열이 처음으로 나타나는 인덱스를 반환하며, 부분 문자열이 존재하지 않으면 -1을 반환합니다. 따라서 반환값이 -1인지 여부를 검사하면 해당 부분 문자열의 존재 여부를 판별할 수 있습니다.

위 예제에서 "python program"이라는 문자열에는 "program"이 포함되어 있으므로 존재한다는 메시지가 출력되지만, "programming"은 포함되어 있지 않으므로 존재하지 않는다는 메시지가 출력됩니다.

참고: in 연산자를 사용한 대안

파이썬에서는 in 연산자를 사용해 더욱 직관적으로 부분 문자열의 존재 여부를 확인할 수도 있습니다.

if sstr in str1:
    print(sstr, "IS PRESENT IN THE GIVEN STRING")
else:
    print(sstr, "IS NOT PRESENT IN THE GIVEN STRING")

in 연산자는 불리언 값(True/False)을 반환하기 때문에 단순히 존재 여부만 확인할 때는 코드가 더 간결하고 가독성이 좋습니다. 반면, 부분 문자열의 위치(인덱스)까지 알아야 한다면 find() 함수를 사용하는 것이 적합합니다.