728x90
반응형
[문제]
아래와 같은 조건으로 학교 홈페이지의 교장선생님 인사말을 분석해보는 프로그램을 작성해보자
조건1: 교장선생님 인사말은 문자열로 지정한다.
조건2: 교장선생님 인사말에서 나온 총 단어를 띄어쓰기(space)를 기준으로 분리한후, 딕셔너리를 이용하여 인사말에서 추출한 단어 (key)와 그 단어의 빈도(value)를 카운트한다.
조건3: 반복문과 조건문 사용
조건4: 교장선생님 인사말의 단어중 '학교'라는 단어가 몇개가 나오는지 찾아보자
(교장선생님 인사말)
text= "여러분 안녕하세요. 여러분을 학교에서 뵙게 되어 반갑습니다. 학교엔 가을의 짙은 향기와 바람이 가득합니다. 학교 이곳저곳이 노랗고 울긋불긋한 단풍으로 화려한 그림을 그리고 있네요. 학교 안에서 여러분의 꿈이 조금씩 실현되어지길 기대합니다. 감사합니다."
[실행결과]
교장선생님 인사말의 총 단어수: ___
교장선생님 인사말 중 학교단어의 반복회수:____
(방법)
- 반복문과 조건문으로 하라는 요청에 따라 만든 코드 입니다.
text = "여러분 안녕하세요. 여러분을 학교에서 뵙게 되어 반갑습니다. 학교엔 가을의 짙은 향기와 바람이 가득합니다.\
학교 이곳저곳이 노랗고 울긋불긋한 단풍으로 화려한 그림을 그리고 있네요. \
학교 안에서 여러분의 꿈이 조금씩 실현되어지길 기대합니다. 감사합니다."
data = {} # 딕셔너리 선언
lst = text.split() # 공백으로 분리하여 리스트로 만듬. split() = split(' ')와 같음
school_cnt = 0 # 학교 단어 수 변수
for i in range(len(lst)): # 공백으로 분리한 단어 수 만큼 반복
if lst[i] in data: # 단어가 딕셔너리에 있는지 확인
data[lst[i]] += 1 # 단어가 딕셔너리에 있다면 +1 (반복회수)
else:
data[lst[i]] = 1 # 단어가 없다면 새로 추가학호 1로 함(반복회수)
if '학교' in lst[i]: # 단어가 '학교' 인지 확인. 단순 lst[i]==학교로 하지 않고 '학교'라는 단어가 포함된 단어면 +1
school_cnt += 1 # 단어가 '학교'면 +1
# w_cnt = len(lst)
w_cnt = len(data) # 딕셔너리를 Count 하여 단어수(같은 단어 여러번도 1로 됨)
print("교장선생님 인사말의 총 단어수:",w_cnt)
print("교장선생님 인사말 중 학교단어의 반복회수:",school_cnt)
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 2개 리스트에서 공통 요소 추출 (0) | 2022.12.17 |
---|---|
[파이썬] 사칙연산, 구구단 코드 빈칸 채우기 (0) | 2022.12.17 |
[파이썬] 문제 : 입력한 문자열에 동일한 두 문자가 연속되는지 검사 (0) | 2022.12.14 |
[파이썬] 문제 : 2차원 리스트의 정렬 및 합계,평균 구하고 결과 파일에 쓰기 (0) | 2022.12.14 |
[파이썬] 문제 : 터틀 색 채우기 방법 (0) | 2022.12.13 |
댓글