본문 바로가기

Programming

[Python] 기본문법

Python을 사용해야할 일이 생겨서 공부를 시작했다.

기존에는 Java와 C를 주로 사용해왔는데 이것들과 비교할 때 장점도 있고 단점도 있다.

http://pythonstudy.xyz/python/article/1-Python-%EC%86%8C%EA%B0%9C 를 통해 Python을 공부중이며, 여기에 Python에서 처음 접한 개념들을 정리하려한다.

-----------------------------------------------------------

기본 데이터 타입

- int : 정수

- float : 소숫점을 포함한 실수

- bool : true/false

- None : null과 비슷한 개념


Range(start,stop,step)

- start에서 stop-1까지 step간격으로 값을 리턴


FunctionName (*_____)

- * : 가변길이 파라미터임을 암시


Switch

- if / elif / else


Pass

- if문 속에서 특정부분을 실행하지 않게함.


List/Tuple

- List : 값 변경가능, [ ]

- Tuple : 값 변경불가능, ( )


a, b = func(_, _)

- func함수의 리턴값 중 첫번째를 a, 두 번째를 b에 저장.


Self

- java에서의 this와 같음.

- Python은 기본적으로 모든 멤버가 Public.

- Private화 하려면 변수명 앞에 언더바(_)를 2개 붙임.


Method

- 정적 : @staticmethod

- 클래스 : @classmethod, self대신 cls를 사용.

- 일반


사용자 정의 Exception

- raise Exception ('description')

- java의 throw.


with

- open('file address', 'r') as 별명

- C#의 using과 유사. 어떤 Exception이 발생해도 블럭 종료시 리소스를 해제함.


Unittest

- unittest 모듈 import

- 클래스 생성 매개변수로 unittest.TestCase

- test_ 로 시작하는 method 생성

- 전처리, 후처리 필요시 SetUp(), TearDown()함수 사용

  위 두 함수를 Test Fixture라고 칭함.(Fixture : 각각의 TestCase실행 전후에 실행됨)


Comprehension(직역: 이해력, 이해하여 얻은 지식)

- List Comprehension : newlist = [ i*i for i in oldlit if type(i)==int ]

- Set Comprehension : 위 문장의 결과가 결과가 Set으로 반환됨. { }

- Dictionary Comprehension : name_id = { val:key for key,val in id_name.items()}

  dict로 리턴됨


Integrator

- mylist = [1,2,3] -> it=iter(mylist) -> next(it) 호출시 1, 2, 3순서대로 리턴됨

- next(it)를 호출했으나 값이 없는경우 StopIteration Exception이 리턴됨

- 클래스는 해당 Class의 iterator를 리턴하는 1) __iter__()메서드를 작성하고 2) __next()__메서드를 구현해야 하며 3) raise StopIteration Exception 구문을 삽입해야함.


Generator

- 내부의 갑시 yield로 구분됨.

- 이전에 호출된 yield의 위치를 기억하고, 다음 위치를 리턴함


Thread

- threading.Thread() 호출

- Thread.start()

- t=threading.Threea(target=sum, args=(1,1000)) -> sum에 (1,1000)값 전달.


+) Garbage Collection 존재함/ 다중상속 가능 ex) 클래스명(부모클래스)

'Programming' 카테고리의 다른 글

[Algorithm] 알고리즘 자료  (0) 2018.03.26
[Node.js] NPM/Java Script  (0) 2018.03.26
[Node.js] 개요  (0) 2018.03.26
[Python] 모듈  (0) 2018.03.25
고등학교 3년간 배운것  (0) 2018.02.17