본문 바로가기
개인 공부/파이썬

[8일차] Do it! 첫 파이썬 :: 07. 코드 꾸러미 만들기 - 함수(2) (feat. 내가 만든 로또 번호 추천 프로그램)

by 잇포에듀 2020. 6. 5.
반응형

[Do it! 공부단 스터디 8일차]

Do it! 첫 파이썬 :: 07. 코드 꾸러미 만들기 - 함수(2)

 

 

07. 코드 꾸러미 만들기 ― 함수

07-6. 모아 모아 다 모아! ― 모듈

  • 프로그램에서 사용할 함수와 변수, 그리고 여러 자료를 미리 모아 놓는 방법을 모듈(module)이라고 한다.

모듈 불러오기

  • 모듈은 직접 만들어서 사용할 수도 있고, 만들어져 있는 모듈을 불러와 사용할 수도 있다.
  • import 를 쓴 뒤 한 칸 띄고 불러올 모듈의 이름을 적는다.
# 모듈 불러오기 기본형
import 불러올 모듈의 이름

# 모듈 불러오기 예시
import random  # ramdom 모듈을 불러오라는 뜻!

 

모듈 사용하기

  • 모듈을 사용하려면 모듈 안에 어떤 것이 들어있는지 알아야 한다.
  • import로 모듈을 불러오고, 그런 다음 모듈 이름 뒤에 점(.)을 찍고 함수를 가져온다.
# 모듈 사용하기 예시
import random  # 먼저 random 모듈을 불러온다

random.randrange(a, b)  # range(a, b) 중 원소 한 개를 아무거나 가져온다

print(random.randrange(0, 2))  # 0 이상 2 미만인 수 중 아무거나 한 개 출력

모듈 활용하기

 

math 모듈

math.pi 3.14로 시작하는 원주율 파이 값이 저장된 자료
math.pow(a, b) a의 b제곱값을 반환하는 함수
math.ceil(숫자형) 소수점 아래 숫자를 올림하여 정수를 반환하는 함수

 

random 모듈

random.randrange(a, b) a이상 b 미만인 연속된 숫자로 이루어진 시퀀스 중에서 아무거나 한 개를 반환하는 함수
random.choice(seq) 시퀀스(seq)의 원소 중에서 아무거나 한 개를 반환하는 함수
random.sample(seq, i) 시퀀스(seq)의 원소 중에서 아무거나 i개를 반환하는 함수

 

# random 모듈 예시

import random

random.choice(['a', 'e', 'i', 'o', 'u'])  # 알파벳의 모음 중에서 하나 뽑기

 


미션 수행하기

(1) 최댓값 함수 직접 만들어 구하기

 

(2) 함수 만들어서 대기 시간에 따라 자료 재배치하기

pop() 함수가 리스트에서 자료값을 제거하는 동시에 함수값을 리턴할 수 있다는 걸 잊어서 코드 작성에 애를 먹었다.

 

 


나 혼자 코딩하기

(1) 점심 메뉴 추첨기

 

음식 메뉴 고르는 걸 정말 어려워하는데, 이런 코드 간단히 만들어서 활용해보니 재미가 있었다.

 

 

(2) 가위 바위 보 게임

 

랜덤 함수와 조건문만으로 간단하게 가위, 바위, 보 게임을 만들어 볼 수 있어서 재미있었다.

 

 

(3) 나만의 미니 프로그램

 

로또 번호 추첨기를 만들어 보았다. 1~45까지 45개의 숫자 중에 6개의 번호를 임의로 추출해준다. 1부터 45까지의 숫자를 리스트에 담고, 리스트 안에서 숫자를 하나 추출한다. 추출한 숫자는 중복된 번호를 뽑지 않기 위해 리스트에서 삭제하고, 다음 번호를 추출한다. 이 과정을 6번 반복하여 리스트에 담고, 마지막에 보기 좋게 정렬을 해서 출력한다.

 

# 여러분 만의 미니 프로그램을 만들어 보세요! 랜덤 질문 던지기, 팀 나누기, 당첨자 뽑기 등!
import random

# 로또 추첨 번호 1~45
lotto_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 
    11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 
    21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 
    31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 
    41, 42, 43, 44, 45]

# 선택된 번호를 저장할 리스트
selected_num = []

# 번호를 선택할 함수
def pick():
    # 6개의 번호를 임의로 추출한다.
    for i in range(6):  
        c = random.choice(lotto_list)  # 임의로 숫자를 하나 뽑는다
        selected_num.append(c)  # 뽑힌 숫자를 저장한다
        lotto_list.remove(c)  # 로또 추첨 번호에서 조금 전에 선택된 번호를 지운다. (중복 추첨 방지)
    
    selected_num.sort()  # 뽑힌 6개의 숫자를 보기 좋게 정렬한다.
    return str(selected_num)

print("이번 주에는 " + pick() + " 번호를 구입하세요")
print("혹시 좋은 결과 있으면 저에게도...ㅎㅎ")

 

소감 나누기

이렇게 여덟번의 스터디랄 마쳤다. 책이 워낙 쉽고 재미있게 씌여져서 큰 어려움 없이 완주할 수 있었다.

 

더 자세한 나눔은 새로 작성해서 나누겠습니다^^//

 

 

반응형

댓글