코드예시👨🏻‍💻▶️ 파이썬

파이썬 문자열 단어 개수 세기, 역순 출력, 공백 삭제, 단어 빈도 세기

코뮤니티 2020. 10. 22. 13:22

문제 내용

공백이 최소 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

 


 

 

나와 어울리는 개발자 유형 찾기

MBTI로 알아보는 개발자 유형 내 안의 개발자를 찾아서...⭐

comu.codeuniv.kr