1. 모듈의 종류와 사용법
변수 < 집합형 변수(리스트, 튜플, 딕셔너리, 집합)
함수 < 모듈 < 패키지 또는 라이브러리
모듈(module) : 별도의 파일(*.py)
패키지 또는 라이브러리 : 폴더, 모듈이 저장된 폴더 개념
모듈(module)의 종류 :
사용자 정의 모듈
표준 모듈 : random, math
외부 모듈 : 별도 설치 필요(pip install) , pandas , seaborn ...
모듈의 사용 : import
import 모듈명 => 모듈명.함수명(옵션)
import 모듈명 as 별칭 => 별칭.함수명(옵션)
from 모둘명 import 함수명 => 함수명(옵션)
2. math 모듈 사용하기
# math 모듈 사용하기 1
import math
# math 모듈내의 함수 확인
# dir(모듈명) : 모듈안에 정의된 함수명을 리스트로 반환 / 프린트와 함께 써야함
print(dir(math))
# help(모듈명) : 모듈에 대한 도윰말 기능
help(math) #print 없이 사용
# 모듈명.__doc__ : 모듈 개요 확인
print(math.__doc__)
# 모듈에서 지원되는 함수나 상수 호출
import math
print(math.floor(10.5667),math.ceil(10.5667), round(10.5667)) # round는 반올림 함수로 내장함수
# 10 11 11
# math 모듈 사용하기 2 - 별칭 이용
# 별칭명.함수, 별칭명.상수
import math as m
# print(dir(m))
print(m.e) # 2.718281828459045
print(m.sqrt(4)) #2.0
# math 모듈 사용하기 3
# - from 모듈명 import 함수명1, 함수명2, ...
# - from 모듈명 import *
# 모듈명을 생략하고 함수, 상수 바로 호출 가능 ()
from math import pi, e, sqrt, floor, ceil
print(e, pi) #2.718281828459045 3.141592653589793
print(sqrt(10)) #3.1622776601683795
print(floor(3.676757), ceil(3.143943)) # 3 4
3. random 모듈 사용하기
# random 모듈
# 무작위 숫자 데이터 생성
# 리스트에서 무작위로 데이터 선택하거나 섞기
# import
import random
print(random.__doc__)
print(dir(random))
# 무작위 데이터 생성 함수 활용
# randint(start, end) : start ~ end 사이의 범위에서 정수 추출
print(random.randint(1, 10), random.randint(1, 10), random.randint(1, 10)) #4 4 7
print(random.uniform(1.0, 3.0)) #2.93212651913143
num_list = list(range(11,21))
print(num_list) #[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
print(random.choice(num_list)) #18
random.shuffle(num_list) # 무작위로 데이터 섞기
print(num_list) #[12, 17, 14, 16, 18, 19, 15, 20, 11, 13]
num_list = list(range(11, 21))
print(random.choice(num_list)) # 20 #리스트에서 무작위로 데이터 선택
print(random.sample(num_list, 3)) #[14, 16, 13] #num_list에서 3개 무작위로 뽑겠다. # 리스트에서 무작위로 n개의 데이터 선택
'''
import random
# 로또 번호 생성기1 - 중복 허용
# 1~45 범위에서 6개 추출한 후 리스트로 생성
# 매개변수 X, 반환값 O
def make_lotto1():
# 로또번호 리스트 정의
lotto_list = []
for i in range(6):
data = random.randint(1, 45)
lotto_list.append(data)
return print(f' 로또 번호 => {lotto_list} ')
make_lotto1()
make_lotto1()
make_lotto1()
#결과
# 로또 번호 => [29, 44, 44, 11, 44, 13]
# 로또 번호 => [13, 29, 25, 1, 40, 5]
# 로또 번호 => [26, 17, 43, 13, 23, 20]
# 로또 번호 생성기2 - 중복 X
# 1~45 범위에서 6개 추출한 후 리스트로 생성
# 매개변수 X, 반환값 O
def make_lotto2():
num_list = list(range(1, 46)) # 1~45로 구성된 리스트 생성
lotto_list = random.sample(num_list, 6) # 리스트에서 6개 무작위로 추출
return print(f' 로또 번호 => {lotto_list} ')
make_lotto2()
make_lotto2()
make_lotto2()
# 로또 번호 => [29, 25, 34, 43, 6, 31]
# 로또 번호 => [25, 28, 40, 32, 22, 10]
# 로또 번호 => [43, 24, 23, 10, 29, 36]
#Quiz
import random
stList = [ '김철수', '홍길동', '기대주', '이동백',
'하민수', '김영희', '소민주', '신은수' ]
print(f'월 청소 당번은? {random.sample(stList,2)}')
print(f'화 청소 당번은? {random.sample(stList,2)}')
print(f'수 청소 당번은? {random.sample(stList,2)}')
print(f'목 청소 당번은? {random.sample(stList,2)}')
print(f'금 청소 당번은? {random.sample(stList,2)}')
#Quiz
가위바위보 게임을 함수와 random 모듈을 이용하여 만들어 보세요.
- 함수를 호출하면 가위바위보 게임이 실행
- 컴퓨터의 선택은 random 모듈안에서 제공되어지는 함수를 이용하여
'가위', '바위', '보' 중 하나를 무작위로 선택
- 사용자가 입력한 값('가위', '바위', '보' 중 하나)에 따라 결과를 출력
예시) 무승부!, 컴퓨터가 이겼습니다!, 당신이 이겼습니다!
import random
def play_rock_paper_scissors():
choices = ['가위','바위','보']
computer_choice = random.choice(choices)
user_choice = input("가위, 바위, 보 중 하나를 선택하세요:")
print(f'당신의 선택 : {user_choice}')
print(f'컴퓨터의 선택 : {computer_choice}')
if user_choice == '가위' :
if computer_choice == '가위':
print('무승부!')
elif computer_choice == '바위':
print('컴퓨터가 이겼습니다!')
else :
print('당신이 이겼습니다!')
elif user_choice == '바위' :
if computer_choice == '가위':
print('당신이 이겼습니다!')
elif computer_choice == '바위':
print('무승부!')
else :
print('컴퓨터가 이겼습니다!')
elif user_choice == '보' :
if computer_choice('가위'):
print('컴퓨터가 이겼습니다!')
elif computer_choice =='바위':
print('당신이 이겼습니다!')
else :
print('무승부!')
else :
print('잘못된 입력입니다. 가위, 바위, 보 중 하나를 선택하세요.')
play_rock_paper_scissors()
'Python' 카테고리의 다른 글
15. 파일 입출력 (0) | 2024.10.11 |
---|---|
14. 예외처리 (0) | 2024.10.11 |
12. 함수( 반환값, 매개변수, 람다함수, filter(), map()) (3) | 2024.10.08 |
11. 함수 (정의, 매개변수, for문에서의 이용) (1) | 2024.10.08 |
10. 반복문 ( continue, pass, range , for ~, 리스트내포) (2) | 2024.10.07 |