함수 Import 방법 / 외장함수
2022. 10. 9. 12:35ㆍDev.Program/Python & R
728x90
======== test8.py
207p
모듈 / 패키지
# test8.py # p207 # 모듈 : 변수, 함수, 클래스, 모아놓은 파일 # 패키지 : 모듈을 모아서 저장하는 폴더 # sum() 두 수를 받아서 합을 구해서 리턴 def sum(a, b): return a + b |
- cmd 창에서 함수를 호출해보자!
test8.py 의 위치 : D:\workspace_py\py1\test8.py
cmd 창 열기
> d:
- D드라이브로 이동
> cd D:\workspace_py\py1
- 파일 들어있는 위치로 이동
> dir
- 안에 있는 거 확인
> python
- 파이썬 창으로 이동
> sum 함수 찾아보기
- 이렇게 하면 함수 못찾고 오류남!
> 파일 임포트 해오기
- test8 파일을 가져오겠다는 명령(모듈 파일)
> 다시 sum 함수 호출
- test8.sum() 으로 호출!
- 이제 결과값 잘 나온다
# safe_sum() 함수 정의 두 수를 받아서 # type() 타입이 틀리면 "더할 수 없는 데이터입니다" 리턴 # 같으면 두 수 더해서 리턴 def safe_sum(a, b): if type(a) != type(b): return "더할 수 없는 데이터입니다" else: return a + b |
- 타입이 다를 때와 같을 때 출력창이 다르다!
< 함수 Import 방법 >
# from 모듈이름(파일이름) import 함수이름 # from test8 import sum # from test8 import sum. safe_sum # from test8 import * # 모든 함수 import # print(sum(1, 2)) # 3 # print(safe_sum(1, 2)) # 3 |
# import 모듈이름(파일이름) as 약자 # import test8 as t8 # print(t8.sum(1, 2)) # 3 # print(t8.safe_sum(1, 2)) # 3 |
# Math 클래스 slov() 원면적 함수 PI = 3.141592 class Math: def solv(self, r): return PI*(r**2) print(PI) # 객체 생성 m = Math() # solv() 함수 호출 print(m.solv(5)) |
- 우리가 테스트로 출력한 게 cmd 창에도 나온다
# 테스트용으로 파일 실행할 때 동작 # import 할 때는 동작안됨 if __name__=="__main__": print(PI) # 객체 생성 m = Math() # solv() 함수 호출 print(m.solv(5)) |
- 이제 아무것도 안뜬다!
- if __name__=="__main__":
- 이거 기억 안나면 그냥 주석처리하깈ㅋㅋㅋ
======== test9.py
- py1_1 Package 만들기
- py1_1 밑에 py1_2 Package 만들기
======== py1_2 패키지 안에 ptest.py 만들기
# ptest.py def prn(): print("py1_1 패키지 py1_2 패키지 prn() 함수") |
< test9.py >
# test9.py # 패키지 : 파이썬 파일을 계층적으로 관리, 폴더 # ex) 폴더.폴더.파일이름 # ptest.py 파일 가져오기 # prn() # ptest.py 안에 있는 prn() 함수 호출 못함! import py1.py1_1.py1_2.ptest py1.py1_1.py1_2.ptest.prn() import py1.py1_1.py1_2.ptest as pt # 가장 많이 쓰임 pt.prn() from py1.py1_1.py1_2.ptest import prn prn() |
< 다른 파일의 함수 호출하기 >
# test8.py sum() safe_sum() 호출 import py1.test8 print(py1.test8.sum(10, 20)) print(py1.test8.safe_sum('a', 40)) import py1.test8 as t8 print(t8.sum(50, 60)) print(t8.safe_sum(70, 80)) from py1.test8 import sum, safe_sum print(sum(90, 100)) print(safe_sum('a', 'b')) |
< 외장함수 >
247p
< random() >
# 외장함수 p247 : import 해야만 쓸 수 있는 함수 # 랜덤함수 random() import random as r print(r.random()) print(r.randint(1, 10)) # 1 에서 10 사이의 값을 랜덤으로 뽑아옴 |
- 랜덤하게 숫자 값 뽑아옴
< webbrowser >
# webbrowser import webbrowser webbrowser.open("http://www.naver.com") |
- 네이버 창 열림!
======== py2 패키지 만들기
======== test1.py 만들기
확장성 있게 공부하고 싶다면 파이썬을 하기!(R은 그런 게 없음 : 그냥 분석만 하는 거면 r)
- File | Settings | Project: workspace_py | Python Interpreter
- numpy 검색하고
- Install 설치하기
- 설치 완료 시 success 뜸!
# 데이터 분석 # numpy pandas 설치 # numpy : 파이썬에서 과학연산을 쉽고, 빠르게 하는 패키지 # : 다차원 배열을 효과적으로 관리 # www.numpy.org import numpy as np # 배열 생성 data1 = [0, 1, 2, 3, 4, 5] # numpy 배열객체 a1 = np.array(data1) print(a1) print(a1.dtype) # data1 = [0, 1, 2, 3, 4, 5] int32 정수형 print(a1.dtype) # data1 = [0, 1, 2, 3, 4, 5.5] float64 실수형 |
- 정수형
- 실수형
a2 = np.array([[1,2,3], [4,5,6], [7,8,9]]) print(a2) |
- 파이썬에는 없는 배열형태로 나타남
a3 = np.arange(0, 11, 2) print(a3) print(a3.shape) # 1차원 출력 |
- shape() 6개 나옴!
a4 = np.arange(12).reshape(4, 3) # 4행 3열 print(a4) print(a4.shape) # (4, 3) |
- 4행 3열로 출력( 다시 차원을 바꾸겠다 - reshape() )
# 1 ~ 10 까지 10 개 일정한 간격으로 데이터 만듦 a5 = np.linspace(1, 10, 10) # 1에서 10 까지 10개 만들겠다 print(a5) # 0 으로 10개 만듦 a6 = np.zeros(10) print(a6) # 1 로 10개 만듦 a7 = np.ones(10) print(a7) |
# 타입 변환 문자 => float str_a1 = np.array(['1.5', '5.4', '9', '8']) num_a1 = str_a1.astype(float) print(num_a1) |
# 난수 발생 ran_a1 = np.random.randint(10, size=(3,4)) print(ran_a1) |
- 3행 4열 형태로 가져옴
# 배열 연산 arr1 = np.array([10, 20, 30, 40]) arr2 = np.array([1, 2, 3, 4]) print(arr1 + arr2) print(arr1 > 20) |
# 통계 연산 arr3 = np.arange(5) print(arr3) # [0 1 2 3 4] print(arr3.sum()) # 합계 10 print(arr3.mean()) # 평균 2.0 print(arr3.min()) # 최소값 0 print(arr3.max()) # 최대값 4 print(arr3.std()) # 표준편차 1.4142135623730951 print(arr3.var()) # 분산 2.0 |
728x90
'Dev.Program > Python & R' 카테고리의 다른 글
여러가지 메서드 (0) | 2022.10.09 |
---|---|
1차원 테이블 / 2차원 테이블 (0) | 2022.10.09 |
다중 상속 / 함수 / 예외처리 / 파일 읽고 쓰기 (0) | 2022.10.09 |
클래스 (0) | 2022.10.09 |
반복문(while,for) / 일반함수 / 람다 / map (1) | 2022.10.08 |