brunch

You can make anything
by writing

C.S.Lewis

by 아무나 Aug 08. 2019

Python - 11. 파이썬 연습문제들

*Udacity - Intro to Computer Science를 따라가고 있습니다.

https://classroom.udacity.com/courses/cs101


열심히 공부했으면 단원 말 연습문제를 꼭 풀어보아야 한다. 그래야 내가 정말 아는지 아는 줄 알았는지 알게 되니까! 그럼 아래의 연습문제를 풀어보며 내가 정말 웹 크롤러를 내 힘으로 만들었는지 알아보자. Udacity 에는 더욱 다양한 연습문제가 있으나 맛보기로 몇 개만 가져와 봤다. 

참고로 일부 해답의 경우 비전공자의 손으로 푼 것이기 때문에 완벽하게 효율적이지 않을 수 있다. 



1. 리스트 안의 모든 수를 곱하기





2. 3개의 숫자 중에 가장 큰 숫자 찾기




3. 크롤링 페이지 제한 주기 - 아니면 웹페이지끼리 무한 연결되어 있으니까 크롤러가 끝나지 않을 수 있다.


next_depth라는 값으로, 링크를 몇 번째까지 타고 들어가서 내용을 긁어올 것인지를 세고, 제한해보자. 아니면 무한한 웹 속으로 내 컴퓨터의 렘이 갈려 들어갈 수 있다!


무엇을 추가해야 뎁스를 제한할 수 있을지 알기 쉽게 이전 버전을 _old로 상단에 먼저 받아 적어 보았다.





4. 각 알파벳의 평균 빈도수 알아보기


adada라는 단어에서 a는 평균 몇 번 등장하는가? 이런 것이 알고 싶을 수 있다. 혹시 아는가? 나중에는 특정 단어가 몇 번 등장하는지 알아내서 그것으로 검색엔진을 만드는데 도움이 될지. 






5. 리스트의 평균 숫자 알아보기


리스트 안에 들어 있는 숫자의 평균을 내어 보자. 아래는 파이썬 초보의 작품이니 더 짧고 멋진 버전으로 얼마든지 코딩해보실 수 있을 것이다!





4. add와 append의 차이


똑같이 리스트에 더하는 것이라고 알고 있는데 add(+)와 append는 무슨 차일까?


list = [1,2,3,4]


여기에 [5, 6]을 더해서 알아보자


list = list + [5, 6]

print list 

>>>[1,2,3,4,5,6]


list.append([5,6])

print list

>>>[1,2,3,4,[5,6]]


한눈에 봐도 append로 하면 단순히 리스트에 요소가 추가되는 것이 아니라 저렇게 뭉텅이가 통째로 추가되는 것을 알 수 있다.




사실 이 단원에는 연습문제가 3 파트나 달려있다. 위에 소개한 내용은 연습문제 중 극히 일부에 지나지 않는다. 훨씬 더 어려운 문제들(예를 들면 아직도 이해가 잘 되지 않는 수도쿠 검출 연습문제)도 있으니 한 번 도전해 보기를 권한다. 


이미 파이썬에 충분한 지식이 있는 사람은 그냥 손가락 풀 겸, 혹은 초보지만 실력 검증을 한 번 해보고 싶은 분이라면 아래 lesson 12,13, 14번의 문제 세트를 추천드린다.

매거진의 이전글 Python - 10. 다시 웹 크롤러로
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari