20221119 파이썬 함수 로직 구현해보기

Jay·2022년 11월 19일
1

Diary

목록 보기
4/4
벌써 4개월 만에

html,css,javascript
jQuery,Ajax

Java
jsp, Sevlet
Spring Web MVC

JDBC(JNDI)
Oracle
SQL Query

WebBrowser
JDK
Tomcat

들을 조금씩 알아가볼 수 있었던 것 같다.
이제 개인프로젝트와 팀프로젝트 준비도 같이 병행을 하면서
수업들을 이어나가도 있는데, 오늘은 파이썬의 함수를 직접 구현하는 로직을 만들어보면서 느낌점이다.

처음에는 바로 만들 수 있을줄 알고 바로 코드에 손을 댔었고,
그렇게 실패를 겪고나서는
어떻게하면 로직을 완성 시킬 수 있을까
방법적인 부분들을 순차적으로 정리해서 나열해봤다.

그 와중에 기능이나 특징으로 인해서 구현할 수 없었던 부분들은 새로 만들거나
계획을 수정을 해서 시도를 다시 해봤고,

그렇게도 잘 되지 않아서 list set dict 이와 관련된 함수들 append() strip() replace() len() 등을
다시 학습하고 시도하고 콘솔찍어서 어떻게 출력되는지 확인해보고
다시 학습하고 시도하고를 반복해서

4시간 만에 만들 수 있었다.
누군가에게는 시간낭비일지도 모른다고 생각하지만, 어쨌든 이러한 로직을 만드는 것에 대해서
생각해보고 실행시켜나가는 과정에서 사고의 흐름을 좀 더 명확하게 그리고 단순화시켜서
현실에 대입해볼 수 있었던 것 같다.

그동안 수업 일정과 프로젝트 시도 및 학습, 복습 등으로 인해서
따라하기 바빴던 점도 사실이지만,
이제는 논리적으로 사고하는 습관들에 대해서 신경을 써보려고 한다.

#단어 찾기 로직 만들어서 구현하기 :: 총 4시간 걸렸음

file = open('raiseup.txt', "r")
text = file.read()
wordList = text.split()
print("=============================================")
print(text)
print("=============================================")
print("wordList: \n",wordList)
print("wordList: ",type(wordList))      #wordList:  <class 'list'>
print(len(wordList))
print("=============================================")
print()

'''
해당 문서에 포함된 있는 문자 갯수 세기 로직

list에서 공백과 불필요한 문자 제거
두 개의 동일한 리스트 만들고,
하나는 중복 제거(set)하고 다시 list에 담아서 as A
남은 하나는 비교군으로 as B 사용해서

A에 포함되어 있는 단어가 B에 몇개 있는지 카운팅(count)해서
dict에 key:value로 담기
'''

#wList : 리스트
wList = []
i = 0
#반복문 돌려서 wList 리스트 채우기
while i < len(wordList):
    #word = wordList[i].replace(',','').replace(';','').replace('-','').strip()
    word = wordList[i].strip(','';''-''')   #불필요한 문자 제거
    wList.append(word)
    i += 1
print("type(word): ", type(word))
#wList: 불필요한 문자 정리가 끝난 리스트
print("type(wList): ", type(wList))
print("len(wList): ", len(wList))
print("wList: ", wList)
print("=============================================")
print()

#wwList: 중복제거가 끝난 집합 자료형을 다시 리스트로 변환
wwList = set(wList)     #중복제거
wwList = list(wwList)   #리스트에 담기
print("type(wwList): ", type(wwList))
print("len(wwList): ", len(wwList))
print("wwList: ", wwList)
print("=============================================")
print()

#listDict: 이제 문자 카운팅해서 listDict에 key:value 로 넣기
listDict = {}
i = 0
while i < len(wwList):
    count = wList.count(wwList[i])
    listDict[wwList[i]] = count
    i += 1
print(" '' 제거 전 len(listDict): ", len(listDict))
#'' 인 key 제거, 총 65개 -> 64개로 바뀜
del listDict['']
print(" '' 제거 후 len(listDict): ", len(listDict))
print("type(listDict): ", type(listDict))
print("listDict: ", listDict)
print("=============================================")
print()

for key in listDict.keys():
    print(key, ": ", listDict[key])
profile
안녕하세요! 개발을 배우기 시작한 학생의 학습공간입니다.

0개의 댓글