문제 내용
공백이 최소 5개 이상 있는 문자열을 입력으로 받는다. [ 예) I AM A HERO HERO HERO]
1. 단어 수를 카운트하는 프로그램를 작성하여 출력하고,
2. 이 문자열을 역순으로 출력하는 프로그램 역시 작성하고
3. 또 문자열에 있는 모든 공백 문자를 삭제하는 프로그램를 작성 하여 이를 출력하고,
4. 3. 번 출력 문자열에 다시 공백을 동일 위치에 첨가하여 원래 문자열을 재출력시키는 프로그램을 작성하고
5. 각 문자의 발생 빈도를 세고, 출력은 빈도수가 낮은 글자부터 높은 글자로 출력하도록 프로그램을 작성하세용.
문제 풀이
# 입력 받기
txt = input('공백 5개 이상 문자열 입력: ')
# 1. 문자열 단어 수 세기
print('1. 문자열 단어 수 세기')
print(len(txt.split(' ')))
print('')
# 2. 문자열 역순
print('2. 문자열 역순')
print(txt[::-1])
print('')
# 3. 문자열에서 공백 문자 삭제
print('3. 문자열에서 공백 문자 삭제')
none_empty = txt.replace(' ', '')
print(none_empty)
print('')
# 4. 문자열에서 다시 공백 첨가
print('# 4. 문자열에서 다시 공백 첨가')
add_empty = list(none_empty)
re_ = -1
for i in range(txt.count(' ')):
re_ = txt.index(' ', re_ + 1)
add_empty.insert(re_, ' ')
add_empty = ''.join(add_empty)
print(add_empty)
print('')
# 5. 문자열 단어 발생 빈도
print('5. 문자열 단어 발생 빈도')
frequency = dict()
for word in txt.split(' '):
if word in frequency:
frequency[word] += 1
else:
frequency[word] = 1
word = list(frequency.keys())
f = list(frequency.values())
while bool(word):
m = min(f)
print(word.pop(f.index(m)))
f.remove(m)
print('')
코드 결과
# 예시1. I A A S OF I U I SEOUL, KOREA.
공백 5개 이상 문자열 입력: I A A S OF I U I SEOUL, KOREA.
1. 문자열 단어 수 세기
10
2. 문자열 역순
.AEROK ,LUOES I U I FO S A A I
3. 문자열에서 공백 문자 삭제
IAASOFIUISEOUL,KOREA.
# 4. 문자열에서 다시 공백 첨가
I A A S OF I U I SEOUL, KOREA.
. 문자열 단어 발생 빈도
S
OF
U
SEOUL,
KOREA.
A
I
#예시2. I AM A HERO HERO HERO
공백 5개 이상 문자열 입력: I AM A HERO HERO HERO
1. 문자열 단어 수 세기
6
2. 문자열 역순
OREH OREH OREH A MA I
3. 문자열에서 공백 문자 삭제
IAMAHEROHEROHERO
# 4. 문자열에서 다시 공백 첨가
I AM A HERO HERO HERO
5. 문자열 단어 발생 빈도
I
AM
A
HERO
'코드예시👨🏻💻▶️ 파이썬' 카테고리의 다른 글
파이썬 딕셔너리로 영한/한영 사전 프로그램 작성하기 (0) | 2020.10.22 |
---|---|
파이썬 딕셔너리로 우수/중지 제품 판단하는 프로그램 작성하기 (0) | 2020.10.22 |
파이썬 약수 찾기 (0) | 2020.10.21 |
파이썬 알파벳 모래시계 출력하기 (0) | 2020.10.21 |
파이썬 자릿수의 팩토리얼을 더하면 자기자신이 되는 숫자 판별 (0) | 2020.10.21 |