클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

모듈과 패키지 3 - 패키지 본문

프로그래밍 언어/파이썬

모듈과 패키지 3 - 패키지

huenuri 2024. 8. 1. 11:24

모듈에 이어 패키지에 대해서도 알아보기로 하자. 이론 학습은 이게 마지막이다. 실습 문제가 좀 많아서 과연 8시 안에 마칠 수 있을지 의문이지만 최선을 다해 공부해볼 것이다.

패키지는 이클립스에서도 자주 사용하는데, 하나의 묶음을 말하는 것 같다. 그럼 바로 학습을 진행해보자!


 

 

이론 4 - 패키지

 

예시를 보면 프로젝트 폴더 안에 sciptr, sound 등 여러 폴더가 있다. 이 폴더들 안에는 .py로 시작하는 모듈이 있고 이러한 것들을 관리할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

예를 들어, user라는 폴더 안에 cal이라는 모듈이 있고, 그 안에 함수 plus()가 있을 때 패키지는 어떻게 활용할 수 있을까?

 

 

 

 

 

 

 

모듈 사용 방법

첫번째 방법은 모듈을 불러와서 함수를 실행하는 방법이다.

 

 

 

 

 

 

 

두번째 방법은 맨 앞에 어떤 폴더의 모듈을 import할지 명시하고 .없이 사용할 수 있다. 이 방법의 단점은 이 파일에 plus 함수가 이미 있을 때는 충돌이 일어날 수 있다. 따라서 이름이 겹치는 부분에 대해 주의해야 한다.


 

 

 

 

퀴즈 4 - 패키지

 

 

 


 

 

 

퀴즈 5 - 모듈 활용

 

 

 

조금 헤깔리는 문제였다.

 

 

다행히 맞추기는 했지만 다음에 한번 더 확인해볼 문제이다.


 

 

실습 4 - import vs from-import

 

 

 

from import를 쓰면 .math를 쓰지 않아도 되고, 그냥 import는 .math를 써야 한다는 것에 주의하자!
그리고 랜덤이라 다시 출력하면 숫자가 바뀌는 것을 볼 수 있다.

 

 


 

 

실습 5 - 웹페이지 방문

 

 

이번 실습은 urlib 패키지를 사용해 홈페이지의 정보를 가져오는 것이다. 이 패키지에는 request라는 모듈이 있고, 홈페이지의 정보를 가져오는 urlopen 함수를 사용할 것이다.

괄호 안에 홈페이지 정보를 넣을 때는 꼭 큰 따옴표를 넣어 문자열로 처리해야 한다. 주소를 쓰고 read()하여 불러온 정보를 읽고, utf-8로 표준화된 형식으로 볼 수 있게 한다.

 

 

 

 

 

실행을 하면 이렇게 홈페이지의 정보를 볼 수 있다.


 

 

실습 6 - 로또 추첨기

 

 

이 문제는 혼자서는 풀 수 없는 문제라 강의 영상을 보면서 따라해보았다.
모듈을 import하고 반복문을 쓰는데 참이 될때까지 무한반복되게 하려면 while문을 써야 한다. while문으로 6보다 작을 때까지 조건을 주고, var에 랜덤한 값을 넣어준다.
그런 다음 if문으로 수가 lotto에 있으면 pass하고 아니면 값을 뽑는 식을 만든다. 이때 append()를 사용한다.

정렬을 할 때는 이미 정렬이 되어 있으니 print를 사용하면 안된다. 마지막으로 print를 사용해 결과를 출력해본다.

 

 

 

직접 실습해보기

 

이 문제는 스스로 푼 게 아니고 강의 영상을 계속 보면서 따라 했으므로 다음에 꼭 다시 풀어봐야겠다. 지금은 시간이 없어서 혼자서 고민하며 풀 수가 없었다.

 


 

 

네번째 학습을 마치고

이렇게 해서 네번째 단원까지 학습해보았다. 이제 8시가 조금 넘었는데 바로 이어서 단원 정리를 하고 미션 문제 한 두개를 더 풀어보려고 한다.

못할 줄 알았는데 새벽부터 4시간 반 동안 열심히 달려보고 있다. 얼마 남지 않았으니 조금더 힘을 내보자! 이 단원에서는 패키지를 사용해 여러 함수를 임포트해서 사용하는 방법을 배웠다.