반응형

파이썬 클래스 사용법



클래스에 대해 알아보겠다.


클래스는 무엇인가 DATA + 함수 즉 자료와 행동 두 가지를 모두 묶어서 관리 할 수 있는 사용자 자료 형이다.


간단한 예를 통해 이해를 도와 보자


더하기 예제

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

a = 1

b = 2

sum = a + b

print sum

==========================================================

결과 :  

3

==========================================================


더하기 하는 예제 이다 여기서 1,2 말고 다른 값도 더하고 싶다 그럼 어떻게 하나


==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

a = 1

b = 2

c = 3

d = 4

e = 5

f = 6

sum = a + b

print sum

sum = c + d

print sum

sum = e + f

print sum

==========================================================

결과 :  

3

7

11

==========================================================


이렇게 변수를 늘리고 연산 작업을 계속 늘여 써야 가능 할텐데 우린 함수라는 것을 배웠으니


다음과 같이 처리가 가능 할 것이다.


==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


def sum(a, b) :

    print a+b


sum(1,2)

sum(3,4)

sum(5,6)

==========================================================

결과 :  

3

7

11

==========================================================


연산 작업은 함수로 만들어서 처리가 가능 하다 하지만


더한 값을 또 더하고 싶다면 어떻게 하나?? 함수를 수정해 더한 값을 저장 하게 끔 해야 한다.


==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


def sum(a, b) :

    retval = a + b

    print retval

    return retval


a = sum(1,2)

b = sum(a,1)

c = sum(a,b)

==========================================================

결과 :  

3

4

7

==========================================================


위와 같이 값이 관리 될 수 있도록 하면서 함수를 사용하고 싶을 때는 클래스를 사용한다.


==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


class calc :

    lastValue = 0


    def sum(self,a ):

        self.lastValue = self.lastValue + a

        print self.lastValue


c = calc()

c.sum(1)

c.sum(2)

c.sum(5)

==========================================================

결과 :  

1

3

8

==========================================================


위와 같이 클래스만 관리하면 따로 함수도 만들 필요도 없고 변수도 클래스 안에서 모두 관리 가능하다.


다음 클래스 설명 가기 ====> click

반응형

'IT > Python' 카테고리의 다른 글

[Python]클래스(3)  (0) 2016.11.02
[Python]클래스 (2)  (0) 2016.09.16
[Python]파일(File) 사용법  (0) 2016.09.16
[Python]사용자 입력  (0) 2016.09.16
[Python] 함수 (3)  (0) 2016.09.16
반응형

파이썬 파일 사용법



이번 강좌는 파일 생성, 읽기, 쓰기에 대해 알아보도록 하겠다.


파일 생성

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


file = open("newfile.txt", 'w')

file.close()

==========================================================

결과 :  

==========================================================


프로그램을 실행 한 곳에 newfile.txt라고 파일이 생성 된 것을 확인 해 볼 수 있다.


open은 파일을 생성, 읽기, 추가 등을 할 수 있다.


open( 파일명, 모드 ) 모드는 r(읽기), w(쓰기), a(추가) 


경로 지정 파일 생성

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


file = open("c:\\newfile.txt", 'w')

file.close()

==========================================================

결과 :  

==========================================================


c:\\ 경로에 newfile.txt이 생성 된것을 확인 할 수 있다.



파일 쓰기

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


file = open("c:\\newfile.txt", 'w')

file.write("안녕하세요 파일씨~\n")

file.write("반가워요")

file.close()

==========================================================

결과 :  

==========================================================


c:\\ 경로 newfile.txt에 "안녕하세요 파일씨~\n", "반가워요" 2줄의 문장이 입력 된 것을 확인 할 수 있다.


모드는 w로 하여 write 함수를 사용해 파일에 입력 할 수 있다.


파일 읽기1

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


file = open("c:\\newfile.txt", 'r')

line = file.readline()

print line

line = file.readline()

print line

file.close()

==========================================================

결과 :  

안녕하세요 파일씨~


반가워요

==========================================================


파일 open 모드를 'r' 로 한 다음에 readline을 이용하여 한줄 씩 파일을 읽어 올 수 있다.


파일 읽기2

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


file = open("c:\\newfile.txt", 'r')

lines = file.readlines()


for line in lines :

    print line


file.close()

==========================================================

결과 :  

안녕하세요 파일씨~


반가워요

==========================================================


readlines를 이용하여 여러줄을 읽어 올 수 있다.



파일 내용 추가 하기

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


file = open("c:\\newfile.txt", 'a')


file.write("\n잘가요")


file.close()

==========================================================

결과 :  

==========================================================


open 모드를 a 로 주면 파일 맨 끝에 내용을 추가 할 수 있다.



앞에 예제들을 보면 항상 프로그램을 끝 마치기 전에 파일 close를 한다.


이것을 하지 않으면 파일에 문제가 생기거나 메모리에 문제가 생길 수 있으니 항상 해준는 것이 좋다.


하지만 이렇게 번거로운 작업을 매번 하기 힘드니 with 문을 이용해 close 하는 것을 잊지 않아 항상


with를 사용해 프로그램 짜는 습관을 갖는 것이 좋다.



close를 하지 않고 with문 사용하기

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


with open("c:\\newfile.txt", 'a') as file :

    file.write("\n다음에 봐요")    #들여 쓰기가 되어야 한다.

==========================================================

결과 :  

==========================================================


위와같이 close를 안해도 with 블록을 벗어나면 자동으로 close가 된다.





반응형

'IT > Python' 카테고리의 다른 글

[Python]클래스 (2)  (0) 2016.09.16
[Python]클래스 (1)  (0) 2016.09.16
[Python]사용자 입력  (0) 2016.09.16
[Python] 함수 (3)  (0) 2016.09.16
[Python] 함수 (2)  (0) 2016.09.11
반응형

파이썬 사용자 입력



자신이 만든 프로그램에 사용자가 입력 할 수 있도록 하는 방법에 대해 알아보겠다.


사용자의 입력을 받기 위해 input(), raw_input() 함수를 사용한다.


사용자 입력 예제

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


print "숫자를 입력 하세요(1~3)"

number = input()


print "문자를 입력하세요 (a~c)"

char = raw_input()


print "number[%d] char[%c]"%(number, char)

==========================================================

결과 :  

숫자를 입력 하세요(1~3)

1

문자를 입력하세요 (a~c)

a

number[1] char[a]

==========================================================


숫자를 입력 받을 때는 input 함수를 문자 및 문자열을 입력 받을려면 raw_input을 사용 한다.


해당 부분은 어디까지나 파이썬 2.7 버전에만 해당 되는 내용이며 3.x에서는 둘다 input 함수로 가능 하다.



사용자 입력 예제2

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


number = input("숫자를 입력 하세요(1~3)")


char = raw_input("문자를 입력하세요 (a~c)")


print "number[%d] char[%c]"%(number, char)

==========================================================

결과 :  

숫자를 입력 하세요(1~3)1

문자를 입력하세요 (a~c)a

number[1] char[a]

==========================================================


input 함수에 질문을 넣어서 질문을 따로 print를 사용하지 않아도 동작 하게 할 수 있다.



반응형

'IT > Python' 카테고리의 다른 글

[Python]클래스 (1)  (0) 2016.09.16
[Python]파일(File) 사용법  (0) 2016.09.16
[Python] 함수 (3)  (0) 2016.09.16
[Python] 함수 (2)  (0) 2016.09.11
[Python] 함수 (1)  (0) 2016.09.11
반응형

파이썬 함수 사용법




전 강좌에 이어 여러가지 함수 쓰임새를 소개 하겠다.


이번엔 여러 인자값을 받는 함수에 대해 설명 하겠다.


여러 인자를 받는 함수

더하기 함수 예제

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

def PrintAllValue(*args) :

    print "start"

    for i in args :

        print i

    print "end"

PrintAllValue(6,7)

PrintAllValue(1,2,3)


==========================================================

결과 :  

start

6

7

end

start

1

2

3

end

==========================================================


위와 같이 함수에 인자를 몇개를 줘야 할지 모를때


함수 인자 부분에 *변수명 즉 


def 함수명(*인자명) 으로 정의 하면 인자 여러 인자를 받아서 처리 할 수 있다.



함수의 인자에 초기 값을 설정하여 사용자가 함수 호출 시 인자를 넣지 않아도 동작을 

하도록 설정 할 수 있다.


인자 초기 값 설정

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

def PrintValue(a=1,b=2,c=3) :

    print "a=%d,b=%d,c=%d"%(a,b,c)


PrintValue()

PrintValue(4)

PrintValue(4,5)

PrintValue(4,5,6)


==========================================================

결과 :  

a=1,b=2,c=3

a=4,b=2,c=3

a=4,b=5,c=3

a=4,b=5,c=6

==========================================================


총 함수를 4번 호출 한다.


첫번째 함수( PrintValue() )는 인자 값을 넣지 않아 함수의 초기값


def PrintValue(a=1,b=2,c=3) 이 그대로 출력 이 되었다.


우선 결과를 보면


a=1,b=2,c=3   ===========> PrintValue()        인자 값이 없어 초기에 설정된 a=1,b=2,c=3 출력

a=4,b=2,c=3   ===========> PrintValue(4)       첫 번째 인자만 넣어서 a가 4로 들어가 a=4,b=2,c=3 출력

a=4,b=5,c=3   ===========> PrintValue(4,5)

a=4,b=5,c=6   ===========> PrintValue(4,5,6)   3개의 인자값을 다 넣어서 초기에 설정된 값이 아닌 a=4,b=5,c=6 출력



퀴즈를 풀어보자

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

val = 0

def globalexam1(val) :

    val = val + 1


globalexam1(val)

print val


==========================================================

결과 :  

?? 풀어보자..

==========================================================


결과 값이 무엇일까?


힌트는 print val에 대한 출력 값이다.


....


함수 안에서 val = val + 1을 하며 val의 초기 값은 0이다. 


그럼 print 의 결과 값은 0 + 1 을 더한 값이니 1일 것이라 생각 들겟지만


정답은 0이다.


왜그럴까? 함수 밖에 변수 명과 함수 안의 변수 명이 같더라도 파이썬에서는


다른 값으로 인식한다. 


즉 함수 안에 변수 값과 함수 밖의 변수 명이 같아도 서로 다른 값이다.


val = val + 1 계산을 해도 해당 변수는 함수가 종료 되면 사라지는 변수 값이다.


그래서 함수 밖의 val 값은 어떠한 계산이 되지 않는다.


그럼 함수 밖의 값을 함수 안에서 사용하려면 어떻게 할까?



global의 사용법

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

val = 0

def globalexam3() :

    global val

    val = val + 1


val = 0

globalexam3()

print val

==========================================================

결과 :  

1

==========================================================


함수 안에서 함수 밖의 변수를 사용하고 싶으면 global이라는 예약어를 사용 하면 된다.


함수 안에서 계산 되었지만 global로 선언 되어서 출력값이 0이 아닌 1로 되었다.


이전 함수 설명 가기 ====> click

반응형

'IT > Python' 카테고리의 다른 글

[Python]파일(File) 사용법  (0) 2016.09.16
[Python]사용자 입력  (0) 2016.09.16
[Python] 함수 (2)  (0) 2016.09.11
[Python] 함수 (1)  (0) 2016.09.11
[Python] 제어문 for  (0) 2016.09.11

+ Recent posts