'Python'에 해당되는 글 7건

  1. 2017.09.07 클래스, 인스턴스, 오브젝트
  2. 2017.08.28 튜플과 리스트의 차이
  3. 2017.08.24 Lamba
  4. 2017.08.21 반환문
  5. 2017.08.21 지역변수와 전역변수
  6. 2017.08.21 변수의 사용
  7. 2017.08.18 Python 설치
Python2017. 9. 7. 20:51

  객체지향프로그래밍(Object-oriented Programming)은 말 그대로 객체를 만들어 프로그래밍을 하는 방식을 뜻한다. 여기서 말하는 객체는 무엇일까? 객체 지향 프로그래밍을 처음 접했을 때, 그 개념을 올바로 세우는 것이 중요하다. 하여 객체지향 프로그래밍에서 자주 등장하는 클래스, 인스턴스, 오브젝트에 대해서 알아보겠다.

  클래스(class)라는 단어는 얼핏 들으면 생소하고 이해하기 힘들다. 학교에서 반을 클래스라고 부르기도 하고, 사회의 계층을 클래스라고 부르기도 한다. 객체지향 프로그래밍에서 클래스는 하나의 정의된 변수와 프로시져의 집합체라고보면 된다. 여기서 변수는 프로그래밍을 할때 값을 담는 통이고, 프로시져는 연산 또는 정의된 일을 수행하는 도구라고 생각하면 된다.  자동차라는 클래스가 있다고 가정해보자. 자동차를 이루려면 핸들, 바퀴, 기어와 같은 물리적 장치가 필요하고 또한 전진, 후진과 같은 동작이 필요하다. 좀 비약이 있긴 하지만, 이때 물리적인 장치들을 변수, 동작들을 프로시져라고 생각하면 된다.

  인스턴스(instance)는 클래스의 추상적인이 개념이 실체가 된 상태를 뜻한다. 예를 들어 마티즈, 아반떼, 소나타와 같은 자동차는 추상적인 개념인 자동차의 실체들이다. 이와 같이 추상적인 개념이 클래스 그리고 그 클래스의 실제를 인스턴스라고 보면 된다.

  마지막으로 오브젝트(object)는 클래스로부터 이용하여 생성된 모든 것이라고 보면 된다. 여기서 의문점이 생길 수 있다. 그렇다면 인스턴스와 오브젝트의 차이점은 무엇인가?

  인스턴스는 관계적인 개념이다. 즉 어떠한 오브젝트(A)가 그것의 개념인 클래스(B)와 같이 설명될 때, 'A는 B의 인스턴스다'라고 설명될 수 있다. 하지만 기본적으로 클래스로부터 만들어진 대상을 일컫을 때는 일반적으로 오브젝트라고 부른다.

  실제 파이선 프로그래밍으로 예를 들어보자.


# 'human'이라는 클래스

class human:

  #변수들

head=1

eye=2

arm=2

body=1

neck=1

fingers=10

  #프로시져: 사람은 말을 한다...

def talk(self):

return 'blah blah blah~'

#사고 났을 시. 부상으로 인한 손실

def ax(self):

self.eye -= 1

self.arm -= 1

    self.fingers -= 3


위의 클래스를 import 한 후 인스턴스를 만들어보자. j라는 오브젝트를 만들어서 변수와 프로시져를 호출해본다.


>>> import test

>>> j=test.human()

>>> j.talk()

'blah blah blah~'

>>> j.fingers

10

>>> j.ax()

** 사고나서 손가락 3개를 잃었다.

>>> j.fingers

7

반응형

'Python' 카테고리의 다른 글

튜플과 리스트의 차이  (0) 2017.08.28
Lamba  (0) 2017.08.24
반환문  (0) 2017.08.21
지역변수와 전역변수  (0) 2017.08.21
변수의 사용  (0) 2017.08.21
Posted by newind2000
Python2017. 8. 28. 22:21

  튜플(tuple)은 변환이 불가능한 열거형 자료를 일컫는다. 자료의 형태가 일정하고 그 내용이 한정된 경우 튜플을 사용한다. 말이 말라깽이이니 예를 들어 설명하겠다.

  학생의 신상정보를 기록하는 저장소를 만든다고 가정하자. 학생의 이름, 나이, 주소 등등.. 입력할 수 있는 자료의 형태가 정해져 있고 종류가 한정된 상황에서는 튜플을 사용한다.

Minji= ('Minji', 18, '부산시 부산 어딘가', C'')


앞서 말한 것과 같이 튜플은 그 값을 변경할 수 없다.


>>> Minji= ('Minji', 18, '부산시 부산 어딘가', 'C')

>>> Minji[3]='B'

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: 'tuple' object does not support item assignment


** 튜플의 선언

- tup = () #값이 없을 경우

- tup = 1,2,3 #콤마(,)를 찍어 값을 입력

- tup = (1,2,3) # 괄호를 사용하여 입력


  반면에 리스트(list)는 자료의 개수가 몇개인지 모르는 열거형 자료를 저장할 때 사용한다. 또한 리스트는 저장된 값을 수정할 수 있다. 한 반에 김씨가 몇명인지 확인한다고 가정하자. 이 경우 김씨가 몇명인지 모르기 때문에 우리는 김씨성을 이름을 저장할 데이터형으로 리스트를 사용해야 한다.

  리스트는 한번 입력한 값을 변경하는 것이 가능하다. 

>>> list

[0, 2, 3, 2]

>>> list.append(4)

>>> list

[0, 2, 3, 2, 4]

>>> list.sort()

>>> list

[0, 2, 2, 3, 4]

>>> del list[1]

>>> list

[0, 2, 3, 4]

>>> list.append(1)

>>> list.sort()

>>> list

[0, 1, 2, 3, 4]


** 리스트의 선언

- list = [] #값이 없을 경우

- list = [1,2,3] #콤마(,)를 찍어 값을 입력




반응형

'Python' 카테고리의 다른 글

클래스, 인스턴스, 오브젝트  (0) 2017.09.07
Lamba  (0) 2017.08.24
반환문  (0) 2017.08.21
지역변수와 전역변수  (0) 2017.08.21
변수의 사용  (0) 2017.08.21
Posted by newind2000
Python2017. 8. 24. 22:37

Lambda란 무엇일까?

Wikipedia를 뒤져보니 신화에 나오는 여성인데 발이 확 바꿔서 푹 튀어나왔다고 한다. 그래서 람다를 문자로 표현하면 'Λ' 요 모양이 된다. 하지만 프로그래밍에서는 함수를 간단하게 표현하는 식을 일컫는다.


lambda 인자: 표현식


예를 들어,  lambda a,b : a+b 요런식이고 인자를 넣을 요량이면,


>>> (lambda a,b:a+b)(3,2)

5


Python에서 제공해주는 'map' 함수는 인자로 함수와 리스트를 받는다. 말이 말리부같으니 함수 표현식으로 나타내면,


map(lambda x:x, list)


이렇게 된다. 그냥 이런게 있다고 넘길 수 있겠지만, C같이 저성능 언어를 사용하다보면 이놈이 얼마나 대단한 놈인지 알 수 있다. 반복문 안에 변수값을 변화시키며 함수에 넣는 코드를 저 한줄에 끝낼 수 있다는 말이다! 팬티가 축축해지는 느낌이 들었다면 당신은 프로그래머..


실제로 사용해보면 아래와 같다.


>>> map(lambda a: a*100, range(10,20))

[1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900]

>>> list(map(lambda a: a*100, range(10,20)))


이미 젖어 있는 그대에게 또 다른 엄청난 함수를 알려주겠다. 'reduce'라는 함수인데, 함수의 인자는 똑같지만 리스트에 있는 인자들을 함수에 계산하고 그 계산값에 결과 값에 다음 인자를 넣는 식이다. 말이 말보로이니 함수의 형식과 예제로 설명하겠다.


reduce(함수, 순서형 자료)


>>> reduce(lambda x,y:x*y, range(1,4))

6

1에서 3까지의 곱을 나타낸다. 


>>> reduce(lambda x,y:x*y, range(1,101))

93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000L


1부터 100까지의 곱이다. 벌써 가버리면 안된다. 다른 좋은 함수도 있다.


마지막으로 설명할 함수는 'filter'이다. 단어 뜻대로 걸러주는데 사용한다. 람다식에서 0이 아닌 값이 나오면 이것을 참으로 인식하여 그 값을 반환한다. 말이 마리오이니 함수의 형식과 예제로 이해해보자.


filter(함수, 리스트)


>>> filter(lambda x:x%3, range(10)) [1, 2, 4, 5, 7, 8]


예제를 보면 1-9까지의 수 중에서 3으로 나누어지는 수를 제외한 정수가 출력되었다. 즉 3으로 나누어지는 수는 그 값이 '0'이 됨으로 표시되지 않은 것이다. 이제 팬티를 갈아 입어도 된다.

반응형

'Python' 카테고리의 다른 글

클래스, 인스턴스, 오브젝트  (0) 2017.09.07
튜플과 리스트의 차이  (0) 2017.08.28
반환문  (0) 2017.08.21
지역변수와 전역변수  (0) 2017.08.21
변수의 사용  (0) 2017.08.21
Posted by newind2000
Python2017. 8. 21. 23:10

Python에서는 함수의 반환값이 참인지 거짓인지 검사해주는 특별한 기능이 있다.

반환값에 판별식을 사용하여 그 함수의 반환값을 참과 거짓으로 구분 지을 수 있다.


>>> def plus(a, b):

...     ans=a+b

...     val=input('sum?')

...     return ans == val

...

>>> plus(1,2)

sum?3

True

>>> plus(1,2)

sum?2

False

반응형

'Python' 카테고리의 다른 글

튜플과 리스트의 차이  (0) 2017.08.28
Lamba  (0) 2017.08.24
지역변수와 전역변수  (0) 2017.08.21
변수의 사용  (0) 2017.08.21
Python 설치  (0) 2017.08.18
Posted by newind2000
Python2017. 8. 21. 23:05

지역변수는 함수 안에서 사용되는 변수이고 함수가 작동할 때 생성되며 함수가 끝나는 동시에 소멸된다.

반면 전역변수는 함수의 생성, 소멸과는 상관없이 존재하는 변수이다.


전역변수를 함수 내에서 사용할 수는 있지만 그 값을 변경하려면 'global'이라는 명령어를 사용해줘야 한다.

>>> i=1

>>> def example():

...     print i

...

>>> example()

1


이와 같은 경우 전역변수를 함수 내에서 호출하여 출력할 수 있지만, 중첩적으로 변수를 가공하는 경우 에러가 난다.


>>> x=1

>>> def example():

...     x=x+1

...     print x

...

>>> example()

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "<stdin>", line 2, in example

UnboundLocalError: local variable 'x' referenced before assignment


이때는 'global'을 사용해주면 에러가 없어진다.


>>> def example():

...     global x

...     x=x+1

...     print x

...

>>> example()

2


반응형

'Python' 카테고리의 다른 글

튜플과 리스트의 차이  (0) 2017.08.28
Lamba  (0) 2017.08.24
반환문  (0) 2017.08.21
변수의 사용  (0) 2017.08.21
Python 설치  (0) 2017.08.18
Posted by newind2000
Python2017. 8. 21. 22:52

변수란 값을 담는 상자라고 생각하면 된다. 어느 상자의 무엇이 들었는지 알기 위해 우리가 상자의 색깔을 달리하거나 상자 겉에 무엇이 들었는지 기입하는 것처럼 우리는 변수의 이름을 설정하여 변수 안에 무엇이 들어있는지 알 수 있다. 

number = 1

변수를 선언해줄 때 위와 같이 좌측에 변수의 이름, 우측의 변수에 들어갈 값을 넣어주면 된다.


변수를 사용함으로써 우리는 변수 안의 값을 변환시킬 수 있다. (특정한 값을 계속 할 경우에는 변수가 아니라 상수를 사용하면 된다.)


Python에서는 변수의 자료형(정수, 유리수 등등)을 설정해 줄 필요 없이 변수를 설정해주고 값을 입력하면 입력된 값에 따라 변수의 형태가 달라진다.

integer = 3

rational = 2.1


Python에서 리스트 자료형을 선언할 때는 아래와 같이 대활호와 따옴표를 사용한다.

List=['1', '2', '3']


홑따옴표와 쌍따옴표 둘 다 사용할 수 있지만 항상 짝을 맞춰서 사용해야 에러가 나지 않는다.






반응형

'Python' 카테고리의 다른 글

튜플과 리스트의 차이  (0) 2017.08.28
Lamba  (0) 2017.08.24
반환문  (0) 2017.08.21
지역변수와 전역변수  (0) 2017.08.21
Python 설치  (0) 2017.08.18
Posted by newind2000
Python2017. 8. 18. 11:57

결혼을 하려면 배우자가 있어야 하듯이, 프로그래밍을 하려면 해당 언어를 컴퓨터가 이해할수 있도록 만들어주는 프로그램(혹은 컴파일러)가 필요하다. 파이썬을 위해서도 프로그램이 필요하니 다운로드를 받자




다운 받은 설치 파일을 실행 시키고 계속 해서 다음을 눌러준다.



설치할 폴더의 경로를 지정해 준다. 자기만의 디렉토리 구조가 있는 것이 아니라면 그냥 설치해도 무방하다.




설치가 진행된다.



python을 제대로 설치 했는지 확인하기 위해서 command 창을 띄워서 python을 실행 시켜야 한다.



command 창에 "python" 을 입력하면 python이 실행되도록 하려면 환경변수 - path 에서 "python.exe" 가 있는 경로를 추가해주면 전천후로 python을 사용할 수 있다.









python이 설치된 경로를 추가해준다.



이제 command 창에서 "python"을 입력하면 python 실행이 가능하다.



잘 작동한다.

반응형

'Python' 카테고리의 다른 글

튜플과 리스트의 차이  (0) 2017.08.28
Lamba  (0) 2017.08.24
반환문  (0) 2017.08.21
지역변수와 전역변수  (0) 2017.08.21
변수의 사용  (0) 2017.08.21
Posted by newind2000