안녕하세요. 우당탕탕 개발일지입니다.
따라 하며 배우는 파이썬과 데이터 과학(개정판)_ch9 lab 문제 변형과 도전문제만 적혀 있습니다. 개념을 알고 싶은 학생은 신속히 뒤로 가주세요
LAB 9-1~9-4
⚠️해답코드에서 변형하였습니다.
LAB 9-1
#입력
s="This movie was terrible! The acting was poor and the story was boring."
#글자수
print(f"글자수={len(s)}")
alpha_num=s.replace('!','') #type str
alpha_num=alpha_num.rstrip(".") #type str
print(f"특수문자 제외 알파벳 수={len(alpha_num)}")
#단어수
word_num=alpha_num.split() #type list
print(f"단어 리스트 ={word_num}")
print(f"단어수={len(word_num)}")
#평균 단어 길이_list comprehension
print(f"평균 단어의 길이={sum (len(word) for word in word_num)/len(word_num)}")
#평균단어 길이
add=0
for word in word_num:
add+=len(word)
print(f"평균 단어의 길이={add/len(word_num)}")
LAB 9-2
s="This is an example of removing stop words from a string."
print(f"입력={s}")
#불용어 리스트
stop_words=['is', 'an', 'of', 'from','a','and', 'the', 'to' ,'in']
#소문자,단어 구분
words=(s.lower()).split() #type list
print(f"단어 구분, 소문자로 ={words}")
#불용어 제거_list comprehension
filter_word=[word for word in words if word not in stop_words ]
print(f"불용어 제거_list comprehension={filter_word}")
#불용어 제거
filter_word1=[]
for word in words:
if word not in stop_words:
filter_word1.append(word)
print(f"불용어 제거={filter_word1}")
#결과 문장
print(f"출력={"".join(filter_word)}")
LAB 9-3
#트위터 메세지 처리
#입력
s = "It's Not The Right Time To Conduct Exams. MY DEMAND IN BOLD AND CAPITAL. NO EXAMS IN COVID!!!"
print(f"입력={s}")
#대문자 단어 개수
count = 0
for word in s.split():
if( word == word.upper()):
count += 1
print(f"대문자 단어의 수={count}")
#소문자로 바꾸고 구두점 제거_replace()
t = s.lower()
t = t.replace("!","") #!->공백
t = t.replace(".","")#. -> 공백
t = t.replace("'","") #' -> 공백
print(f"결과={t}")
#소문자로 바꾸고 구두점 제거_string
import string
punctuation_list = list(string.punctuation)
text = s.lower()
for mark in punctuation_list:
text = text.replace(mark, ' ')
print(f"결과 ={text}")
LAB 9-4
s = "the auick brown fox jumps over the lazy dog."
print(f"입력={s}")
counter={}
words = s.split()
for word in words:
if word in counter:
counter[word] += 1
else:
counter[word] = 1
print(f"출력={counter}")
도전문제 9.1~9.3
9.1
s=input("이름을 입력하시오:")
#s='John Fitzgerald Kennedy'
s_list=s.split()
print(f"중간 이름은 : {s_list[1]}")
9.2
#소문자 먼저 출력 후 대문자 출력
s=input("문자열을 입력하시오: ")
#s='JoKenTive'
s_list=list(s)
#대소문자 각각 다른 리스트로 구분하기, 알파벳 하나하나
upper_list=[]
lower_list=[]
for i in s_list:
if i==i.upper():
upper_list.append(i)
elif i==i.lower():
lower_list.append(i)
#출력시 문자를 문자열로 만들기
str_list=lower_list +upper_list
str_type=''
for i in str_list:
str_type+=i
#출력
print(f"수정된 문자열{str_type}")
9.3
s=input("문자열을 입력하세요: ")
#s='JoP&*()193at25^^'
print("대소문자, 소문자, 숫자, 특수문자")
#문자열-> list
str_list=list(s)
#리스트 선언
upper_list=[]
lower_list=[]
num_list=[]
punctuation_list=[]
#비교할 문자
import string
punctuation=list(string.punctuation)
#punctuation = [i for i in string.punctuation]
num=[str(n) for n in range(1,10)]
lower=list(string.ascii_lowercase)
#lower = [i for i in string.ascii_lowercase]
upper=list(string.ascii_uppercase)
#upper = [i for i in string.ascii_uppercase]
#리스트에 분류해주기
for i in str_list:
if i in upper:
upper_list.append(i)
elif i in lower:
lower_list.append(i)
elif i in num:
num_list.append(i)
elif i in punctuation:
punctuation_list.append(i)
#출력
print(f"대문자={len(upper_list)}")
print(f"소문자={len(lower_list)}")
print(f"숫자={len(num_list)}")
print(f"특수문자={len(punctuation_list)}")
728x90
'[프로그래밍 언어] > python' 카테고리의 다른 글
[python] 순차 탐색 알고리즘, 이진 탐색 알고리즘 (0) | 2024.09.29 |
---|---|
Python 이중 리스트 입력/삭제/추가/검색/정렬/최대,최소 (0) | 2024.05.14 |
따라하며 배우는 파이썬과 데이터 과학(개정판)_ch5 문제풀이 (1) | 2024.05.01 |
따라하며 배우는 파이썬과 데이터 과학(개정판)_ch4 문제풀이 (0) | 2024.04.27 |
따라하며 배우는 파이썬과 데이터 과학(개정판)_ch3 문제풀이 (0) | 2024.03.20 |