[140922] Python - 입력 받은 문자열 주석 제거하기
본 카테고리에서 진행되는 모든 포스팅은 Python 3.4.1 버전에서 진행되었음을 알립니다.
<소스 코드>
#주석문자 탐색 프로그램
#사용자로부터 입력된 문자열 중 ()로 처리된 문자열을 제외시키고 본 문자열을 보여준다.
def remove_comments():
s=input("문자를 입력해주세요.\n괄호를 사용하면 문자열 내에서 주석처리가 가능합니다.\n")
if s.find("(") and s.find(")"): #입력 받은 문자열 중 '(' 과 ')' 가 있다면
split=s[s.find("("):s.rfind(")")+1] # 문자열 s 에서 (과 )의 위치를 체크하고 변수 split에 해당 위치만큼 잘라내서 새로 저장한다.
(par1,split,par2)=s.partition(split) # 저장한 split을 기준으로 par1, split, par2에 각각 문자열을 저장한 뒤,
print ("주석처리된 문자 : ",split) # 주석처리된 문자 split을 출력하여 보여주고,
print ("주석을 제외한 문장 : ",par1+par2) # split을 제외하고 par1과 par2의 문자열을 합쳐서 출력한다.
return s
remove_comments()
원래는 기초 과정 부터 차례대로 진행하려고 했는데, 그냥 학교에서 진행하는 순서대로 포스팅해도 좋을 것 같다.
앞으로는 주석을 활용해서 코드를 최대한 이해하며 넘어가고 해당 과제마다 어떤 명령어가 가장 키포인트 였는지 짚고 포스팅을 마무리 해야겠다.
<실행 화면은 위와 같다.>
<KEY POINT>
<1> str.find("find_str") / str.rfind("find_str")
기본적으로 명령어의 이름을 보면 알 수 있듯이, 무언가를 찾는 명령어이다. 그리고 "." 앞에 붙어있는 형식이 str 인 것으로 미루어보아 어떤 문장이나 단어 안에서 특정 문자열을 찾아내는 명령어임을 알 수 있다. 간단하게 정리하자면 다음과 같은 기능을 한다.
1-1 "문자열 str 안에 찾으려는 문자 "find_str"이 있는지 확인하고, 해당 위치값을 리턴한다. "
1-2 "str.find 의 경우는 문자열의 앞에서부터, str.rfind 는 뒤에서부터 검색을 시작한다."
ex)
str="Hello World"
result1=str.find("W")
result2=str.find("W")
print (result1,"and", result2)
이 때 실행값은 6 and 6 이 된다.
rfind 명령어는 뒤에서부터 찾는다고 끝에서 부터 문자열을 센 숫자를 반환하는 것이 아니라, 검색을 뒤에서 시작할 뿐 반환시켜주는 값은 find와 같이 앞을 기준으로 한다. 이는 Python의 문자 배열이 C언어와 같은 개념으로 사용되기 때문이다.
문자열 A
최 |
고 |
대 |
학 |
교 |
A[0] A[1] A[2] A[3] A[4]
이렇게 설정된다. 그래서 "학"이라는 단어를 찾는다고 하면 find 와 rfind 둘 다 같은 값인 3을 리턴할 것이다. 중요한 점은 탐색 위치이다!
처음 포스팅하는 자료이다보니 얼떨결에 너무 길어진 것 같다.... 그렇게 길게 설명이 필요한 내용도 아닌 것 같지만..
어쨌든 최초 포스팅 완료!
'프로그래밍 > 코딩 (PYTHON)' 카테고리의 다른 글
Team formation / 코딩테스트 문제 (0) | 2019.07.19 |
---|