2019년 7월 10일 수요일

[책]Head First Programming

Head First Programmming


책 정보

  • 출판사 : 한빛미디어
  • 출판년도 : 2011년3월25일(초판)
  • 참고 자료
  • 원저 사이트 :
  • 출처 : Head First Programming (한빛미디어)

저자 정보

  • 원저자 : 폴 배리, 데이빗 그리피스
  • 변역자 : 강권학

약어들(용어들)

  • IDLE : Integrated DeveLopement Environment
  • UTC : Universal Time Coordinated , 협정 세계 시
  • PyPA : Python PAckage , 파이썬 패키징 및 설치
  • PIP : Python Package Index, 파이썬 패키징 및 설치 도구
  • FQN : Fully Qualified Name , 완전 수식 명칭

추가적인 공부 필요

  • SQLite에 대한 공부 필요하다

관련 Web Sites


Pygame 라이브러리 설치 및 설명

설명

  • 게임 제작에 사용할 수 있는 라이브러리

설치

  • 설치 라이브러리를 다운로드 (32bit/64bit 확인 필요)

관련 사이트

  • 공식 사이트 :
  • pygame 공식 사이트 : 링크
  • pygame 공식 다운로드 사이트(이전 공식 사이트) : 링크
  • pypi 설치용 라이브러리 사이트(강추) : 링크

IDLE 단축키들

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

Python 예약어 

  • def : 새 함수 정의 할때 사용
  • return : 반환 하기

Python BIF 

  • input() : 키보드 입력을 받는다.
  • random.randint() : 난수를 생성
  • float() : 문자열 -> 실수로
  • int() : 문자열 -> 정수로

Python Error

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

Chapter1. 처음으로 하는 코딩

정리

  • = 와 == 의 차이
  • = : 할당
  • == : 동일 여부 비교
  • != : 다름 여부를 비교
  • > : 크기를 비교
  • 들여쓰기 지울때 백스페이스 사용하라
  • while 루프 :

Chapter2. 텍스트 테이터

정리

  • urllib.request : URL 요청 모듈
  • 예제

import urllib.request

page = urllib.request.urlopen(URL)

text = page.read.decode("utf8")

  • 기타 메소드
  • urlcleanup() :
  • urlretrieve() :
  • 서브스트링
  • s[start_index : end_next_index]
  • start_index : 시작 글자 인텍스
  • end_next_index :  글자 다음 인텍스
  • 예) 원문자 "cosmoslight"[6:11] = "light"
  • 문자열 메소드들
  • endswith(str) : 문자열 마지막에 주어진 문자열이 있으면 True
  • upper() : 대문자로 변환  사본 반환
  • lowwer() : 소문자로 변환  사본 반환
  • replace(a,b) : 전체 문자열에서 a  b  변환  사본 반환
  • strip() : 앞뒤 공백 제거  사본 반환
  • find(str) : 주어진 문자열 최초 발견 된의 첫번째 인텍스 값을 반환
  • startswith(str) : 문자열 첫음에 주어진 문자열이 있으면 True
  • float(str) : 주어진 문자열 실수형을 변환
  • time 시간 모듈 라이브러리 (자세한 내용 help(time)
  • time.clock() : 부동 소수점 수로 표현된  단위의 현재 시간 반환
  • time.daylight : 서머 타임 적용 여부를 숫자로 반환 , 0 이면 적용 되지 않음
  • time.gmtime() : UTC 날짜와 시간 반환
  • time.localtime() : 표준시간대에 영향 받은 지역 시간을 반환
  • time.sleep(secs) : 주어진 시간(초) 동안 쉰다
  • time.time() : 1970 1 1 이후 시간을  단위로 반환 한다.
  • time.timezone : UTC 지역시간 차이를  단위로 반환 한다.

Chapter 3. 함수

정리

  • 함수 정의 형식
  • def function_name():
  • DRY 원칙 : Don’t Repeat Yourself
  • # : 한 줄 주석 처리 (PyCham의 단축키 : [ ctrl + / ]
  • 한줄 인자를 선택적으로 사용할 수 있다.
  • 기본값을 적용할 수 도 있음
  • 지역변수
  • 함수 내의 변수는 스택프레임에 저장되면 함수 수행을 완료되면 삭제된다.

Chapter 4. 파일과 배열 안의 데이터

정리

  • 파일 데이터 접근
  • open -> for -> close 패턴
  • 텍스트 메소드 split() : 빈문자열 나눈다
  • 예) (a , b , c) = text.split() : a , b ,c  구분 한다.
  • 배열 내장 메소드
  • count() : 전체 개수
  • extend() : 배열을 추가 함
  • index() : 검색  해당 인텍스 반환
  • insert() : 지정한 인텍스를 항목을 삽입
  • pop(): 배열의 제일 마지막 항목을 제거하고 반환 (위치 지정 가능)
  • remove(): 배열의  번째 항목을 제거하고 반환
  • reverse(): 순서를 반대로
  • sort(): 배열 정렬(낮은 -> 높은)
  • [] : 배열이나 리스트 선언 방법

Chapter 5. 해시와 데이터베이스

정리

  • {} : 해시 선언
  • scores[키] = '값'
  •  : 문자열이나 숫자
  • 해시 내장 메소드
  • keys() : 키의 배열을 반환
  • value() : 값의 배열을 반환
  • items() :  , 값의 2 배열을 반환 한다.
  • 존재하지 않는 메소드들
  • 정렬
  • 추가
  • 내장 정렬 함수 : sorted()

Chapter 6. 모듈화 프로그램밍

정리

  • 스트링 포맷팅 하기
  • 예) print("%s %d\n" % ("xxx", 12))
  • %s : 문자열
  • %e : 지수 표현 하기
  • %d : 숫자
  • %f : 부동 소수 표시
  • %x : 16진수 표시
  • %4.2f : 소수점 이하 두자리 표시
  • %07d : 7자리에 앞에는 0으로 채움
  • from 모듈 import * : 모듈에 있는 모든 것 사용한다.
  • FQN 방식
  • import coffee_pos
  • 사용예 coffee_pos.discount

Chapter 7. 그래픽 사용자 인터페이스 구현하기

정리

  • pygame :
  • 아래 함수는 사운드를 차례대로 연주 하기 위한 메소드 이다.

def wait_finish(channel):

    while channel.get_busy():

        pass

  • 관련 설치 방법 위쪽 참고 하라!! -> 쉽지 않다.
  • GUI 관련 기본 패키지 : tkinter 의 클래스
  • Tk : 원도우
  • Tk.title() : 원도우 타이틀
  • Tk.geometry('WxH+X+Y') : 원도우 위치 조정
  • Tk.mainloop() : 이벤트 루프 시작
  • Button : 버튼
  • Button(app, text="", width=10, command=evt_func) : 초기화 함수
  • app : 원도우
  • text : 출력 문자열
  • width : 너비
  • command : 이벤트 처리 함수
  • pack(side='left', padx=10, pady=10) : 기본 원도에 연결 
  • side : 위치 , left , right , top , bottom
  • padx : 수평 여백
  • pady : 수직 여백
  • Label : 레이블
  • Label(app, text='', height=H)
  • app : 원도우
  • text : 표시 문자열
  • height : 높이
  • IntVar : 정수 랩퍼 클래스 , 주로 모델로 사용된다.
  • set() :  설정
  • get() :  얻기
  • Label 연결 속성 : textvariable

Chapter 8. GUI와 테이터

정리

  • Entry : 한 라인의 텍스트 입력
  • Entry(app) : 기본 초기화 함수
  • Entry.get() : 내용 수집
  • Entry.insert(0, str) : 0번째 내용 입력
  • Entry.delete(0, END) : 전체 삭제 , END 상수
  • Text : 여러 라인 텍스트 입력
  • Text(app) : 기본 초기화 함수
  • get("1.0" , END) : 1.0  1 0  처음 이라는  , 모든 문자열 수집 한다.
  • delete("1.0" , END) : 모든  삭제
  • insert("1.0", str) : 제일 앞에 텍스트 삽입
  • Radiobutton : 라디오 버튼
  • Radiobutton(app, text='' value='' variable=x) : 기본 초기화 함수
  • app : 원도우
  • text : 표시 문자열
  • value : 모델,  정보
  • variable : 제어 변수
  • StringVar : 텍스트를 저장하는 변수
  • set() : 변경
  • get() : 가져 오기
  • OptionMenu : 메뉴리스트 , 자바 콤보 박스
  • OptionMenu(app , model, *목록 ) :
  • app : 원도우
  • model : 모델 정보 객체 ,  선택된 목록중 아이템
  • *목록 : 리스트 , 배열 , *  배열을 의미하는  같다
  • Model , View , Controller 개념이 적용되어 있음 tkinter 모듈은



Chapter 8 1/2. 예외와 메시지 상자

정리

  • 예외 처리 형식
  • try/except 방식

try:

   예외 처리해야 코드 영역

except Exception as ex:

   예외 발생  처리 코드 영역

  • 메시지 상자
  • 모듈 : tkinter.message
  • 메시지 상자 유형
  • showinfo
  • showwarning
  • showerror(제목,출력문자열) :
  • askquestion
  • askokcancel
  • askyesnocancel
  • askretrycancel

Chapter 9. 그래픽 인터페이스 요소

정리

  • 원도우 관리자 : Window Manager , WM
  • 이벤트 처리 같은을 합니다.
  • 속성들
  • WM_TAKE_FOCUS : 마우스 클릭하여 원도우 활성화 되었을때 메인 원도우로 보내는 메시지
  • WM_SAVE_YOURSELF : 운영 체제가 종료   메인 원도우 보내는 메시지
  • WM_DELETE_WINDOW : 닫기 버튼을 클릭 되었을  메인 원도우로 보내는 메시지
  •  속성을 메인 원도우에 연결하기
  • app.protocol("WM_DELETE_WINDOW",shutdown) : shutdown 이벤트 처리 함수 연결
  • app.destory() : 원도울 app 종료 한다.
  • Checkbutton : 체크 상자
  • Checkbutton(app, variable= var, command=cmd, text='')
  • app : 원도우
  • variable : 제어 변수
  • command : 이벤트 처리 함수
  • text : 출력 문자열
  • Scale : 슬라이스
  • Scale(app, variable, from_, to, resolution, command, label, orient=HORIZONTAL)
  • app : 원도우
  • variable : 제어 변수
  • from_ : 최소값
  • to : 최대값
  • resolution : 단위
  • command : 이벤트 처리 함수
  • label : 표시 문자열
  • orient : 방향 (HORIZONTAL , VERTICAL)
  • DoubleVar : 배정도형 정보 객체

Chapter 10. 사용자 정의 위젯과 클래스

정리

  • 지역 함수 : 함수 안의 함수 , 필요한 것은 각 위젯에 대한 고유한 처리를 위해서
  • class : 새로운 클래스 정의
  • 상속 받을 때는 class SoundPanel(Frame):
  • 초기화 메소드 정의 : 다른 언어에서 생성자
  • def __init__(self)
  • self 키위드 의미 : 자신을 의미 한다. 자바에서 this와 비슷
  • os 모듈 :
  • os.listdir(“.”) : 현재 디렉토리의 모든 파일을 가져 오기 리스트로

부록 I

#1: ‘파이썬 방식’으로 하기

  • 아주 좋은 사이트 이다.

#2: 파이썬2 사용하기

  • 대표적으로 print 에서 괄호를 사용하지 않는다.

#3: 그 외 프로그래밍 언어들

  • Jython : 파이썬 코드를 JVM에서 실행 한다.

#4: 자동화된 테스트 기법들

  • unittest 를 참고

#5: 디버깅

  • pdb 를 참고

#6: 명령행에서 실행하기

  • 파일 형식 연결 사용하기
  • python3 파이썬_파일.py
  • python3 대신 py.exe 도 된다.

#9: 고급 프로그래밍 주제

  • thread
  • recursion
  • metaprogramming : 프로그램을 만들  있는 프로그램
  • functional programming : Lisp 같은 언어
  • regular expression : 정규식
  • unicode

#10: 그 외의 IDE , 셸, 텍스트 에디터

  • iPython : 스테로이드(steroids) 기반으로 구현한 일종의 파이쎤 쉘과 같은 것
  • Komodo
  • Eclipse
  • Eric

cosmoslight.huni@gmail.com님이 다음 문서를 첨부했습니다.
[책]Head First Programming
Google 문서: 온라인에서 문서를 만들고 수정해 보세요.
Google LLC, 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA
다른 사용자가 Google 문서의 문서를 나와 공유하여 발송된 이메일입니다.
Google 문서 로고

댓글 없음: