일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 강동구장어맛집
- 해외취업컨퍼런스
- Ringle
- 총각네장어
- 영어시험
- 영어공부
- #영어공부
- 영어로전세계와소통하기
- 링글경험담
- 오피스밋업
- 링글커리어
- 뉴노멀챌린지
- #직장인영어
- #Ringle
- 성내동장어
- 화상영어
- 링글리뷰
- #링글
- #영어발음교정
- 장어랑고기같이
- 둔촌역장어
- CommunicateWiththeWorld
- 스몰토크
- 링글
- 영어공부법
- 영어회화
- #링글후기
- #nlp
- #체험수업
- 소통챌린지
- Today
- Total
Soohyun’s Machine-learning
Python overview 본문
__init__ : instantiation 과정에서
instance 생성시 __init__실행, 사라질때 __del__ 실행
world = HelloWorld() <- instance를 storage 하는 variable 'world'를 만들어라!
<- 뒤의 HelloWorld() 는 instance's template
world.performAverage (self, val1,val2) <- val1, val2는 input parameter , self는 world. <- 이걸 받음.
Noun (명사) 위주로 변수 이름을 잡아주면 좋다.
CLASS convention : class MyFirstClass
VARIABLE convention : numberOfStudents = 100
ㄴ acceptable, but not recommended in Python, 파이썬에서는 변수형을 declare하지 않으므로 다른 언어에서처럼 intCount = 0 같은건 추천하지 않음
METHOD convention : def performAverage(self,val1,val2)
# homework 제출시에는 코드에 주석을 잘 달도록 한다. 원래 회사에서도 그렇게 해야 한다.
'''
''' : block comments 1
"""
""" : block comments 2
# : 한 줄짜리 comment
Python은 data type이 나중에 assign 된다.
numOfStudents = 10
ㄴ 여기에 어떤 initial value가 없어서, 여기까지는 이 value의 data type이 없다.
그러다 ㄴ 10이 =10으로 들어가면서 numOfStudents의 data type이 integer로 된다.
10은 signed integer
만약 = 0.1 로 해주면 float data type이 됨. long integer로 저장하려면 10L 이런식으로 뒤에 L을 붙여줘야 한다.
collection data types = collection variable, collection information 이라고도 한다. list, dictionary, tuples 를 말한다.
\ 는 줄바꿈 기호
복소수 선언은 complex() 를 통해서 선언할 수도, 4+3j 이런식으로 선언할 수도 있다.
real = 실수부
imag = imagery part , 허수부
%f : float
type casting : 변수형을 바꾼다
e.g. var10 = 10 (integer type)
str(var10) (string type)
swapping statement : 교환
== is the equivalence of values (equivalence check)
!= is the in equivalence of values (equivalence check)
strTest[0] 은 H
String variable은 linear collection 이다.
문자열 사이에 , (comma)가 있으면 한 칸 띄고 print 되게 됨
negative index가 가능하다. 즉, strTest[-2]가 가능하다.
index 의 first element 는 0부터 시작한다.
strTest[1:9:2] x:y:z -> from x to y with z steps
strTest[1:len(strTest):2]
strTest[1 : : 2] == strTest[1 : 3]
strTest[5 : : -1] 5부터 시작해서 끝까지 -1씩 (negative step) index가 5,4,3,2,1,0 이런식으로 된다.
element 들을 모아놓은 목록
lstTest = [1,2,3,4] List is another type of sequence variables
range(x,y,z) == x,y,z x to y with z steps 1, 4, 7, 10, 13, 16, 19 <- 20까지니까
lstTest.reverse() 'hey',19,16,13,10,7,4
lstTest.remove(4) 'hey',19,16,13,10,7 element 4를 없애라
'hey'도 숫자화 (ASCII code를 이용해서) 할 수 있어서 lstTest.sort() 가 가능하다.
parentheses ( ) 소괄호
collection variable type이지만 linear 하지 않다. not sequential 임
key, value pair로 구성된다.
===================== 여기까지의 statement 들은 control 을 하기 위한 statement
return multiple variables 시에는 keep them in order!!!
anyway you don't have types in Python <- 파이썬에는 형 선언이 없다.
one line function is called lambda function lambdaAdd = lambda numParam1, numParam2 : numParam1 + numParam2
x 하나만 바꾸었는데, y와 z가 바뀌었다.
y 리스트와 z 리스트에는 x 를 가르치는 화살표만 들어 있다.
때문에 reference
primitive data type = int, str, ... etc
primitive data type 이 아닌 list, dict, tuple 등은 reference로 저장이 된다.
value를 비교하는 것과 reference를 비교하는 것은 다르다.
== : checks the equivalence of two referenced values
is : checks the equivalence of two referenced objects' IDs
class instance
=== instantiation ===>
설계도 Home
def <- function definition
homeAtDaejeon is homeAtSeoul <- reference 비교를 해보면.. return으로 False가 나온다. 다른 instance가 만들어졌기 때문이다.
homeAtSeoul.openDoor() <- .openDoor() 로 function call
homeAtDaejeon.paintRoof('blue') <- self.colorRoof = color 로 들어가서 homeAtDaejeon의 colorRoof 는 blue가 된다.
물론 homeAtSeoul의 colorRoof는 여전히 red 이다.
class의 중요한 메소드 : Constructor, Destructor
class MyHome은 2개의 variable과 6개의 member function이 존재한다.
__init__(self, ...) 이런식으로 특징지어져 있는 member function을 constructor 라고 부른다. (귀도 반 로섬이 convention으로 정해놓은 것)
하나의 instance를 만드는 시점에.. Called when instantiated
여기에 (self, strAddress)가 있으므로 MyHome class를 쓸 때 strAddress 부분은 반드시 작성해야 한다.
constructor의 self는 존재하지 않는다. self는 나중에 instantiation된 object로서의 self를 가리킨다.
del homeAtDaejeon 을 하게 되면 MyHome을 통해서 만들어진 homeAtDaejeon이라는 object가 없어지게 된다.
__del__(self) <- 얘는 뒤에 self뿐임. 받는게 없다. Destructor
module로 할 때, 대부분의 경우 1 file에는 1 개의 class를 넣기를 추천한다.
from time import ctime
------ -------
ㄴ Package ㄴ 활용
class : reserved word
member variable : class 에 속한 variable..
member functions : def paintRoof , def openDoor...
def __init__ (self, strAddress) : constructor
def __del__(self) : destructor
Built on KAIST Daejeon <- 이거랑
Built on Wed Aug 24 15:05:57 2011 <- 이렇게 두 개는 constructor 에 의해서 나오는 메시지
Roof color is red, and door is closed <- print 문으로 나옴
Destroyed at Wed Aug 14 15:05:57 2011 <- destructor에 의해서 나오는 메세지
__init__.py : 특정 directory가 python package 라는 것을 의미하는 파일
이외의 파일들은 이 directory속의 python file 들이다.
from package import module
lstLine = [] <- member variable 또는 attribute 라고 한다.