본문 바로가기

Code/Phyton

[Phyton] Modules/ Method & Class/ Object

 

Modules

 

 

 


프로그래머들이 직접 유용한 함수 등을 작성하여, 다른 사람 혹은 본인의 프로그램 개발시 활용하고자 하는 일종의 별도 파일이다.

 

이처럼 우리는 다른 사람들이 만들어놓은 소프트웨어을 활용하여

자신의 목적에 맞게 사용한다.

 

그러면 우리는 남을위해 어떤 것들을 제공해야하는가?

 

 

미리만들어놓은 함수와 변수를 활용하여

내가 하나의 함수를 만들고자 할때 사용한다.

 

>>>import math

>>>type(math)

class 'module'

 

>>>help(math)

Help on built-in module math:

 

 

모듈안에 포함된 함수를 호출(실행)하는 경우는 규칙이 있는데, 즉 함수의 이름을 math.factorial(3)과 같이 모듈명.함수명()으로 해야 한다.

 

 

>>>math.sqrt(9)

3.0

 

The dot(.) is an operator, just like + and **

1) Look up the object that the variable to the left of the dot refers to.

2) In that object, find the name that occurs to the right of the dot.

>>>math.pi

3.141592

 

from _모듈이름_ import _함수이름_과 같이, 사용하기 원하는 함수만 해당 모듈에서 불러온다는 의미이다.

>>>from math import pi, sqrt           // math에서 특정 함수만 불러올 때

>>>pi

3.141592

 

파이썬 언어에서 제공하는 모듈

 

이제는 모듈을 잘 불러쓰는 사람이 

더나아가 파이썬에서 제공하지않은 오픈소스까지 잘 쓰는 사람이

좋은 프로그래머이다

 

 

(a) 사용하고자 하는 모듈 이름으로 화일을 만들고 확장자를 .py로 합니다.

(b) 모듈안에 넣고자 하는 함수를 (a)에서 만든 화일에 포함 합니다.

(c) 앞서 math 모듈 및 math 모듈에 포함된 함수를 사용하는 방법을 동일하게 사용하여 사용자 정의 모듈 안의 함수를 사용합니다.

 

본인이 만든 모듈은 반드시 실행하는 주피터 노트북과 같은 위치에 있어야한다!!!!

반면 내장모듈은 어디서든지 실행해도 상관없다.

exp.py

한번 임포트를 하면 다시 사용해도 파이썬은 이를 거부한다.

허나 이를 수정할때 

>>>import exp

>>>imp.reload(exp)

 

math 함수 예시

>>> math.sin(b)

>>> math.sin(math.radians(b))

>>> math.degrees(math.asin(0.5))

>>> math.pi

>>> math.inf

>>> math.e

>>> math.exp(1)

>>> math.log(math.e)

>>> math.log(math.exp(2))

>>> math.log10(10.0)

>>> math.log10(100.0)

 

Random 함수

>>> import random

>>> x1 = random.random()

# generates a random floating-point number in range [0,1)

>>> x2 = random.uniform(a,b)

# generates a random floating-point number in range [a,b)

>>> x3 = random.randrange(stop)

# chooses an integer in the range [0,stop)

>>> x4 = random.randrange(start,stop)

# chooses an integer in the range [start,stop)

>>> x5 = random.randrange(start,stop,step)

# chooses an integer in the range [start,start+step, start+2*step,…,stop)

>>> x5 = random.randint(start,stop)

# chooses an integer in the range [start, stop] including both end points

 

Graphic exercise

>>> import turtle

>>> t = turtle.Pen()

>>> t.forward(50)

>>> t.left(90)

>>> t.forward(50)

>>> t.left(90)

>>> t.forward(50)

>>> t.left(90)

>>> t.forward(50)

>>> t.left(90)

>>> t.reset()

>>> t.backward(100)

>>> t.up()

>>> t.right(90)

>>> t.forward(20)

>>> t.left(90)

>>> t.down()

>>> t.forward(100)

>>> t.clear()


 

Methods<- type 안에 있는 function

 

 

A method is a kind of function that is attached to a particular type

  • str methods

  • int methods

  • bool methods

  • Every type has its own set of methods

 

 

Classes <- type

 

 

 

  • A class is another kind of object that is similar to a module.

  • A class is how Python represents a type.

  • A class has methods

 

 

>>> str.capitalize("trump")

"Trump"

 

>>>"trump".capitalize()

"Trump"

 

>>> (‘TTA’ + ‘G’ * 3).count(‘T’)

2

  1. (‘TTAGGG’).count(‘T’)

  2. str.count(‘TTAGGG’, ‘T’)

  3. 2

 

ex)

sentence = 'Mary had a little lamb'

sentence.count('a')

 

결국 위의 문장을 다시 설명한다면 다음과 같다.

(1) String 타입의 Class를 기반으로 sentence 객체를 생성함
(2) sentence 객체의 멤버 데이터로 'Mary had a little lamb'를 저장함
(3) String 타입의 Class면 사용할 수 있는 멤버 method인 count()를 사용하여,

데이터 안에서 글자 'a'의 갯수를 카운트 함

 

>>> str.lstrip('       hello world          ')

'hello world                      '

 

 

str.split()!!!!!!

한줄의 문자열 다섯개의 쉼표 -> 다섯개의 문자열

 

str.format()!!!!!!!

정해진 형태 안에 주어진 문자를 입력가능함

 

print('{0} ate {1} apples {2}'.format('I', '3', 'yesterday'))

print('{} ate {} apples {}'.format('I', '3', 'yesterday'))

>>>1 ate 3 apples yesterday

>>>1 ate 3 apples yesterday

 

자리맞추는 것은 프로그래밍에서 굉장히 중요하다!!

 

 

 


 

object

 

 

 

 

타입 명으로 만들어낸 실체

ex)

trump

str으로 만들어낸 문자형 trump

17.0

floating 으로 만들어낸 실수형 17.0

 


해당 자료는 경희대학교 소프트웨어융합학과 이성원교수님 수업내용을 참조하였습니다.