본문 바로가기
프로젝트

로또 프로젝트

by 고공이 2021. 3. 4.

본 글은 코드잇 강의를 공부하고 개인적으로 후기를 정리하는 것입니다.

참고링크😉

www.codeit.kr/

 

코딩이 처음이라면, 코드잇

월 3만원대로 Python, JavaScript, HTML/CSS, Java 등 1,600개 이상 프로그래밍 강의를 무제한 수강하세요

www.codeit.kr:443

제가 코드잇을 수강한지 어언.. 6개월이 지났습니다. 작년에는 직장인 챌린지를 시작해서 코드잇과 인연을 이어갔는데요, 직장인 챌린지가 끝나고 제가 느꼈던 점은 이번엔 제대로 해야겠다! 라는 마음으로 무제한 수강권을 결제했습니다~! 1월부터 시작했는데 제가 또 게을러서 이제 로또 프로젝트를 해보네요!

 

Lotte

그럼 로또 프로젝트를 간단히 소개한 후, 후기를 알려드리도록 하겠습니다.

 

먼저, 로또 프로젝트는 다들 아시다시피 복권 '로또'를 프로그래밍해 페이지를 열어 코드가 잘 작성됐는지 이를 시각화하는 단계로 끝납니다. 이 프로젝트를 완성하기 위해서는 총 5단계로 진행했습니다.

 

1단계 번호 뽑기

일단 수동으로 6개 숫자를 뽑아야 합니다. 이 숫자들로 저희는 얼마가 당첨됬는지 확인해야 하니깐요, 여기서 사용한 함수는 바로 random 함수입니다. 1 ~ 45 까지 숫자를 랜덤하게 뽑아야 하기 때문에 저는 randint 를 써줬습니다.

로또 프로젝트: 1단계

미리 보여드리자면 저는 일단 이렇게 작성했습니다. 실행결과로 [2, 4, 37, 7, 22, 45] 가 나왔습니다. 이제 이 번호가 제가 1등에 당첨되고 싶은 숫자인데요, 다른 코드도 고민해보니 numpy 를 써서 더 간략하게 쓸 수 있는 방법이 있었습니다. 이 코드는 회색 표시로 해두었습니다. 다시봐도 코드잇 UI는 한눈에 알아보기도 쉽고, 깔끔하게 보여지는 것 같아서 너무 마음에 듭니다.


2단계 당첨 번호 뽑기

자 이제 제가 뽑은 여섯 개의 숫자가 당첨이 됐는지 안됐는지 알아 볼 당청 번호 6개를 뽑아야 합니다. sorted 함수를 쓰면 아주 간단하게 작성할 수 있었습니다. 여기서 저는 sort 와 sorted 의 차이를 알게 되었습니다. (예제 보여주기


3단계 겹치는 번호 갯수 확인하기

그럼 제가 뽑은 번호와 당첨 번호가 과연 몇 개가 겹치는 알아보도록 합시다. 저는 여기서 구구단 코드를 참고했는데요, 더 쉬운 코드가 있었습니다. 바로 set 함수를 사용하는 겁니다. 제가 뽑은 번호와 당첨 번호를 각각 list_1, list_2 로 지칭하여 이를 set 을 이용하여 집합으로 만들어 줍니다. 그럼 겹치는 번호를 찾아서 몇 개인지 알면 되겠죠?!

로또 프로젝트: 3 단계

생각해보면 아주 간단하지만, 여기서 수학을 사용하게 되다니.. 역시 코딩할 때, 수리 이론이 중요한 이유가 있었습니다. 이렇게 작은 부분에서도 사용하는데 업무를 할 때는 더 중요하겠됴!? 얼른 알고리즘 공부도 하고 싶습니다ㅎ 


4단계 당첨금 확인하기

자 이제 당첨금을 확인해 봅시다. 당첨금을 확인하기 위해서는 겹치는 번호 갯수에 의해 당첨금이 달라집니다! 저는 여기서 얼마가 당첨됐는지 보기 편할려고 정수가 아닌 문자로 return 값을 설정해줬는데요, 이게 마지막 단계에서 오류가 발생했습니다..


5단계 페이지로 시각화하기

코드잇에서는 제가 작성한 lottery.py 파일로 쉽게 페이지를 만들기 위해 lottery_driver.py 파일을 그냥 제공해줍니다. 어떻게 시각화할지 너무 궁금했는데 그냥 제공해줘서 더 빠르고, 편하게 한 눈에 볼 수 있었습니다.

 

사실 저는 여기서 오류 두가지를 경험했습니다.

 

첫번째는 말하기도 부끄럽지만,, 자꾸 import lottery 에서 오류가 뜨는 겁니다.. 결국엔 이 오류를 해결할 수 있었는데요, 

첫 번째 오류

제가 lotter.py 코드를 잘못썼나봐요,,,  이렇게 배워가는 거죠 뭐^-^ 

여러분은 저처럼 그러지 마세요 ㅎ

 

두번째 오류는 바로 이거였습니다.

두 번째 오류

이 오류는 int 와 str 을 += 할 수 없다고 나옵니다. 저는 처음에 이게 무슨 말인지 몰랐습니다. 그래서 코드잇 질문답변을 살펴봤는데 저랑 비슷한 사람들이 많았습니다. 바로 제가 설정한 당첨금이 얼마인지 확인하는 check 함수에서 정수와 문자가 섞여있었기 때문에 계산이 되지 않았던 겁니다. 이것도 정말 생각하고 또 생각해서 해결했습니다. 

 

저는 위에서 말했다시피 얼마가 당첨됐는지 편하게 볼려고 10억 원, 5천만 원 이렇게 작성했었습니다. 그런데 후에 제가 얼마를 썼고 얼마가 당첨됐는지 알려주는 것을 생각하지 못했던 겁니다. 그러니깐 당연히 저런 오류가 나왔었을 수 밖에 없었습니다. 

 

이 두 가지를 해결하고 나온 페이지가,

실행 결과물

당첨금 만원이라뇨~ 제가 십만원을 썼는데요! 역시 요행을 바라지 말아야 한다는 것을 깨달았습니다. 열심히 노력해서 얻겠습니다.


마무리

프로젝트를 하면서 random 등 관련된 함수들에 대해 알 수 있었고, 이뿐만아니라 sort 와 sorted 차이, set 등 더 확장해서 공부한 느낌이 듭니다. 앞으로 더 열심히 코드잇 수강해야겠습니다.

 

요행을 바라지 말자! 😂

댓글