파이썬이 메인언어가 될수 없는 이유

Posted by HULIA(휴리아)
2019. 12. 29. 23:19 백엔드개발/파이썬

오늘 친한 지인과 이야기 하다가 데이터분석쪽으로 진로관련 이야기를 하다가 파이썬의 이야기가 나왔는데

파이썬이 메인이 될 수 없는 이유에 대해서 이야기를 하게 되어서 정리해 본다

 

1)상용으로 사후지원되지 않는다는 것이다

메인언어로 자바가 있는데 자바는 오라클이라는 회사가 상용으로 서비스지원을 해주기도 한다

보통은 큰회사에서는 사후지원이런게 중요하고 돈으로 그것을 해결할려고 한다

하지만 파이썬은 그런면에서 비용은 안들 수 있지만 반대로 지원해주는 곳이 없기도 한 것 같다

그리고 버젼에 대해서 관리해주는 것이 없는 거 같기도 하다

 

2)고급 인력이 많이 없다

활용하는 분들은 많고 진입하는 분들은 많지만 고급인력이 부족한 것 같다

아마도 1번의 메인언어가 되지 않아서 그런것 같기도 하다

파이썬언어자체가 쉽고 스크립트언어라도 그런것도 있겠지만 파이썬만으로 공식적인 서비스를 하는 곳이 많이 없어서 이기도 한것 같다~

파이썬 아나콘다 배포판 조사

Posted by HULIA(휴리아)
2019. 4. 29. 01:30 백엔드개발/파이썬

이번에 파이썬 관련 수업을 듣게 되면서 아나콘다를 설치하게 되어서 조사하였다

아나콘다란

아나콘다(Anaconda)는 수학과 과학 분야에서 사용되는 여러 패키지들을 묶어 놓은 파이썬 배포판으로서 SciPy, Numpy, Matplotlib, Pandas 등을 비롯한 많은 패키지들을 포함하고 있다.
Anaconda는 특히 최근에 데이타 사이언스와 머신 러닝 분야에서 파이썬을 사용하기 위해 기본적으로 설치하는 배포판이 되었다(데이터 과학 및 기계학습을 수행하는 가장 쉬운 파이썬 배포판이다)

Anaconda는 패키지 관리자, 환경 관리자, Python / R 데이터 과학 배포판 및 1,500 개 이상의 오픈 소스 패키지 모음입니다

구성된 패키지

  • 라이브러리 관리

    • Conda
  • 시각화

    • Matlpotlib, Bokeh, Datashader, HoloViews
  • 데이터 분석

    • Numba, pandas, DASK, numPy, sciPy
  • 기계학습

    • TensorFlow,
  • Jupyter

  • spyder

  • H2o.ai

아나콘다 구성요소

4개의 구성요소

  • 아나콘다 네이게이터
  • 아나콘다 프로젝트
  • 데이터 사이언스 라이브러리
  • Conda(라이브러리, 종속성 및 환경 관리)

Data Science 라이브러리는 (a) Jupyter와 같은 IDE 개발도구, (b) Numpy, SciPy 같은 과학 분석용 라이브러리, (c) Matplotlib 같은 데이타 시각화 (Data Visualization) 라이브러리, (d) TensorFlow 같은 머신 러닝(Machine Learning) 라이브러리 등을 포함하고 있다.

Anaconda Navigator는 UI 클라이언트로서 하부 컴포넌트를 쉽게 사용하도록 한 데스크탑 포털 기능을 담당한다. 예를 들어, Jupyter나 Spyder 같은 개발도구를 이곳에서 Launch할 수 있다.

주피터 노트북

주피터 노트북(Jupyter Notebook)은 웹 브라우저에서 파이썬 코드를 작성하고 실행해 볼 수 있는 개발도구이다. 일반적으로 아나콘다(Anaconda)를 설치하면 Jupyter Notebook이 함께 설치되어 Jupyter를 사용할 수 있다. 물론 Anaconda를 사용하지 않는 경우 pip 을 통해 Jupyter 패키지를 설치할 수도 있지만, 통상 Anaconda를 설치해서 사용할 것을 권장한다.

Anaconda가 설치된 후, Anaconda 메뉴중 Jupyter Notebook을 선택하거나 Anaconda Navigator에서 Jupyter Notebook 메뉴를 선택하면 Jupyter를 실행할 수 있다.

Anaconda 메뉴중 Jupyter Notebook을 선택한 경우, Jupyter Notebook 서버 (콘솔 프로그램)와 클라이언트로 사용되는 웹 브라우저 등 2개의 프로그램이 실행된다. Notebook 서버 프로그램은 백그라운드에서 실행되는 파이썬 프로그램으로 웹 브라우저 클라이언트가 접속하는 서버 프로그램이며 실제 파이썬 코드 실행은 여기에서 일어난다. 그리고, 웹 브라우저는 파이썬 코드를 입력받고, 실행해 볼 수 있는 UI를 제공하는 클라이언트로서 코드를 Notebook 서버에 보내 결과를 다시 웹 브라우저에 뿌려 주게 된다.

Anaconda Navigator에서 Jupyter Notebook 메뉴를 선택한 경우에는 윈도우즈의 경우 Notebook 서버 콘솔 프로그램이 백그운드 프로세스로 실행되어 화면에 보이지 않으며, 클라이언트인 웹 브라우저만 화면에 나타난다. 하지만, 동작 방식은 기본적으로 동일하다

주피터노트북스공유사이트

파이썬 배우는 이유 특징 활용

Posted by HULIA(휴리아)
2019. 4. 28. 22:11 백엔드개발/파이썬

파이썬 왜 배워야 하는가?

  • 생산성이 높기 때문(빠르게 개발이 가능하다)
  • 먼저 개발하라 그리고 나서 성능을 개선하라

파이썬의 특징

  • 인터프리터 언어
  • 동적인 데이터 타입 결정 지원
  • 플랫폼 독립적 언어
  • 개발 기간 단축에 초점을 둔 언어
  • 간단하고 쉬운 문법
  • 고수준의 내장 객체 자료형 제공
  • 메모리 자동 관리
  • 쉬운 유지 보수
  • 많은 수의 라이브러리 제공
  • 짧아지는 코드
  • 높은 확장성

파이썬의 활용

  • 시스템 유틸리티
  • GUI
    • wxpython, tkinter
  • 게임 프로그래밍
    • 파이썬 게임엔진 : PyOpenGL, PySDL, PyGame, Kivy, PyOgre, Panda3D, Cocos2D, PySoy
  • 웹 프로그래밍
    -django 프레임워크
  • 수치 프로그래밍
    • nextworkx 모듈
  • 데이터베이스 프로그래밍
  • 데이터분석(빅데이터)
    • pandas 모듈

파이썬으로 만들어진 프로그래밍
파이썬으로 할 수 있는 것들

파이썬 장점

  • 들여쓰기를 강조한 언어(가독성을 높여준다)
  • {}괄호를 넣지 않았기 때문에 프로그램을 좀 더 깔끔하게 만들어 준다

파일입출력 기본 - 파이썬

Posted by HULIA(휴리아)
2019. 4. 28. 19:59 백엔드개발/파이썬

파이썬 파일 입출력

open()과 close()는 파이썬 내장함수라서 모듈 import없이 사용가능

open(filename, mode);
close();

파일 처리 모드

r : 읽기모드(모드를 쓰지 않으면 기본모드)
w : 쓰기모드
a : 파일에 맨뒤에 추가모드
rb : 이진 파일 읽기모드
wb : 이진 파일 쓰기모드
ab : 이진 파일 맨뒤에 추가모드
w+ : 읽기쓰기모드

현재 디렉토리 위치 출력(os모듈)

import os
print os.getcwd();

파일 쓰기 예시

s = """hello
hi
korea."""
f = open('t.txt', 'w')
f.write(s)
f.close()

파일 읽기 예씨

f = open('t.txt', 'r') #open('t.txt') 같은 의미다
s = f.read()
print s
f.close()

라인 단위로 파일 읽기

총 4가지 방식이 있음
1)for문을 이용하는 방법

f = open('t.txt')
i = 1
for line in f:
    print i, ":", line,
    i +=1
f.close()

2)readline() : 한번에 한줄씩 읽는다

f = open('t.txt')
line = f.readline()
i = 1
while line:
    print i, ":", line,
    line = f.readline()
    i +=1
f.close()

3)readlines() : 파일 전체를 라인 단위로 끊어서(개행문자까지 한번씩 읽어드림) 리스트에 저장한다

f = open('t.txt')
print f.readlines()

f.seek(0) #파일 맨 앞으로 이동
i = 1
for line in f.readlines():
    print i, ":", line,
    i +=1
f.close()

4)xreadlines() : readlines()와 유사하지만 파일 전체를 한꺼번에 읽지 않고, 상황별로 필요한 라인만 읽는다. 대용량의 파일을 for문 등으로 라인 단위로 읽을 때 효율적이다

f = open('t.txt')
print f.xreadlines()

f.seek(0) #파일 맨 앞으로 이동
i = 1
for line in f.xreadlines():
    print i, ":", line,
    i +=1
f.close()

1), 4)방법을 추천함

라인 단위로 파일 쓰기

lines = ['first line\n','second line\n','third line\n']
f = open('t1.txt','w')
f.writelines(lines)
f.close

# 파일 내용 확인
f = open('t1.txt')
print f.read()
f.close()
lines = ['first line','second line','third line']
f = open('t1.txt','w')
f.write('\n'.join(lines))
f.close

# 파일 내용 확인
f = open('t1.txt')
print f.read()
f.close()

파일내에 존재하는 단어의 수

f = open('t.txt')
s = f.read()
n = len(s.split()) # split() -> 공백문자를 기준으로 문자를 잘라 list 화
print n
f.close()

기존 파일에 내용 추가 예시

f = open('t.txt', 'a')
f.write('forth line\n')
f.close()

# 파일내용 확인
f = open('t.txt')
print f.read()
f.close()

파일 내 임의 위치로 접근

seek(n) : 파일의 첫번째 위치에서 n번째 바이트로 포인터 이동
tell() : 파일 내 현재 포인터 위치를 반환

f = open('t.txt', 'w+')
s='02121222022'
f.write(s)


# 파일내용 확인
f.seek(5)       # 시작부터 5바이트 이동
print f.tell()  # 현재위치 알려줌
print f.read(1) # 1문자 읽기

f.close()

파이썬을 이용한 자동화 스크립트 강의 정리1

Posted by HULIA(휴리아)
2018. 11. 18. 01:40 백엔드개발/파이썬

파이썬 특징

-가독성(읽기 쉽다) - 문법이 간결하고 들여쓰기를 기반으로 가독성이 좋음

-풍부한 라이브러리를 바탕으로 무궁한 확장성

-접착성 - C로 구현된 모듈을 쉽게 만들어 붙일 수 있음 반대 기능도 가능함

-유니코드 - 문자열이 모두 유니코드로 나타남

-동적 타이핑(변수타입이 동적) - Dynamic Language, interpreted Language

-개발생산성이 빠르다

-다목적이다


파이썬 활용

-배우기 쉬운 교육용 프로그래밍 언어

-쉘 스크립트와 배치프로그램 대안

-데이터 과학자가 되려면 필수

-웹서버 어플리케이션 - Django, Flask

-개인과 팀 단위의 업무 자동화


파이썬 실습예제

-파일 및 디렉토리 정리 작업

-엑셀파일 및 CSV 파일 작업 자동화

-웹에서 데이터 가져와서(스크래핑) 정리작업 자동화

-웹 서비스를 활용하여 데이터 수집 및 정리작업 자동화

-비정형 데이터(주로 텍스트 데이터)에서 특정 데이터 검색

-반복되는 메일 보내기 작업 자동화

-메일을 통한 업무 작업화


Pycharm설치

왼쪽하단의 네모버튼을 클릭해서 사이드 메뉴 나오도록 함

Editor Font : consolas

Console Font : consolas


변수들의 메모리 공간을 보여준다

다른언어도 알 수 있음

pythontutor.com


파이썬 코딩 스타일 가이드

www.pep8.org



문자열 자르기 할때 음수 인덱스 사용가능

문자열 반복할때 문자열*4(4번 반복)


리스트의 특징

마지막 요소부터 접근가능

ex) list = ['red','blue','white']


튜플의 특징

읽기만 가능하므로 속도가 빠름

튜플은 더 적은 공간을 사용한다

실수로 튜플의 항목이 손상될 염려가 없다

함수의 파라미터들은 튜플로 전달된다.

ex) tuple = 'red', 'blue', 'white'


사전의 특징

key과 값이 한쌍인 형태로 이용하는 형태

ex) dictionary = { 'cccc':'dddd', 'ffff':'gggg' }


시퀀스 데이터 타입

-str, list, tuple

-unpacking이 가능하다

a,b,c,d = 시퀀스 데이터 타입


예제 코드 모음 사이트

http://code.activestate.com/recipes/langs/python/



정규식테스트검증 웹 사이트

https://regex101.com

http://regexr.com



파이썬 개발 환경 설정

Posted by HULIA(휴리아)
2017. 11. 5. 08:28 백엔드개발/파이썬


1. 파이썬 설치
https://www.python.org/downloads/

2. PATH 설정

3. Virtualenv 모듈 서치
파이썬 설치하면 pip 모듈은 기본으로 내장되어 있다
추가적으로 필요한 모듈은
Vitualenv이다

Virtualenv는 프로젝트별로 모듈관리하기 위한 것이라고 생각하면 된다
각 프로젝트에 필요한 모듈을 설치할수 있도록 한다

참고로
Pycharm IDE를 쓰면 Virtualenv 환경을 쉽게 설정하고 쉽게 사용할 수 있다

4. 개발툴 설치
개인적으로 Pycharm을 선호하나
이클립스나 Visual studio code나 Atom을 사용해도 무방하다


파이썬 패키지가 설치되지 않거나 SSL 관련 오류가 날때

Posted by HULIA(휴리아)
2017. 9. 15. 01:11 백엔드개발/파이썬

pip install --trusted-host pypi.python.org [설치하려고 하는 패키지이름]

 

이렇게 하면 설치가 잘된다