점프 투 파이썬

1465722766467

지난주 파이썬 강좌를 듣고 온 후에 흥미가 생겨서 파이썬 기초 책을 구매하였습니다.
파이선으로 검색하면 위키독스가 많이 나오는데요. 위키독스 운영자가 집필한 책이 ‘점프 투 파이썬’입니다.
첫장을 넘기면 나오는 문구가 너무 인상적이네요.

“Life is too short, You need Python!”
“인생은 너무 짧으니, 파이썬이 필요해!”

저자가 운영하는 사이트를 참고하면서 읽으면 도움이 많이 될듯합니다.

초급자 30일코스, 중급자 20일코스로 학습계획을 소개하고 있지만,
연습문제를 생략하고 빠르게 정독하면 5시간 정도면 독파 가능합니다.

01장 파이썬이란 무엇인가?

특징

  • 무료지만 강력
  • 간결
  • 빠른 개발속도

할 수 있는 일

  • 시스템 유틸리티 : 시스테 명령어 사용가능
  • GUI 프로그램 : 기본모듈인 TKinter(티케이인터)를 사용
  • 접착(glue) 언어 : C,C++ 결합
  • 웹 프로그래밍 : Django 등을 사용
  • 수치연산 : Numeric Python 이라는 수치연산 모듈 사용
  • DB 프로그래밍 : pickle 모듈 사용
  • 데이터 분석 : Pandas 모듈사용
  • 사물인터넷 : 라즈베리파이 제어

설치하기

02장 자료형

숫자형

  • 정수(123),실수(123.45),복소수(1+2j), 8진수(0o34), 16진수(0x2A)
  • 연산자 : **(제곱, 3**4 –> 81), //(나눈후 소수점 버림, 7//4 –> 1)

문자열 자료형

  • ‘string’, “string”, ”’multi line”’, “””multi line”””
  • 연산자 : +(연결), (“p”2 –> “pp”)
  • 인덱싱(“kimstar”[0] –> ‘k’), 슬라이싱(“Life is short”[0:4] –> ‘Life’)
  • 문자열 함수 : count(글자세기), find(위치 못찾으면 -1 리턴), index(위치 못찾으면 오류), join(문자열 삽입), upper(대문자 변환), lstrip/rstrip/strip(좌/우/양쪽 공백제거), replace(문자열 바꾸기), split(문자열 나누기)

리스트 자료형 (순서 있음)

  • a = []
  • b = [1,2,3]
  • c = [1,2,’life’,’is’]
  • 함수 : append(추가), reverse(뒤집기), index(위치 찾기), insert(위치에 삽입), remove(제거), pop(마지막 요소 돌려주고 제거), extent(리스트에 리스트 추가하여 확장)

튜플 자료형 (immutable, 리스트와 거의 비슷)

  • a = ()
  • b = (1,) # 하나일때는 컴마 필요
  • c = (1,2,3)
  • d = (‘a’,’b’,(‘c’,’d’))

딕셔너리 자료형 (key & value, 순서없음, key는 중복안됨)

  • dic = {‘name’:’kimstar’, ‘age’:25}
  • a = {1:’a’}
  • a[2] = ‘b’ # {2:’b’}가 추가됨
  • del a[2] # key가 2인 요소 삭제
  • 함수 : keys(dict_keys 리턴), values(dict_values 리턴), clear(모두 지움), get(key로 value 구하기, default값 사용가능), in(key가 있는지 조사)

집합 자료형 (중복X, 순서X, in으로 탐색 빠름)

  • a = set([1,2,3])
  • l = list(a) # 리스트로 변환
  • t = tuple(a) # 튜클로 변환
  • 집합 활용 : &(교집합), |(합집합), -(차집합)
  • 함수 : add(1개 추가), update(여러개 추가), remove(제거)

자료형의 참과 거짓

  • 거짓 : 문자열(“”), 리스트([]), 튜플(()), 딕셔너리({}), 숫자형(0), NONE
  • 참 : 거짓이 아닌거

자료형의 값을 저장하는 공간, 변수

  • 파이썬의 모든 자료형은 객체
  • a = 3
  • b = 3
  • a is b # True를 리턴함, 3이라는 객체는 a,b가 참조하고 reference count는 2이다. reference count이 0이면 가비지컬렉션된다
  • a,b = b,a # 두변수의 값을 바꿈
  • a = b # shallow copy
  • b = copy(a) # deep copy, copy 모듈 사용시

03장 제어문

if문

  • if/else/elif
  • {}를 안쓰고, indent(공백 or 탭)을 사용
  • pass # 아무것도 안함

while문, for문

  • break/continue 사용
  • for문은 리스트 내포(list comprehension)을 사용하여 직관적으로 표현 가능
  • result = [num * 3 for num in [1,2,3,4] if num % 2 == 0] # [3,6,9,12]

04장 입출력

함수

  • def sum (a,b): return a+b
  • def sum_many(*args): ~~~~ # 여러개의 인자 사용 가능
  • def sum_and_mul(a,b): return a+b,a*b # 튜플을 리턴
  • def say(nane,old,man=Ture): ~~~~ # man의 인자를 생략하면 디폴트값 사용, 디폴트 인자는 맨 뒤에 오게할것

사용자 입력과 출력

  • a = input() #사용자 입력값을 a에 대입
  • a = input(“입력하세요”)
  • print(a)
  • print(“life”, “is”, “too short”) # life is too short

파일 읽고 쓰기

  • f = open(“파일명”, ‘r’) # r(읽기), w(쓰기), a(추가)
  • line = f.readline() # 라인 읽기
  • lines = f.readlines() # 모든 라인 읽어서 리스트로 반환
  • data = f.read() # 전체 내용 읽기
  • f = open(“파일명”, ‘a’)
  • f.write(“data”) # 쓰기
  • f.close() # 파일 닫기

입력 인수 처리

  • args = sys.argv[1:] # import sys 하여 사용

05장 파이썬 날개 달기

클래스

  • 예제
class Calulator:
    def __int__(self):
        self.result = 0
    
    def adder(self, num):
        self.result += num
        return self.result

cat = Calculator()
print(cat.adder(3)) # 3
print(cat.adder(4)) # 7
  • 상속, 메서드 오버로딩, 연산자 오버로딩(__add__, __mul__, __truediv__ 등)

모듈

  • 동일한 경로 또는 PATH 또는 PYTHONPATH에 모듈 파일이 존재해야 함
  • 예제
import mod1 # mod1.py를 불러오기
print(mod1.sum(3,4)) # mod1의 sum 함수 사용
a=mod1.Math() # mod1의 Math 클래스
print(a.solv(2)) # mod1의 Math 클래스의 solv 메소드 사용

from mod1 import sum # mod1.py의 sum 함수만 불러오기
print(sum(3,4)) # sum 함수 사용

패키지

import game.sound.echo # game/sound/echo.py를 불러옴
game.sound.echo.echo_test()

from game.sound import echo # game/sound/echo.py를 불러옴
echo.echo_test()

from game.sound.echo import echo_test # game/sound/echo.py의 echo_test 함수를 불러옴
echo_test()

예외 처리

try:
    f = open('없는파일.txt', 'r')
except FileNotFoundError as e:
    print(str(e))
else:
    data = f.read()
    f.close()

내장 함수

  • abs : 절대값
  • all : iterable 자료형을 인자로, 모두 참이면 True
  • any : iterable 자료형을 인자로, 하나라도 참이면 True
  • chr : 아스키값 출력
  • dir : 객체가 가지고 있는 변수/함수를 보여줌
  • divmod : 나누기의 몫,나머지를 튜플로 리턴
  • enumerate : 순서있는 자료형(리스트,튜플,문자열)을 인자로, 인덱스를 포함한 enumerate 객체 리턴
  • eval : 실행가능 문자열을 입력받아, 실행한 결과를 리턴
  • filter : 필터할 함수와 반복가능 iterable 자료형을 인자로 받는다.
print(list(filter(lambda x: x>0, [1,-2,3,-4]))) # [1,3]
  • hex : 정수를 16진수로 변환
  • id : 객체의 주소값(레퍼런스)를 리턴
  • input : 사용자 입력
  • int : 정수로 변환, int(‘1A’, 16)은 16진수 1A를 10진수 정수로 변환
  • instance : 상속받았으면 True
  • lambda : 람다, 함수를 간격하게 만듬
sum = lambda a,b: a+b
sum(3,4) # 7
  • len : 요소의 길이
  • list : iterable 자료형을 list로 변환
  • map : 함수와 iterable 자료형을 인자로, 자료형의 각 요소에 함수를 실행하여 결과를 묶어서 리턴
  • max/min : iterable 자료형의 최대값/최소값
  • oct : 정수를 8진수로
  • open : 파일 열기
  • ord : 문자의 아스키값을 리턴
  • pow : pow(x,y)는 x의 y제곱한 결과
  • range : 입력받은 범위의 값을 iterable 자료형으로 리턴, range(5)는 [0,1,2,3,4]를 리턴
  • sorted : iterable 자료형을 정렬하여 리턴, sort()는 iterable 자료형을 정렬할뿐 리턴값 없음
  • str : 문자열로 변환
  • truple : iterable 자료형을 튜플로 변환
  • type : 자료형을 알려줌
  • zip : 자료형을 묶어줌. list(zip([1,2],[3,4]))는 [(1,3),(2,4)]를 리턴

외장 함수

  • sys : 파이썬 인터프리터가 제공하는 변수들과 함수들을 제어할 수 있게 하는 모듈
    • sys.argv : 명령행의 인수 전달
    • sys.exit() : 강제 종료
    • sys.path : 파이썬 저장 모듈 위치
  • pickle : 객체를 파일에 저장/읽기
    • pickle.dump(data,f) : 객체를 파일에 저장
    • pickle.load(f) : 객체를 파일에서 읽기
  • os : os 자원의 사용
    • os.environ() : 환경변수를 딕셔너리로 반환
    • os.chdir(“경로”) : 현재 디렉토리 변경
    • os.getcwd() : 현재 디렉토리 리턴
    • os.system(“dir”) : 시스템 명령어 실행
    • f = os.popen(“dir”) : 시스템 명령어 실행를 파일로
  • time : 시간
    • time.time() : UTC를 사용하여 현재시간을 실수로 반환
    • time.ctime() : 현재시간을 문자열로
    • time.strftime(“포멧”, time.localtime(time.time())) : 현재 시간을 포멧에 맞춰 출력
    • time.sleep(초) : sleep
  • 기타 모듈
    • shutil.copy(“a.txt”, “b.txt”) : 파일을 복사
    • glob.glob(“c:\p*”) : p로 시작하는 파일들을 모두 리턴함
    • filename = tempfile.mktemp() : 임시파일을 생성. close()하면 파일 사라짐
    • calandar.calandar(2016) : 2016년 달력을 출력
    • random.randint(1,10) : 1~10 정수형 난수를 리턴
    • webbrowser.open(“주소”) : 웹브라우저 실행

Notice

  • 이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용할 수 있습니다. 크리에이티브 커먼즈 라이선스
  • 저작권과 관련된 파일요청 및 작업요청을 받지 않습니다.
  • 댓글에 대한 답변은 늦을 수도 있습니다.
  • 댓글 남기기

    이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다