2016년 7월 26일 화요일

Head First Python 요약 - 4장,5장

Python BIF(내장함수)

  • list() : data 객체를 만든다, 리스트를 생성
  • range() : 필요한 범위에 일련의 숫자를 생성하고 나열자를 반환
  • enumerate() : 0부터 시작해서 번호가 매겨진 테이터의 리스트를 생성
  • int() : 문자열이나 다른 숫자를 정수로 변환한다
  • id() : 파이썬 객체의 고유한 식별자를 반환하다
  • next() : 리스트와 같은 나열할 있는 data 구조체에서 다음 항목을 반환 한다.
  • print() : 출력 한다.
    • 예) print("\t",end='') --> 탭를 출력하고 줄바꿈은 문자는 없음을 의미
  • open() : 파일 열기
  • file 관련
    • readline() : 한줄 읽기
    • close() : 파일 닫기
    • seek() : 파일 위치 이동
    • split() : 분활 하기
    • find() : 주어진 문자의 위치를 찾는다. 없으면 -1 값을 반환
  • 모듈 os
    • getcwd() : 현재 디렉토리
    • chgdir() : 디렉토리로 이동
    • path.exists() : 파일 존재 여부
  • help() : 도움말
  • str() : 문자열 객체로 변환
  • locals() : 집합 객체를 반환 한다.


Python Error

  • ValueError : 런타임에러 , 값이 너무 많거나 , 너무 적어서
  • IOError : 파일에서 발생하는 에러



Chapter 4. 영속성

정리

  • else if 대신 elif 로 사용함.
  • open() : 함수를 사용하여 파일 읽거나 쓰거나
    • Read : read_f =open('data.out','r')
    • Write : out_f= open('data.out.'w')
  • close() : 파일을 닫아서 캐쉬의 내용을 실제 파일에 쓴다.
  • 파이썬에서는 문자열불변 이다.
    • 그외 불변들
      • 숫자
      • 불변형 리스트 터플
  • with 문을 사용한 파일 작업 처리
    • 예제)
try:
  data = open('its.txt','w')
  --------------------------
  with open('its.txt','w') as data:
    • with 사용 시 잇점은 finally를 사용하여 파일을 닫을 필요가 없음.
  • print(‘파일을 쓸 내용’,file=out_f) : out_f에 내용을 출력 한다.
    • file : 올수 있는 내용
      • sys.stdout (기본값)
      • sys.stderr
      • file 객체
    • end 파라 미터 : 기본값을 \n(개행 문자), 이며 일반 행을 마지막 문자를 의미 한다.
  • pickle : 모든 데이타 객체를 파일 저장/읽기를 하는 표준 라이브러리
    • dump() : 테이터 저장
    • load() : 테이터 읽기
import pickle
with open('rfile.txt', 'rb') as r_file
  new_obj = pickle.load(r_file)
with open('wfile.txt', 'wb') as w_file
  pickle.dump(new_obj,w_file)
  • str() : 어떤 객체는 문자열로 변환 한다.
  • locals() : 현재 위치에서 접근할 수 있는 변수들의 집합을 반환 한다.
  • in : 연산자를 하여 특징 집합에 존재여부를 확인 할 수 있다.
    • if ‘find_var_name’ in locals():  -> 주어진 로컬 변수에 변수를 찾는다.


Chapter 5. 테이터의 이해

정리

  • 두 가지 정렬
    • 원본 정렬 : sort() , 즉 원본 자체를 정렬
    • 사본 정렬 : sorted() , 사본을 생성하여 정렬
    • 정렬 파라미터 reverse=True|False , True 이면 내림 차순
  • 리스트의 지능화
    • 리스트를 다른 리스트로 변환 하는 일을 정리
      • 변환된 데이터를 저장할 리스트 생성
      • 원래 리스트의 모든 테이터 항목을 나열
      • 나열하면서 각 데이터 항목을 변환
      • 변환된 데이터를 새 리스트에 추가
clean_list = []
for each_t in org_list:
   clean_list.append(modify_x(each_t))
-----------------------------------------
clean_list = [modify_x(each_t) for each_t in org_list]
  • 집합 : 중복된 데이터가 없음
    • data_set = set() : 빈 집합을 생성함. 팩토리 함수 사용
    • data_set = set(list) : 주어진 리스트 받아서 집합을 생성
  • 서브리스트 설명 : my_list[Index:End] 이면
    • Index : 시작 Offset
    • End : 항목 index 이전 까지 가져 온다.


출처 : Head First Python (한빛출판사)

2016년 7월 25일 월요일

Head First Python 요약 - 2장,3장

IDLE 단축키들

  • [Tab] : 자동 완성 목록 제공
  • [Alt + P] : 이전 입력 내용
  • [Alt + N] : Next 입력 내용
  • [F5] : 모듈 코드 실행

Chapter 2, 함수 모듈

정리

  • 파이썬 모듈 경고 보여 주기
    • import sys; sys.path
    • ; “ : 여러 문자을 동시에 한줄에 표시하고자 할때 사용함.
  • 파이썬 모듈 배포 순서
    • 배포준비
      • 폴더 생성
      • setup.py 생성

from distutils.core import setup
setup(
       name            = 'nester',
       version         = '1.3.0',
       py_modules      = ['nester'],
       author          = 'cosmoslight',
       author_email    = 'cosmoslight.huni@gmail.com',
       url             = 'http://http://namusoft.vps.phps.kr/',
       description     = 'a simple printer of nested lists',        
   )
    • 배포 패키지 만들기
      • 배포 패키지 생성
        • python.exe setup.py sdist
      • 파이썬 환경에 설치 : 리눅스 경우 관리자 권한 필요
        • python.exe setup.py install
  • 배포 패키지 구조 보기
NESTER
 MANIFEST
 nester.py
 setup.py
├─build
 └─lib
         nester.py
└─dist
       nester-0.0.0.zip
  • 모듈 사용하기 :
    • import module
    • 다른 방법 : from module import function
      • 위 방법은 현재 네임스페이스 동일한 함수를 덮어쓰게 됨.
  • 네임스페이스
    • __main__ : 기본 네임스페이스
    • nester : 사용자 모듈 네임 스페이스
      • 사용예 : nester.print_lol()
  • 코드를 PyPI에 등록하기
    • python.exe setup.py register
    • python.exe setup.py sdist upload
  • *.pyc 파일 ?
    • 인터프리터가 여러분의 모듈 코드를 처음으로 실행할 때 코드를 읽어서 내부적인 바이트 코드를 실행되는 것
  • 내장함수(BIF)의 네임스페이스
    • __builitins__
  • range() 사용예
for num in range(10):
  print(num)
  • 선택적 인자
    • 기본값을 지정, 생략하면 기본값이 지정됨
    • : def print_lol(the_list, level = 0):

Chapter 3. 에러 처리

정리

  • 파일 열고 -> 한줄씩 읽고 -> 출력하고 -> 닫기
the_file = open('file.txt')
the_file.seek(0)
for each_line in the_file:
  print(each_line)
the_file.close()
  • 테이터 나누기
    • (role , line_spoken) = each_line.split(":")
      • role : 첫번째 구분 영역
      • line_spoken : 두번째 혹은 나머지 구분 영역 , 만약 split(“:”,1) 일때는
        나머지 구분 영역
  • 반대 조건
    • if not Boolean:
  • 에러을 피하는 방법
    • 논리 검사 코드 추가 : 일반적으로 다른 프로그램에서 처리한다.
    • 예외 처리 기법
  • 런타임에러(Python에서는 예외)를 무시 하면 크래시 됩니다.
  • Python 에러 처리 메커니즘
    • 먼저 실행하고, 나중에 복구하기
    • try/except/finally
      • try: 런타임 에러를 발생시킬 수도 있는 코드
      • except: 여러분이 정의한 에러 복구 코드
      • finally: 마무리 실행되는 코드
  • Python의 두종류 리스트
    • 변형없는 리스트 : tuple , () , 괄호
    • 변형될수 있는 리스트 : [] , 대괄호
  • pass : 빈 문장 , empty/null 문장이라고 하기도 함.

출처 : Head First Python (한빛출판사)