tesius

tesius

tesiustesius· 4년

질문파이썬 find()가 사용자정의 함수 안에서 제대로 작동하질않아요!

def preprocess_paragraph(paragraph) : index = 0 paragraph_temp = "".join(paragraph) paragraph = [] while 1 : seperator = dict_match("pre_process_dict.txt", paragraph_temp) seperator = "".join(seperator) index = paragraph_temp.find(seperator) if index == -1: return 0 else : sliced_result = "".join(paragraph_temp[0:index +len(seperator)]) paragraph.append(sliced_result) paragraph_temp = paragraph_temp[index + len(seperator) :-1] if len(paragraph_temp) < 5: return paragraph continue return 1 raw_text = "가상화폐 ‘대장주’ 비트코인 가격이 6500만원에 달하는 등 가상화폐 가격이 고공행진을 이어가는 가운데 내년부터 가상화폐를 통한 수익에 세금이 매겨진다는 사실도 알아둬야 한다. 가상자산 거래로 소득이 생겨 세금을 납부해야 하는 사람은 매년 5월 중 직전 1년 치 투자 소득을 반드시 신고해야 한다.22일 기획재정부에 따르면 정부는 내년부터 가상자산을 양도하거나 대여해 발생한 소득을 기타소득으로 분류해 20%의 세율로 분리과세한다..." print(preprocess_paragraph(raw_text), end = "!!") 일단 코드는 이렇습니다.  문제가 되는건 반복문 안에서 paragraph_temp.find() 구문이 제대로 찾지를 못한다는거...자꾸 -1(에러)를 뱉어서 정의한 대로 돌아가질 않아요...뭐가 문제인지 알려주실 분 계신가요? 저기서 seperator는 "다." 입니다.
1.1K
1
0
피토니
피토니·2021-02-27
아래와 같이 seperator에 "다."를 넣으면 정상적으로 동작하는 것 같습니다. def preprocess_paragraph(paragraph) : index = 0 paragraph_temp = "".join(paragraph) paragraph = [] while 1 : seperator = "다." ...
tesiustesius· 4년

질문(문자열 처리) 원래 작업하던 코드는 실행이 안되고 간이형으로 만든 코드는 잘 돌아가네요 도대체 문제가 뭔지 알려 주실 수 있는 분 조언 부탁 드립니다

def dict_match(filename, target_str ) : dict_file = open(filename, "r", encoding= 'utf-8') target_dict = dict_file.read() target_dict = target_dict.split('\n') index = 0 while index < 3: target = target_dict[index] if target_str.rfind(target) != -1: return target else: index += 1 #main process str_file = open("string.txt", "r", encoding= 'utf-8' ) target_str = str_file.readline() print(dict_match("dict.txt", 'target_str'))   아래가 간이 코드입니다.   a = '우리가 수식관계를 활용한다는 것은 ' b = ['할것이다', '한다는 것은', '하고싶다'] index = 0 while index < 3: c = b[index] if a.rfind(c) != -1: print(c) break else: index += 1  아래거는 원하는 대로 &#39;한다는 것은&#39;이 출력되고, 위는 아무것도 뱉질 않는데... 그리고 위 쪽 코드의 str.txt는 아래의 a의 내용이 들어가 있고, dict.txt는 아래쪽의 b의 내용이 들어가 있어요
1.1K
2
0
닥터핸
닥터핸·2021-02-18
아래 코드를 보시면 변수가 들어가야 할 위치에 문자열이 들어간 것 같습니다. print(dict_match("dict.txt", 'target_str')) # 'target_str' 문자열 따옴표가 들어감 다음과 같이 수정해 보시기 바랍니다. print(dict_match("dict.txt", target_str)) # 따옴표 없이 target_s...