Python: 75개의 글
| 파이썬 타입(Python Type) 다음은 파이썬의 여러 타입들에 대해 알아보겠습니다. 여기서 주목해야할 타입은 NoneType과 function 이 둘입니다. Java나 C에서의 null값은 타입 자체가 존재하지 않지만 파이썬에서는 NoneType으로 타입 자체가 존재합니다. 그리고 함수도 function 자체로 타입이 정해져 있구요. type('This is a string') type(None) type(1) type(1.0) type(add_numbers) str NoneType int float function | 시퀀스 자료형 시퀀스는 파이썬에서 연속형 자료형을 뜻합니다. 파이썬에서는 크게 튜플(tuple)과 리스트(list)가 있습니다. 이 둘의 가장 큰 차이점은 튜플은 데이터 자체를 수..
| 변수 및 함수 파이썬은 동적타입 언어입니다. 동적타입 언어는 type을 선언하지 않아도 실행시간에 자동적으로 타입이 정해지는 언어입니다. Java와 C같은 정적 타입 언어들과 비교하면 쓰기가 간결하다는 장점을 가지고 있죠. 다음은 파이썬의 변수 선언입니다. type 선언없이 정수값을 변수에 할당할 수 있습니다. 사칙연산도 바로 가능하죠. x = 1 y = 2 x + y 3 파이썬의 함수는 def 키워드를 이용해서 선언합니다. 그리고 보시면 아시겠지만 파이썬은 들여쓰기 자체가 문법입니다. 들여쓰기를 제대로 지키지 않을 시 syntax error가 나와 인터프리터가 파이썬 코드를 해석하지 못합니다. def add_numbers(x, y): return x + y add_numbers(1, 2) 3 파이썬..
| Anaconda3 설치하기 Anaconda3를 설치하면 자동적으로 Jupyter Notebook이 설치됩니다. Anaconda3 설치법은 아래 링크를 참조하시면 됩니다. | Jupyter Notebook 실행하기 Window 메뉴에 보면 자동적으로 Jupyter Notebook이 설치되어 있습니다. 클릭하게 되면 Jupyter Notebook 애플리케이션이 실행되면서 웹브라우져 상으로 Jupyter Notebook을 이용할 수 있게 됩니다. 오른쪽 상단 위의 Python3를 클릭하시면 Jupyter Notebook에서 python을 이용할 수 있습니다. Markdown언어로 세팅하고 Run을 누르면 Jupyer라는 글자가 Jupyter Notebook 상단에 나타나게 됩니다. 다음 Code로 설정한 ..
| 패키지 설치 방법 File에 Settings를 누릅니다 Settings를 누르면 위 창이 나타납니다. 현재는 PyCharm에서 pip라는 install packages tool이 설치가 안 된상태여서 add 버튼인 + 가 비활성화 되어있습니다. 해당 설치 툴이 설치되지 않았으면 위와 같은 알림창이 뜹니다. 저 파란 글씨를 눌러 설치를 합니다. 설치가 완료되면 pip 패키지툴이 생성됩니다. 오른쪽 각 버튼의 이미는 다음과 같습니다. + : 패키지를 설치하는 버튼 - : 패키지를 삭제하는 버튼 ▲ : 패키지를 업데이트 하는 버튼 상황에 맞게 각 버튼을 사용하시면 되겠습니다. 여기서는 + 버튼을 눌러 패키지를 설치하는 작업을 하겠습니다. 크롤링에 필요한 패키지인 requests를 설치하도록 하겠습니다. 상..
데코레이터(Decorator)란 파이썬에서 기존 코드에 여러가지 기능을 추가하는 파이썬 함수 표현입니다. 좀 더 정확하게 말하면 기존에 정의된 함수의 기능을 확장할 수 있게 해주는 함수죠. 파이썬 함수는 First class function이기 때문에 다음과 같은 특징을 가집니다. 1. 변수에 할당할 수 있다. 2. 다른 함수내에서 정의될 수 있다. 3. 함수의 인자로 전달할 수 있다. 4. 함수의 반환값이 될 수 있다. 데코레이터는 이러한 파이썬 함수의 성질을 기반으로 기존 함수의 기능을 추가하고 새로운 함수를 만드는 역할을 합니다. 출처: https://engkimbs.tistory.com/386?category=688857 [새로비]
클로저(Closure)란 파이썬같이 퍼스트 클래스 함수를 지원하는 네임 바인딩 기술입니다. 여기서 퍼스트 클래스 함수란 프로그래밍 상에서 1.기본 데이터형 타입같이 결과를 반환할 수 있고 2.변수에 값을 할당 가능하며 3.함수의 인자로 넣을 수 있는 기능 을 제공받는 함수를 뜻합니다. 파이썬에서 프리변수에 함수가 할당되게 되면 이 변수는 클로져를 통해 할당된 함수의 정보를 저장합니다. 그리고 프로그래머는 이 바인딩된 변수를 통해 할당된 함수에 접근할 수 있게 되죠. 출처: https://engkimbs.tistory.com/385?category=688857 [새로비]
lambda는 익명 함수로 함수를 간단하게 정의하는 데 쓰입니다. C++에서의 labmda 함수는 상당히 복잡한 구문을 가졌는 데 반해 Python에서는 다음과 같은 형식으로 작성하면 됩니다. lambda 인자 : 표현식 C++에 (http://engkimbs.tistory.com/62) 비교하면 너무나도 간단한 식이죠! 이게 바로 Python의 매력이 아닌가 싶습니다. 이러한 차이는 C++과 Python이 지향하는 바가 달라서 그렇습니다만 일단 'Python이 정말 간단하구나!'라고 생각하고 넘어가죠. 아래의 예는 람다 함수의 예제입니다. print( (lambda x,y: x+y)(10,20) ) 결과 30 map과 함께 써서 원하는 값들이 들어 있는 리스트를 뽑아내는 데도 사용됩니다. 여기서 map..
Python의 generator라는 것은 간단하게 말하면 iterator를 생성해주는 함수입니다. Python에서 iterator는 next()메소드를 이용해 데이터에 순차적으로 접근이 가능한 오브젝트죠. generator는 일반적인 함수와 비슷하지만 함수 안에 yield란 키워드를 작성하여 next()가 호출될 때마다 다음 데이터의 값을 반환한다는 것이 가장 큰 차이점입니다. def gen(n): i = 0 test = ['a', 'b', 'c'] while i < n: print("This turn:", test[i]) yield test[i] i = (i + 1)%3 sample = gen(6) for i in range(6): print(next(sample)) 위의 코드를 보면 gen라는 함수를..
print 출력 함수를 쓸 시 소수점 이하 자리수를 나타내기 위해서는 다음과 같이 코드를 작성하면 됩니다. num = 1.23456789 print('%.10f' % num) 출력 1.2345678900 출처: https://engkimbs.tistory.com/19?category=688857 [새로비]
| Call by assignment 파이썬은 함수 호출시 인자를 Call by assignment 방식으로 값을 불러옵니다. Call by assignment는 값에 의한 호출(Call by value), 참조에 의한 호출(Call by reference)과는 다르게 동작합니다. 이것을 이해하기 위한 키포인트는 함수 안에서 넘겨받은 값이 객체의 변경여부에 따라서 어떻게 다르게 동작하는 지를 아는 것입니다. 함수가 호출될 때는 모두 Call by reference로 불러들입니다. 하지만 mutable이냐 immutable이냐에 따라 함수 안에 객체의 값을 조작할 경우 다르게 동작하게 됩니다. mutable객체일 때는 참조에 의한 호출로서 계속 동작하게 되지만, immutable객체 일때는 값에 의한 호출..