반응형

(PYTHON)파이썬 from 모듈 import 사용법

 

(from 모듈 import) 방식과 (import 모듈) 방식의 차이

# 원네모계산.py
pi = 3.14   #전역변수
e = 2.71    #전역변수

def info() :
    print("원네모계산.py 파일입니다.")

class Circle :  #클래스 Circle 정의
    반지름 = 0  #멤버변수 반지름
    def __init__(self, radius) :    #객체 생성시 자동실행되는 __init__함수
        self.반지름 = radius    #객체.반지름 변수에 radius 파라미터값 입력
    def 넓이구하기(self) :  #멤버함수 정의
        area = self.반지름 * self.반지름 * 3.14 #area변수 정의 및 객체.반지름 값 이용 계산
        print("원의 넓이: ", area)  #객체.멤버함수 내에 지역변수 area 호출

class Square :
    크기 = 0    #멤버변수 크기
    def __init__(self, size) :  #객체 생성시 자동실행되는 __init__함수
        self.크기 = size    #객체.크기 변수에 size 파라미터값 입력
    def 넓이구하기(self) :  #멤버함수 정의
        area = self.크기 * self.크기    #area벼누 정의 및 객체.크기 값 이용 계산
        print("네모 넓이: ",area)

>>>#import 방식 (as 별명)
>>>import 원네모계산 as 계산	#import 모듈 (별명 계산)

>>>print(계산.pi)	#모듈의 전역변수 호출
3.14
>>>print(계산.e)	#모듈의 전역변수 호출
2.71

>>>계산.info()	#모듈명.info함수 호출
원네모계산.py 파일입니다.

>>>c1 = 계산.Circle(5)	#모듈명.Circle클래스(파라미터)로 생성된 클래스를 객체 c1에 입력
>>>c1.넓이구하기()	#클래스객체c1.넓이구하기() 함수 호출
원의 넓이:  78.5	

>>>s1 = 계산.Square(5)	#모듈명.Square클래스(파라미터)로 생성된 클래스를 객체 s1에 입력
>>>s1.넓이구하기()	#클래스객체s1.넓이구하기() 함수 호출
네모 넓이:  25
>>>#from 원네모계산 import 일부클래스
>>>from 원네모계산 import Circle	#from 모듈에서 Circle 클래스만 import 함

>>>c1 = Circle(5)	#모듈명없이 Circle클래스(파라미터) 생성해서 객체 c1에 입력
>>>c1.넓이구하기()
원의 넓이:  78.5

>>>s1 = Square(5)	#에러발생. Square 클래스는 import안되서 정의되지 않음
>>>s1.넓이구하기()	#에러발생. Square 클래스는 import안되서 정의되지 않음

>>>print(pi)	#에러발생. 전역변수 import안되서 정의되지 않음
>>>print(e)	#에러발생. 전역변수 import안되서 정의되지 않음

>>>info()	#에러발생. 함수 import안되서 정의되지 않음
>>>#from 원네모계산 import *(전체)
>>>from 원네모계산 import *	#from으로 모듈명에 모든것* import

>>>c1 = Circle(5)	#클래스 호출시 모듈명 없이 호출
>>>c1.넓이구하기()
원의 넓이:  78.5

>>>s1 = Square(5)	#클래스 호출시 모듈명 없이 호출
>>>s1.넓이구하기()
네모 넓이:  25

>>>print(pi)	#전역변수 호출시 모듈명 없이 호출
3.14
>>>print(e)	#전역변수 호출시 모듈명 없이 호출
2.71

>>>info()	#함수 호출시 모둘명 없이 호출
원네모계산.py 파일입니다.

 

 

(PYTHON)파이썬 전체보기

 

'(PYTHON)파이썬' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형
반응형

(PYTHON)파이썬 class 클래스 활용

 

클래스 정의 방법

#클래스 정의 형식
class 클래스이름 :	#클래스이름의 첫글자는 대문자로 쓰는게 일반적
	변수1 = 기본값	#멤버변수1
	변수2 = 기본값	#멤버변수2
	def 멤버함수1(self, 파라미터, 파라미터...)	#멤버함수1 정의. 멤버함수 첫 파라미터는 반드시 self를 입력)
	def 멤버함수2(self, 파라미터, 파라미터...)	#멤버함수2 정의
#클래스 선언 예시
class Student :
	이름 = None	#멤버변수에 기본값 None 입력
	주소 = None
	학교 = None
	학년 = None
	학생전화번호 = None
	부모전화번호 = None
	def 정보등록(self, 이름, 주소, 학생전화번호, 부모전화번호)
	def 주소정보(self)

 

 

클래스 생성 및 호출 예제

>>> class Person :	#클래스 생성
	name = None	#멤버변수
	age = 0
	def 정보입력(self, pName, pAge) :
		self.name = pName	#파라미터로 받은 값을 객체.멤버변수에 넣어줌
		self.age = pAge
	def 자기소개(self) :
		print("안녕")
		print("나는 ", self.name," 이야", self.age, "살 이야")	#객체.멤버변수를 호출

>>> p1 = Person()	#클래스 생성해서 클래스객체 p1에 입력
>>> p1.정보입력("김이름", 20)	#클래스의 "정보입력"함수에 "김이름", 20 파라미터를 전달 및 호출
>>> p1.자기소개()	#클래스의 "자기소개"함수를 호출
안녕
나는  김이름  이야 20 살 이야

>>> print(p1.name)	#클래스객체p1의 name 멤버변수 호출
김이름
>>> print(p1.age)	#클래스객체p1의 age 멤버변수 호출
20

 

 

__init__ 초기화 함수 정의하기

>>> class Person :	#클래스 생성
	name = None	#멤버변수
	age = 0
	def __init__(self, initName="기본이름", initAge=100) :	#__init__ 멤버함수는 클래스객체가 생성될때 자동실행 됨
		print("클래스 객체가 생성됩니다")	#객채 생성을 알려줌
		self.name = initName	#객채 생성시 파라미터에 정의된 "기본이름"을 객체.멤버변수에 입력
		self.age = initAge	#객채 생성시 파라미터에 정의된 100을 객체.멤버변수에 입력
	def 정보입력(self, pName, pAge) :
		self.name = pName	#파라미터로 받은 값을 객체.멤버변수에 넣어줌
		self.age = pAge
	def 자기소개(self) :
		print("안녕")
		print("나는 ", self.name," 이야", self.age, "살 이야")	#객체.멤버변수를 호출

>>> p2 = Person()	#클래스를 생성해서 p2객체에 넣음
클래스 객체가 생성됩니다	#__init__ 멤버함수의 print() 함수가 작동
>>> p2.자기소개()	#클래스객체p2의 자기소개() 함수를 호출
안녕
나는  기본이름  이야 100 살 이야	#__init__ 멤버함수에서 정의된 기본이름, 100이 출력
>>> print(p2.name)	#클래스객체p2의 멤버변수 name 호출
기본이름
>>> print(p2.age)	#클래스객체p2의 멤버변수 age 호출
100
>>> 
>>> p2.정보입력("박이름", 30)	#클래스객체p2의 정보입력() 함수를 "박이름", 30 파라미터로 호출
>>> p2.자기소개()	#클래스객체p2의 자기소개()함수를 호출
안녕
나는  박이름  이야 30 살 이야	#파라미터로 전달된 "박이름", 30이 출력
>>> print(p2.name)	#클래스객체p2의 멤버변수 name 호출
박이름
>>> print(p2.age)	#클래스객체p2의 멤버변수 age 호출
30

 

 

(PYTHON)파이썬 전체보기

 

'(PYTHON)파이썬' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형
반응형

(PYTHON)파이썬 지역변수 전역변수 global 키워드

 

지역변수

>>>def func1() :
	var = 10	#지역변수 var는 10
	print("함수1:", var)
    
>>>func1()	#func1() 호출하여 "함수1: 10" 출력
함수1:10

>>>print("출력1:", var)	#에러 발생. 지역밖에서 지역변수 호출불가. var 정의되지 않았음.
>>> def func1(param):	#함수의 파라미터로 전달된 변수도 지역변수(param)
	var = 10 * param	#지역변수(var)
	print("함수1:", param)

>>> funcl(5)
함수1: 50

>>> print("출력1:", var)	#에러발생. var 정의되지 않았음.

>>> print("출력2:", param)	#에러발생. param 정의되지 않았음

 

 

전역변수

>>> var = 100	#전역변수 var
>>> 
>>> def func1():
	print("함수1:", var)	#지역변수가 없기때문에 전역변수 호출

>>> func1()	#지역변수가 없는 func1()함수 호출
함수1: 100

>>> print("출력1:", var)	#전역변수 var 출력
출력1: 100
>>> var = 200	#전역변수 var 정의
>>> 
>>> def func1():
	var = 20	#지역변수 var 정의
	print("함수1:", var)	#지역변수가 잇기에 지역변서 호출

>>> func1()	#지역변수가 있는 func1()함수 호출
함수1: 20
>>> 
>>> print("출력1:", var)	#전역변수 var 호출
출력1: 200

 

 

global 키워드를 사용하여 지역(함수) 내에서 전역변수값 수정

>>> var = 300	#전역변수 var 정의
>>> 
>>> def func1():
	global var	#전역변수 var를 지역에서 사용할 것으로 정의
	var = 30	#var는 지역변수가 아닌 global var로 사용정의된 전역변수. 전역변수에 30입력
	print("함수1:", var)	#global var로 정의한 전역변수 호출

>>> func1()	#func1()함수 호출
함수1: 30
>>> 
>>> print("출력1:", var)	#전역변수 var 호출. func1()함수에서 전역변수 var=30으로 변경됨.
출력1: 30

 

 

(PYTHON)파이썬 전체보기

 

'(PYTHON)파이썬' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형

'(PYTHON)파이썬' 카테고리의 다른 글

(PYTHON)파이썬 class 클래스 활용  (0) 2020.08.14
(PYTHON)파이썬 import 모듈  (0) 2020.08.14
(PYTHON)파이썬 예외 처리  (0) 2020.08.11
반응형

(PYTHON)파이썬 import 모듈

 

모듈 import 방법

#1. 모듈 import 방법
import 모듈이름

# 예제
import math	#math 수학 모듈 임포트
import turtle	#turtle 그리기 모듈 임포트


#2. import된 모듈에 포함된 함수 사용하기
import 모듈이름
모듈이름.함수이름(파라미터)

# 예제
import turtle
turtle.forward(300)	#모듈이름.함수이름(파라미터값)
turtle.right(90)	#모듈이름.함수이름(파라미터값)
turtle.forward(300)	#모듈이름.함수이름(파라미터값)


#3. 모듈에 별명 붙이기
import 모듈이름 as 별명
별명.함수이름(파라미터)

# 예제
import turtle as 거북이
거북이.forward(300)	#별명.함수이름(파라미터값)
거북이.right(90)	#별명.함수이름(파라미터값)
거북이.forward(300)	#별명.함수이름(파라미터값)

 

 

내가 만든 함수를 모듈로 import 하기

# 원_계산.py (내가 만드는 함수모듈)

def 원의넓이(r) :
	결과 = r * r * 3.14
	print("원의 넓이는: ", 결과)

def 원의둘레(r) :
	결과 = r * 2 * 3.14
	print("원의 둘레는: ", 결과)
   
#위에 "원_계산.py" 파일이 이 py파일과 같은 폴더에 있어야 함(또는 파이썬 설치 폴더의 PATH된 폴더에 있어야함)

import 원_계산	#내가 만든 py 파일을 모듈로 임포트

원_계산.원의넓이(10)	#모듈이름.함수명(파라미터값)
원_계산.원의둘레(10)	#모듈이름.함수명(파라미터값)

 

 

(PYTHON)파이썬 전체보기

 

'(PYTHON)파이썬' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형
반응형

(PYTHON)파이썬 예외 처리

 

예외 상황을 처리하는 문법

try :
	명령문
except :
	예외상황(에러) 발생 시 실행되는 명령들
finally :	#생략가능
	예외가 발생하든 안하든 실행되는 명령들

 

예외 처리 예제

try :
	age = int(input("나이 입력 : "))	#input 받은문자를 숫자로 변경
	print("입력한 나이는 %d 입니다." % age)	#예외상황 발생하지 않을 때 출력
except :
	print("예외상황 발생")	#예외상황 발생 시 출력
finally :
	print("예외상황 발생하던 안하던 실행")	#무조건 출력

나이 입력 : 20살
예외상황 발생	#"20살"에 문자가 있어 예외상황 발생
예외상황 발생하던 안하던 실행
>>> 
나이 입력 : 20
입력한 나이는 20 입니다.	#예외상황이 발생하지 않음
예외상황 발생하던 안하던 실행

 

 

예외상황(에러상황)에 따른 예외처리 문법

try :
	명령문
except 예외상황1 :
	예외상황1(에러코드) 발생할 경우 명령문
except 예외상황2 :
	예외상황2(에러코드) 발생할 경우 명령문

 

 

여러가지 예외상황(에러)에 따른 예외처리 예제

try :
    입력값 = input("100을 n으로 나눈 목구하기, 정수 n입력: ")
    n = int(입력값)
    m = 100 / n
    print("100을 %d로 나눈 몫: %d" % (n,m))
    print("입력한 숫자의 두번째 자리 숫자: %d" % 입력값[1])
except ValueError :
	print("예외상황 발생: 정수 int 변환 오류")
except ZeroDivisionError :
	print("예외상황 발생: 0으로 나눈 오류")
except IndexError :
	print("예외상황 발생: 인덱스 범위 오류")

100을 n으로 나눈 목구하기, 정수 n입력: 3.14	#int형 변환 시 오류
예외상황 발생: 정수 int 변환 오류
>>> 
100을 n으로 나눈 목구하기, 정수 n입력: 0	#100을 0으로 나눠 오류
예외상황 발생: 0으로 나눈 오류
>>>
100을 n으로 나눈 목구하기, 정수 n입력: 4	#정상 출력 중 한자리수라 "입력값[1]"에서 오류
100을 4로 나눈 몫: 25
예외상황 발생: 인덱스 범위 오류	#한자리수라 "입력값[1]"이 인덱스에 존재하지 않음

 

파일이 존재하지 않을 때 예외처리

try :
    파일읽기 = open("D:\\없는파일.txt", "r")	#존재하지 않는 파일 읽기
    for 임의변수 in 파일읽기.readlines() :
        print(임의변수, end="")
    파일읽기.close()
except FileNotFoundError :
	print("예외상황 발생: 파일이 존재하지 않음")
finally :
    print("무조건 실행")

예외상황 발생: 파일이 존재하지 않음
무조건 실행

 

 

(PYTHON)파이썬 전체보기

 

'(PYTHON)파이썬' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형

'(PYTHON)파이썬' 카테고리의 다른 글

(PYTHON)파이썬 import 모듈  (0) 2020.08.14
(PYTHON)파이썬 파일 읽기 쓰기  (0) 2020.08.11
(PYTHON)파이썬 딕셔너리 Dictionary  (0) 2020.08.09