클래스

클래스란 '데이터의 설계도'를 의미한다. 이 설계도에는 데이터가 어떤 특징의 파라미터를 갖는지, 그리고 어떤 기능을 갖고 있는지에 관해 쓰여있다.

 메소드는 일련의 처리를 준비해 놓고 사용하고 싶을 때 편리하게 호출할 수 있게 하기 위해 존재하는 것인데 클래스는 이것보다 좀더 큰 개념이다. 클래스도 마찬가지 이지만 클래스 안에는 변수와 함수가 함께 들어간다.

클래스를 사용하면 좋은점

- 프로그램의 규모가 커졌을 때 의미 있는 집합체 단위로 프로그램을 정리할 수있다.

- 설계도라고 부른 것과 관련 있는데, 설계도가 있다면 양산이 가능하다.

클래스를 만드려면

설계도는 프로그램을 만드는 방법이 적힌 도면이다. 프로그램을 사용하기 위해서는 먼저, 설계도를 따라 제품을 만들어야 한다. 프로그램의 세계에서 설계도에 따라 제작한 실제 제품을 인스턴스(instance)라고 한다. 그리고 인스턴스를 만드는 것을 인스턴스화 라고한다.

클래스의 서식

class 클래스 이름:
    변수의 정의
    함수의 정의

객체

객체란, 한마디로 말하자면 데이터와 메소드가 묶인 것이다. 즉 객체는 메모리에  존재하는 개별 데이터를 가르키는 개념이다.

-객체는 데이터와 기능(메소드)를 가진다.

-데이터형도 데이터와 메소드를 가지므로 객체다.

-클래스는 데이터와 메소드에 대한 설계도이고, 설계도(클래스)로 제품을 제작하면 객체가 된다.

메소드의 인자 self

클래스안에 메소드를 정의할 떄는 일반 함수를 정의할 떄와 다르게 메소드의 첫 번째 인자로 self라는 키워드를 써야한다. 이유는 같은 클래스 안에 정의했어도 메소드 안에서 메소드 밖에 있는 변수를 바로 사용할 수 없기 때문이다. self를 사용하지 않는다면 에러가 뜨는데 에러 내용은 '정의되어 있지 않다'이다. 이는 참조할 수 있는 범위에 정의되어 있지 않다는 뜻이다.

class man:
    def salary(self): // 셀프를 적지 않을 경우 참조오류가 난다.
        retrun "십만원"
        
kim = man()
kim.salary()

//실행결과
'십만원'

하지만 굳이 self가 아닌 다른 문자를 적어 넣어도 되지만 관행적으로 self로 적는다. 이유는 코드를 적은 본인 이외의 다른 사람이 프로그램을 읽거나 나중에 다시 읽을때 혼란스럽기 때문이다.

 

__init__

클래스는 설꺠도고 그 설계도를 바탕으로 인스턴스를 만든다라고 했는데 그런 제품을 만들 때 초기값을 설정하는것이 __init__이다. 서식은 이렇다

class 클래스 이름 :
    def__init__(self, 인자, ...):
        self. 초기 설정하고 싶은 변수 = 인자
        초기 수행 처리
    def 메소드 이름:
    	메소드 처리

위 man 클래스에 __init__을 더하면

class man:
    def __init__(self, bouns):
    	self.bouns = bouns
    def salary(self): // 셀프를 적지 않을 경우 참조오류가 난다.
        salary = 10000 + self.bouns
        retrun salary
        
kim = man(5000)
kim.salary()

//실행결과
15000

이처럼 인스턴스화 할때 초깃값을 전달할 수 있으면 클래스를 더 편하게 사용할 수 있다. 

'프로그래밍 공부 > Python' 카테고리의 다른 글

[Python] 4. 파이썬의 기본(4)  (0) 2020.01.18
[Python] 3. 파이썬의 기본(3)  (0) 2020.01.14
[Python] 2. 파이썬의 기본(2)  (0) 2020.01.12
[Python] 1. 파이썬의 기본(1)  (0) 2020.01.09

에러란?

에러란, 프로그램이 예기치 않게 멈추는 현상이다. 에러가 발생하는 원인은 다양하다

에러의 종류

-파이썬의 구문(문법)이 잘못되었을 때

-실행 중에 데이터를 처리할 수 없을 때

파이썬의 구문(문법)이 잘못되었을 때

에러 메세지로는 SyntaxError(문법에러)가 표시된다. 파이썬의 에러 메세지는 틀렸다고 생각되는 부분을 ^로 보여준다 기계적으로 판단하고 있으므로 반드시 정확하다고 할 순 없지만, 참고할 수는 있다.

실행 중에 데이러를 처리할 수 없을 때

주로 함수 사용중 함수가 정의되어 있지 않아 아무것도 할 수 없다는 에러이다(NameError). Syntax에러와는 달리 실행하기 전까지는 알 수 없다.

여러가지 에러 패턴이 있지만 어떠한 에러라도 가장 밑 줄에 표시된다.

예외란?

실행 중에 데이터를 처리할 수 없어 발생하는 에러이다.

예외 처리

예외가 발생할 만한 곳이나 실제 예외가 발생한 위치에 예외가 발생했을 때 어떤 처리를 수행해야 할지 기술해 준다. 그냥 프로그램이 종료되지 않도록 상황에 맞게 메시지를 출력하거나 로그를 남기도록 하는것이 일반적이다.

try:
    처리 A #예외가 발생할 수 있는 처리
except :
    처리 B

예외가 발생할 수 있는 문장을 try안에 넣고 예외 발생시 except 밑의 처리 B가 실행된다. 예외가 발생하지 않는다면 그대로 처리 A가 실행된다. 예외 처리가 중요한 이유는 프로그램이 예외로 인해 종료되는 것을 방지하는 것이라 볼 수 있다.

예외의 내용 획득

예외가 발생했다면 그 예외를 처리하기 위해 어떠한 예외가 발생했는지 아는 것이 매우 중요한데 Exception as ex 라는 키워드를 사용하여 알 수 있다. ex라는 객체의 args에는 에러 메세지가 들어있는데 print로 이용해 어떤 에러인지 내용을 출력할 수 있다.

try :
    예외가 발생할 수 있는 처리 
except Exception as ex :
    예외가 발생할 경우 실행되는 처리
    print(ex.args) # 발생한 예외의 내용을 출력

예외 Document

파이썬 3

https://docs.python.org/ko/3/library/exceptions.html

파이썬 2

https://docs.python.org/ko/2/library/exceptions.html

'프로그래밍 공부 > Python' 카테고리의 다른 글

[Python] 5. 파이썬의 기본(5)  (0) 2020.01.29
[Python] 3. 파이썬의 기본(3)  (0) 2020.01.14
[Python] 2. 파이썬의 기본(2)  (0) 2020.01.12
[Python] 1. 파이썬의 기본(1)  (0) 2020.01.09

함수란?

여러 가지 처리를 묶어서 하나의 기능으로 정리한 것을 프로그래밍에서는 함수라고 부른다. 프로그램 내에서는 버튼 하나만 누르면 세탁기가 알아서 돌아가듯이 함수가 갖고 있는 기능이 수행된다.

함수를 만드는 방법

함수를 만들 때는 def라는 키워드를 사용한다. 서식은 아래와 같다.

def 함수명():
    처리1
    처리2

함수명은 예약어는 안되며 함수명 뒤에는 반드시 ()를 붙여야 한다.

함수 사용법

함수의 사용은 간단하다. 함수를 호출하면 되는데 함수이름뒤에 ()를 적으면 된다.

def sayhello():
    print('안녕하세요!')
    print('Hello!')
    print('니하오!')

>>>sayhello()
안녕하세요!
Hello!
니하오!

함수가 편리한 이유는 한 번 정의해 두면 나중에 몇 번이고 호출만 하면 같은 처리를 수행할 수 있다는 점이다. 동일한 처리를 반복해서 해야하는 경우 함수를 만들어두고 필요할경우 호출하면 된다.

함수는 데이터를 반환한다.

함수를 호출할 때 데이터를 전달하여 처리를 분기하는 것 이외에 한가지 더중요한 기능이 있는데, 그것은 데이터를 반환하는 기능이다. 처리를 실행한 결과를 함수를 호출한 쪽에 반환해 주는 기능이다. 

def area(radius):
    result = radius * radius * 3.14
    retrun result
    
area(5)

78.5 #출력값.

return은 함수를 호출한 곳에 return의 오른쪽에 쓴 데이터를 반환한다. 위 코드에서는 area함수를 호출하니 78.5가 나왔다. 여기서 함수가 반환하는 값을 리턴 값, 반환 값이라 부른다.

내장함수

내장함수란 프로그래머가 정의하거나 import하지 않아도 사용할 수 있는 기본함수를 말한다.

len() : 인자로 전달한 데이터의 길이나 요소의 수를 반환한다.

len('asdfqwer')

8 #리턴 값

문자열의 문자의 수뿐만 아니라 요소의 수를 셀수도 있다.

arr=['a','b','c','e']
arr.len(arr)

4 #리턴 값

min(), max() : 인자로 전달한 데이터 중에서 가장 큰 이나 작은 값을 반환하는 함수이다.

max(1,2,5,10)
10 #리턴값
min(456,8,789)
8 #리턴값

숫자뿐만 아니라 배열안이나 문자에도 사용할 수 있다. 결과는 숫자 > 알파벳 대문자 > 알파벳 소문자 순으로 크기를 계산한다. 

sorted() : 전달한 데이터를 정렬해 리스트형으로 반환하는 함수다. 정렬 순서는 min(),max()와 같은 숫자 > 알파벳 대문자 > 알파벳 이다.

sorted('asdf')
['a','d','f','s'] #리턴 값
sorted('1Aa')
['1','A','a'] #리턴 값
sorted(1000,2,10,1)
[1,2,10,1000] #리턴 값

print() : 출력을 위해 사용하는 함수.

print('hello world')
hello world

type() : 조사하고 싶은 데이터나 변수를 전달하면 데이터 타입을 반환해 준다.

a=123123
type(a)
<class 'int'>

b='hey!'
type(b)
<class 'str'>

type() 함수는 내가 작성한 코드 뿐만 아니라 남이 작성한 코드를 파악할때도 유용하게 쓰인다.

dir() : 인터렉티브 셀에서 많이 사용하는 내장 함수이다. 어떤 메소드가 있는지 알아볼때 등 사용한다.

 

모든 내장 함수에 대한 정보가 파이썬 공식 사이트에 있다.

파이썬2

https://docs.python.org/ko/2/library/functions.html

 

2. 내장 함수 — Python 2.7.17 문서

2. 내장 함수 The Python interpreter has a number of functions built into it that are always available. They are listed here in alphabetical order. In addition, there are other four built-in functions that are no longer considered essential: apply(), buffer(),

docs.python.org

파이썬3

https://docs.python.org/ko/3/library/functions.html

 

내장 함수 — Python 3.8.1 문서

내장 함수 파이썬 인터프리터에는 항상 사용할 수 있는 많은 함수와 형이 내장되어 있습니다. 여기에서 알파벳 순으로 나열합니다. abs(x) 숫자의 절댓값을 돌려줍니다. 인자는 정수 또는 실수입니다. 인자가 복소수면 그 크기가 반환됩니다. x가 __abs__()를 정의하면, abs(x)는 x.__abs__()를 반환합니다. all(iterable) iterable 의 모든 요소가 참이면 (또는 iterable 이 비어있으면) True 를 돌려줍니다. 다음과

docs.python.org

 

'프로그래밍 공부 > Python' 카테고리의 다른 글

[Python] 5. 파이썬의 기본(5)  (0) 2020.01.29
[Python] 4. 파이썬의 기본(4)  (0) 2020.01.18
[Python] 2. 파이썬의 기본(2)  (0) 2020.01.12
[Python] 1. 파이썬의 기본(1)  (0) 2020.01.09

조건 분기

조건 분기라는 단어는 다소 딱딱한 느낌이 든다. 쉽게 말해 C나 Java의 if문과 같다. 조건을 두고 그 조건과 참이면 해당문장을 실행하고 거짓이면 뛰어넘어 다음문장을 실행하는 것이다.

조건 분기 사용법

파이썬에서 '만약 A하면 B한다'를 표현하기 위해서 역시 if 를 사용한다.

if 조건문:
	실행문

조건문이 참이라면 실행문을 실행하고 거짓이면 실행하지 않고 넘어간다. 실행문 앞에 tap이나 스페이스 네 개를 넣어야 하는데 이것을 인덴트(indent) 라고한다. if문이나 반복문에 반드시 넣어야 하며 입력하지 않을 시 에러가 난다.

if문의 조건에 맞지 않을 때 다른 처리를 실행할려면 else라는 키워드를 사용한다.

if 조건문:
	조건이 ture일때 실행
else :
	조건이 false일때 실행

조건 분기에서는 elif 라는 키워드가 존재하는데, 이는 자바의 else- if와 같다. 즉 조건 분기를 여러차례 사용할 수 있다.

if 조건문1 :
	조건문1이 ture 일때 실행
elif 조건문2 :
	조건문2가 true 일때 실행
else :
	조건문 1,2 둘 다 false일때 실행

조건 분기 즉 if문을 사용시 주의할 점이 한가지 있다. 바로 조건을 쓰는 순서다. 조건을 쓰는 순서에 따라 처리 순서가 바뀔 뿐 아니라 처리 결과도 달라진다. 프로그램은 위에서 차례로 실행된다는 원칙을 따르기 때문인데 조건으로 분기하는 프로그램을 작성할때 조건들의 순서를 잘 고려해야 한다. 또한 중복 사용을 지양해야 하는데 이는 코드해석이 어렵기 때문이다. 이에 여러가지 조건을 쓸 수있다.

elif(A조건 or (B조건 and C조건)):
# 위와 같은 방법으로 조건을 여러개 쓸 수 있다.

반복문

프로그램이 가지는 장점 중 하나는 '많은 데이터를 처리할 수 있다'는 점이다. 파이썬에서는 for 나 while 이라는 키워드로 반복 처리를 할 수 있다.

for

for문의 서식은 다음과 같다.

for 변수 in range(반복하고 싶은 횟수) :
    반복시 동작 문장..
    반복시 동작 문장..
    

for 사용법

range() 괄호 안에 일반적으로는 문자가 들어가지만 문자열형 데이터를 넣는다면, 해당 문자열을 사용해 처리를 반복한다.

word = Hello
for str in word : #str : 변수 word : 반복횟수 
	print(str)
    
#출력문
H
e
l
l
o

문자열 데이터 뿐 만 아니라 리스트형 사전형이 들어갈 수 있다. 하지만 사전형 데이터를 사용할 때는 사전의 키가 들어가는것에 주의해야 한다.

while

반복 처리를 위한 키워드는 for이외에 while도 존재하는데 while은 일반적으로 무한 반복에서 사용한다. 서식은 다음과 같다.

while (조건식)
    반복할 처리..
    반복할 처리..

조건식이 true일 경우 반복하고 false가 될경우 반복을 종료한다. 조건식이 true일 경우에는 무한이 반복하는데 이때 반복을 종료시켜주는 키워드가 break이다. for문에서 동일하게 break를 사용할 수있다. 또한 반복문 도중에 처리를 넘기고 싶을 때는 continue 키워드를 사용한다.

'프로그래밍 공부 > Python' 카테고리의 다른 글

[Python] 5. 파이썬의 기본(5)  (0) 2020.01.29
[Python] 4. 파이썬의 기본(4)  (0) 2020.01.18
[Python] 3. 파이썬의 기본(3)  (0) 2020.01.14
[Python] 1. 파이썬의 기본(1)  (0) 2020.01.09

+ Recent posts