Python/Python 프로그래밍: 68개의 글
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/xAPZE/btq3CBcfpAS/kJb1Zto6kuqY1eyXFhbSgK/img.png)
들어가며 지난 포스팅에서 UnicodeEncodeError에 대해서 문제점과 해결방법에 대해서 포스팅을 했다. UnicodeEncodeError:'ascii' codec can't encode characters in position 0-3: ordinal not in range(128) 이 에러는 작기도 하지만... 어쩔때는 엄청 큰 문제야 정말..그렇다면, 애초에 unicode를 신경 쓰지 않고, 기본으로 utf-8로 설정 한다면, 매번 unicode를 unicode_str.encode('utf8')을 할 필요가 없다. 자 이제 그만 귀찮은 작업 하지말고, 근본적인 문제를 해결해보자. 문제점 파이썬 내장모듈인 locale을 import한 뒤에 getdefaultlocale()함수를 통해 현재 loca..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/ql2qf/btq3zOpHBVt/eeai3KJFLHLWNpTibjxXo0/img.jpg)
들어가며 파이썬으로 구현을 하다보면 한번씩은 겪는 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128) 파이썬은 기본적으로 unicode를 사용한다. 그렇기 때문에 한글을 사용하기 위해서는 unicode를 utf-8로 변환해서만 사용할 수 있다. 변경하는 방법은 아주 간단하다. unicode를 utf8로 encoding을 해주면 문제를 해결할 수 있다. 문제점 예를 들어서 웹페이지에서 한글 텍스트를 입력받은 값을 website.text라고 가정하자. 아래 내용은 website.text를 print문으로 출력했을때 UnicodeEncodeError가 발생한다. python 내장함수..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/cNftV3/btq1bgnrkH3/16wq7ImIUF1pN1Kvk0dYL0/img.jpg)
| 패키지 설치 방법 File에 Settings를 누릅니다 Settings를 누르면 위 창이 나타납니다. 현재는 PyCharm에서 pip라는 install packages tool이 설치가 안 된상태여서 add 버튼인 + 가 비활성화 되어있습니다. 해당 설치 툴이 설치되지 않았으면 위와 같은 알림창이 뜹니다. 저 파란 글씨를 눌러 설치를 합니다. 설치가 완료되면 pip 패키지툴이 생성됩니다. 오른쪽 각 버튼의 이미는 다음과 같습니다. + : 패키지를 설치하는 버튼 - : 패키지를 삭제하는 버튼 ▲ : 패키지를 업데이트 하는 버튼 상황에 맞게 각 버튼을 사용하시면 되겠습니다. 여기서는 + 버튼을 눌러 패키지를 설치하는 작업을 하겠습니다. 크롤링에 필요한 패키지인 requests를 설치하도록 하겠습니다. 상..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/H5zEK/btq06gQuKyz/7UtBY9PcRUPj5V3zK4KB2K/img.jpg)
데코레이터(Decorator)란 파이썬에서 기존 코드에 여러가지 기능을 추가하는 파이썬 함수 표현입니다. 좀 더 정확하게 말하면 기존에 정의된 함수의 기능을 확장할 수 있게 해주는 함수죠. 파이썬 함수는 First class function이기 때문에 다음과 같은 특징을 가집니다. 1. 변수에 할당할 수 있다. 2. 다른 함수내에서 정의될 수 있다. 3. 함수의 인자로 전달할 수 있다. 4. 함수의 반환값이 될 수 있다. 데코레이터는 이러한 파이썬 함수의 성질을 기반으로 기존 함수의 기능을 추가하고 새로운 함수를 만드는 역할을 합니다. 출처: https://engkimbs.tistory.com/386?category=688857 [새로비]
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/bPrt7m/btq09i03H7e/kW4DM4bISkTIPNxcteTD41/img.jpg)
클로저(Closure)란 파이썬같이 퍼스트 클래스 함수를 지원하는 네임 바인딩 기술입니다. 여기서 퍼스트 클래스 함수란 프로그래밍 상에서 1.기본 데이터형 타입같이 결과를 반환할 수 있고 2.변수에 값을 할당 가능하며 3.함수의 인자로 넣을 수 있는 기능 을 제공받는 함수를 뜻합니다. 파이썬에서 프리변수에 함수가 할당되게 되면 이 변수는 클로져를 통해 할당된 함수의 정보를 저장합니다. 그리고 프로그래머는 이 바인딩된 변수를 통해 할당된 함수에 접근할 수 있게 되죠. 출처: https://engkimbs.tistory.com/385?category=688857 [새로비]
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/b8keKr/btq1camZki9/a8V3YqcToHQRV0AkdAiLi1/img.jpg)
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..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/sDzae/btq06hojzKr/3gDxuAUBiKht8tChAlUTH1/img.jpg)
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라는 함수를..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/SIBaH/btq09j6Jdc7/UlpAkl55DcI5kfYuhuppu0/img.jpg)
print 출력 함수를 쓸 시 소수점 이하 자리수를 나타내기 위해서는 다음과 같이 코드를 작성하면 됩니다. num = 1.23456789 print('%.10f' % num) 출력 1.2345678900 출처: https://engkimbs.tistory.com/19?category=688857 [새로비]
이전 scrapy에 대한 소개와 아키텍처에 대한 글과 이어지는 내용입니다~ [Python/Python 프로그래밍] - 파이썬 웹 스크래핑할 때 이거 쓰세요. 최고의 파이썬 웹 스크래핑 솔루션 scrapy window에서 anaoncda를 통해 scrapy를 설치했을 때 계속 실행 오류가 뜨시면 일반 Python 공식 사이트에서 배포하는 Python 프로그램을 설치하여 Scrapy를 설치하세요! 저도 최근 anaconda를 설치해서 scrapy를 진행했었는데 계속 오류가 나서 Python으로 다시 진행했더니 잘 작동됩니다! | scrapy 설치 scrapy를 설치하기 위해서는 pip 패키지 매니져를 이용할 때는 다음과 같은 명령어를 입력하시면 됩니다. (이때, python이 설치된 디렉터리를 경로가 환경변..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/ciE0aL/btq08vGDzEv/0l1ErP9MfB6jUJHMpIFvfK/img.jpg)
| selenium(셀레늄)이란 selenium은 주로 웹앱을 테스트하는 웹 프레임워크입니다. 또한 webdriver의 API를 통해 브라우저를 제어하기 때문에 자바스크립트에 의해 동적으로 생성되는 사이트의 데이터를 크롤링할 때 매우 유용하게 사용되는 스크래핑 도구입니다. | selenium 사용법 selenium은 크롬이나 파이어폭스같은 각 브라우져의 webdriver API를 통해 브라우져를 제어합니다. 따라서 자신이 쓰고자 하는 브라우져의 driver를 다운로드받아서 Java나 C#, Python 같은 프로그래밍 언어를 통해 제어하는 것이 일반적입니다. 여기서는 크롬을 기준으로 사용법을 설명할 예정입니다. driver를 다운로드 받을 수 있는 곳은 아래와 같습니다. 여기서 주의해야 할 점은 크롬 브..