Module
클래스, 함수, 변수와 같은 여러가지 코드를 하나로 모아놓은 파일
한번 제작후 여러번 사용이 가능하다.
다른 개발자가 만들어 놓은 파일을 가져와서 사용할 수 있다.
▶ Module내 함수 호출
import 모듈명
모듈명.함수명()
▶ Module내 특정 함수 사용
from 모듈명 import 함수명
함수명()
▶ Module의 단축명 지정
import 모듈명 as 단축명
단축명.함수명()
내장함수
print(), del(), type()과 같이 아무런 설정 없이 바로 사용할 수 있는 파이썬 자체에 내장되어 있는 함수.
모듈 불러오기
▷ great1을 호출하여 사용한다.
#great1.py
from great1 import hello3
from math import sqrt
#great4.py
import great1
import math
print(great1.hello1("이원준"))
print(math.sqrt(100))
import great1 as gr
import math as m
print(gr.hello2("이은혜"))
print(m.sqrt(100))
# 해당 함수만 가져온다.
from great1 import hello3
from math import sqrt
print(hello3("전혜리"))
print(sqrt(100))
# * : 그 안의 모든것을 가져온다.
from great1 import *
from math import *
print(hello2("이은혜"))
print(sqrt(100), sin(1))
# 이원준 님 안녕하세요.
# 10.0
# 이은혜 님 반갑습니다.
# 10.0
# 전혜리 님 만나서 반가워요.
# 10.0
# 이은혜 님 반갑습니다.
# 10.0 0.8414709848078965
▶ 모듈안의 클래스를 호출할 때
pi = 3.141592
class Math :
def circle_area(self, r) :
return pi * (r ** 2)
def add(a, b):
return a+b
if __name__ == "__main__" 의 의미
직접 파일을 실행 했을 때 if문 다음 의 문장이 실행된다.
▷ 예시
아래와 같은 경우 md2 모듈을 실행 시킬 때 10~20의 소수만 출력되고 자연수를 입력하여 소수를 판별하지 않는다.
#md1
def isPrime(n):
for i in range(2, n):
if n % i == 0 :
return False
return True
if __name__ == "__main__" :
n = int(input("자연수 입력:"))
if isPrime(n) :
print(f"{n}은(는) 소수임")
else :
print(f"{n}은(는) 소수가 아님")
#md2
import md1
print("10~20 사이의 소수 : ")
for i in range(10, 21) :
if md1.isPrime(i) :
print(i)
math Module
▶ math 주요 메서드
내장 함수명 | 기능 |
math.floor() | 소수점 이하를 절삭함 |
math.ceil() | 무조건 올림 |
math.factorial() | 팩토리얼 값을 구함 |
math.sin() | 사인 값을 구함(라디안 단위) |
math.cos() | 코사인 값을 구함(라디안 단위) |
math.tan() | 탄젠트 값을 구함(라디안 단위) |
math.pow() | 거듭제곱 값을 구함 |
math.log10() | 밑이 10인 로그 값을 구함 |
math.pi | 3.141592653589793 (모듈에서 정의된 상수임) |
import math
pi = math.pi
print(math.sin(pi/2))
print(math.cos(pi))
print(math.tan(pi*2))
print(math.pow(2, 4))
print(math.sqrt(49))
print(math.log10(100))
# 1.0
# -1.0
# -2.4492935982947064e-16
# 16.0
# 7.0
# 2.0
random Module
▶ 메서드
내장 함수명 | 기능 |
random.random() | 0.0 이상 1.0미만 실수(float)을 반환한다. |
random.randrange(a, b) random.randrange(a) |
a이상 b미만의 정수(int)를 반환합니다. 0이상 b미만의 정수(int)를 반환합니다. |
random.randint(a, b) | a이상 b이하의 정수를 반환합니다. |
random.choice(seq) | seq의 데이터 중 무작위로 하나를 뽑아 반환합니다. |
random.shuffle(seq) | seq의 데이터 순서를 무작위로 바꿔줍니다. |
random.uniform(a, b) | a이상 b이하의 실수(float)를 반환합니다. |
random.sample(seq or set, N) | seq에서 무작위로 Unique한 값 N개를 반환합니다. N이 seq의 데이터 수보다 많을 경우 에러 발생. |
import random
a = []
b = []
c = []
toss = ["가위", "바위", "보"]
fruit = ["사과", "바나나", "오렌지"]
for i in range(3) :
a.append(random.random())
print(a)
# [0.6945609424805286, 0.21925246044656055, 0.2644268460571151]
while len(b) < 5 :
num = random.randrange(1, 10) # 이상, 미만
if num % 2 == 1 :
b.append(num)
print(b)
# [9, 7, 5, 5, 1]
while len(c) < 5 :
num = random.randint(1, 6) #정수형을 반환해준다 이상, 이하
if num % 2 == 1 :
c.append(num)
print(c)
for i in range(5) :
print(random.choice(toss)) # 랜덤하게 선택해준다.
for i in range(3) :
random.shuffle(fruit) # 리스트의 원본을 랜덤하게 섞는다.
print(fruit)
▶ 주사위게임
import random
q = 'y'
count = 0
meWin = 0
meLose = 0
same = 0
while q == "y" :
me = random.randrange(1, 7)
cpu = random.randrange(1, 7)
print(f"{count}번째 게임")
count += 1
if me > cpu :
meWin += 1
print(f"you = {me} : cpu = {cpu} 당신이 승리햇습니다. ")
elif me < cpu :
meLose += 1
print(f"you = {me} : cpu = {cpu} 당신이 패배했습니다. ")
else :
same += 1
print(f"you = {me} : cpu = {cpu} 무승부입니다. ")
print(f"{meWin}승 {meLose}패 {same}무")
if meWin == 0 :
print(f"현재 승률 0%")
else :
print(f"현재 승률 {meWin / count * 100} %")
q = input("다시 게임을 시작 하시겠습니까? (계속하려면 y입력): ")
# 0번째 게임
# you = 5 : cpu = 5 무승부입니다.
# 0승 0패 1무
# 현재 승률 0%
# 다시 게임을 시작 하시겠습니까? (계속하려면 y입력): y
# 1번째 게임
# you = 6 : cpu = 3 당신이 승리햇습니다.
# 1승 0패 1무
# 현재 승률 50.0 %
# 다시 게임을 시작 하시겠습니까? (계속하려면 y입력):
▶ 가위바위보 게임
import random
q = "y"
game = ["가위", "바위", "보"]
count = 0
win = 0
lose = 0
while q == "y" :
me = random.choice(game)
cpu = random.choice(game)
count += 1
print(f"총 게임 횟수 {count}회")
if (me == "가위" and cpu == "보") or (me == "바위" and cpu == "가위") or (me == "보" and cpu == "바위") :
win +=1
print(f"당신 : {me}, cpu : {cpu} : 당신이 승리했습니다.")
elif (cpu == "가위" and me == "보") or (cpu == "바위" and me == "가위") or (cpu == "보" and me == "바위") :
lose +=1
print(f"당신 : {me}, cpu : {cpu} : 당신이 패배했습니다.")
else :
print(f"당신 : {me}, cpu : {cpu} : 무승부입니다.")
if win == 0 :
print(f"현재 승률 0%")
else :
print(f"현재 승률 {win / count * 100} %")
q = input("다시 게임을 시작 하시겠습니까? (계속하려면 y입력): ")
datetime module
날짜 및 시간과 관련된 데이터를 제공한다.
▶ 주요 메서드, 기능.
내장 함수명 | 설명 |
datetime.now() | 현재 년, 월, 시, 분, 초, 마이크로초를 반환한다. |
.year | 연도 |
.moth | 월 |
.day | 일 |
.hour | 시 |
.minute | 분 |
.second | 초 |
.microsecond | 마이크로초(백만분의 일초) |
.weekday() | 요일 반환(0:월 ~ 6:일) |
.strftime() | 문자열 반환 |
.date() | 날짜 정보만 가지는 date클래스 객체 반환 |
.time() | 시간 정보만 가지는 time 클래스 객체 반환 |
.sleep(n) | n초 동안 시간을 정지함. |
1ctime() | 인수 시간값을 현지 시간대 기준 "월 일 시 : 분 초 연" 형식으로 변환 |
time.tm_year | 객체의 연/월/일/시/분/초/요일 속성 |
.localtime() | 인수 시간값을 현지 시간대 기준 time 데이터로 변환 |
gmtime() | 인수 시간값을 GMT 기준 time 데이터로 변환 |
time() | 현재 unix timestamp를 소수로 반환. |
기호 | 의미 | 예 |
%Y | 네 자리 연도 | ..., 2020, 2021, 2022, ...., 9999 |
%y | 두 자리 연도 | 00, 01, ...., 99 |
%m | 월 | 01, 02, ...., 12 |
%d | 일 | 01, 02, ...., 31 |
%A | 요일 | Sunday, Monday, ...., Saturday |
%a | 생략 요일 | Sun, Mon, ...., Sat |
%H | 시(24시 기준) | 00, 01, ...., 23 |
%I | 시(12시 기준) | 01, 02, ...., 12 |
%p | AM 또는 PM | AM, PM |
%M | 분 | 00, 01, ...., 59 |
%S | 초 | 00, 01, ...., 59 |
OS module
운영체제와 관련된 기능을 가진 모듈
새로운 폴더를 만들거나 폴더 내부 파일을 확인한다.
파이썬 모듈(패키지)의 분류
▶ 표준 모듈
파이썬 기본으로 제공되는 모듈.
▶ 외부 모듈
- 서드파티 모듈 : SW회사 등 기관에서 배포한 것
- 사용자 정의모듈
서드파티 모듈 설치
서드파티 모듈을 이용하려면, 해당 모듈을 다운받아 설치해야한다.
▶ pip(the package installer for Python)
PiPy 패키지들 설치 프로그램
파이썬 설치하면 기본으로 설치된다.
▶ 설치 명령어
명령어 | 설명 |
pip install 모듈이름 | 모듈이름 설치 |
pip install --update 모듈이름 | 모듈이름의 최선버전 업그레이드 |
pip uninstall 모듈이름 | 설치된 모듈이름 삭제 |
'Python' 카테고리의 다른 글
[Python] CRAWLING - BeautifulSoup (0) | 2022.09.13 |
---|---|
[python] WEB CRAWLING (1) | 2022.09.08 |
[python] Package (0) | 2022.09.06 |
[python] 예외처리 (0) | 2022.09.06 |
[python] Class (0) | 2022.09.03 |