Python

    [Python] 03. bytes, str, unicode의 차이점을 알자

    본 포스팅은 책을 공부하고 정리한 내용입니다. 파이썬의 문자 시퀀스 파이썬의 문자 시퀀스를 나타내는 방시은 유니코드 문자열 방식과 bytes(raw 8bit) 형식 2가지이다. 파이썬 3은 문자는 str, bytes는 bytes 클래스로 표현 파이썬 2는 문자는 Unicode, bytes는 str 클래스로 표현한다. 위와 같기 때문에, 파이썬 2와 파이썬 3을 섞어 쓸 때는 조심해야 한다. bytes ? bytes 인스턴스는 문자열 앞에 b를 붙여서 생성한다. ex : b'\x41' bytes는 ascii상수로 이루어져 있다. 위 예를 디코딩하기 위해 해석해보면 '\x'가 나타내는 것은 이 코드는 hexa의 표현이라는 것이다. 그럼 10진수로 '\x41'은 몇일까? 65이다. 이제 65를 아스키 코드로 ..

    [Python] 02. PEP8 스타일 가이드를 따르라

    본 포스팅은 책을 공부하고 정리한 내용입니다. PEP란? Python Enhancement Proposal 의 약자이다. 번역하면 파이썬 개선 제안서,,, 무슨 말이냐면 그냥.. 파이썬 코드를 어떻게 구성할지 정해주는 스타일 가이드이다. 코드는 기능적인 것을 구현하기 위해 언어마다 문법만 지킨다면 코딩 스타일은 사실 개발자 마음이다. 근데 개발을 처음부터 혼자하면 상관 없지만, 대다수의 상황상 우리는 같이 협업하여 서비스를 만들어 내야한다. 당연하게도 각자의 스타일대로 짜고 만나서 설명해주는 비효율성보다는 하나의 고정된 표준 스타일이 있다면 좀 더 효율적인 협업이 가능할 것이다. 그래서 파이썬 내에서 제안된 스타일 가이드가 존재하는데 그게 바로 PEP이다. PEP 8은 깔끔한 파이썬 코드를 작성하는 방법..

    [Python] 01. 사용중인 파이썬의 버전을 알자

    본 포스팅은 책을 공부하고 정리한 내용입니다. 1. 왜 버전을 알아야 하는지? 프로그램 개발자들은 유지 보수를 위해, 프로그램을 버전업한다. 버전 업이 될 때마다 여러 기능이 추가되거나 삭제되기도 한다. 이는 파이썬 버전업에도 동일하게 변화를 겪었다. 특히 파이썬 2에서 3으로 변화할 때 프로그램의 상당 부분이 변경되었다. 파이썬 2는 2020년 1월 1일부로 더 이상 지원되지 않는다.(버그 수정, 보안 패치, 새로운 기능의 역포팅이 이루어지지 않음) 그렇기 때문에 특정 파이썬 2코드는 파이썬 3에서 실행했을 시 에러를 출력하는 경우가 꽤 많다. 파이썬 3을 쓰는 것을 강력히 추천하지만, 2를 써야 하는 경우 2to3이나 six 같은 도구의 도움을 받아 파이썬 3으로 포팅하는 것을 제안한다. 이와 같은 ..

    class 상속과 method 오버라이딩

    기존 클래스를 상속받고 특정한 method를 수정하고 싶을 때 또는 새로운 method를 추가하고 싶을 때에도 overiding을 사용한다. 오버라이딩이란 "부모 클래스의 메소드를, 자식 클래스에서 재정의 하여 사용하는 것"을 의미한다. class perosn: def __init__(self, name: str) -> None: self.name = name def show(self): print(self.name) 위와 같은 person이라는 객체가 있는데 나는 이를 상속받아 학생이라는 클래스를 만들려고 한다. 학생이라는 클래스에는 name뿐만아니라 grade변수도 갖고 싶다. 그래서 우리는 __init__ 메서드를 오버라이딩하고 show함수 또한 grade 변수를 추가해 오버라이딩해준다. (__in..

    [Python] keyword

    파이썬에는 키워드 (Keyword)는 이미 예약되어 있는 문자열이 있다. 그렇기 때문에 따로 변수나 함수의 이름 등으로 사용할 수 없다. 만약 변수 이름으로 사용한다면 Syntax Error가 난다. SyntaxError: invalid syntax 파이썬에 존재하는 33개의 키워드는 아래와 같다. False, None, True, and, as, assert, break, class, continue, def, del, elif, else, except, finally, for, from, global, if, import, in, is, lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield 파이썬에서 키워드를 확인하는 방법 i..

    [Python] __future__ (import __future__)

    프로그래밍 공부를 하다보니 종종 다른 사람들의 코드에서 아래와 같은 구문을 보게 된다 from __future__ import absolute_import, division, print_function, unicode_literals __future__라는 임포트 형식인데, 도대체 이걸 왜 쓰는 것일까?? 프로그래밍 언어들은 사용자들의 피드백에 따라서 그 언어 고유의 내장 기능을 추가하고 수정한다. 파이썬도 그렇게 기능들이 진화하며 버전업을 해간다. 파이썬의 공식 홈페이지 (https://www.python.org/downloads/)에서 여러 버전을 확인 할 수 있다. 파이썬3버전을 쓴다면 문제가 없겠지만 2세대와 3세대는 차이가 꽤 크며, 3버전의 많은 기능들을 2버전에서는 호환하여 사용할 수가 없다..

    [python] Class이해하기

    class class는 프로그래머가 지정한 이름으로 만든 하나의 독립된 공간이고, namespace라고 부른다. 클래스에 대한 또다른 설명은 다음과 같다. 함수뿐만 아니라 다양한 변수를 포함한 큰 프로그램을 하나의 묶음으로 정의하는 것이 "클래스(class)"이다. class 왜 쓰는 걸까? 같은 데이터를 가지고 계속해서 연산의 결과를 저장하며 여러가지 함수를 묶어 처리해야 하는 경우가 있다. 예를들어 계산기를 구현한다고 할 때 계속해서 global변수로 연산결과를 받아서 다음 연산을 함수로 넘겨 진행해도 되지만, 이렇게 한다면 다른 계산기로 다른 연산을 하고 싶을 때는 같은 함수를 여러개 작성해야 하는 일이 생긴다. 그래서 우리는 class를 사용하고, 그 데이터 처리에 필요한 변수와 함수를 모두 하나..

    [python] list앞에 붙은 * (unpacking)

    unpacking을 이해하기 위해 아래와 같은 함수가 있다고 가정해보자 def print_numbers(a, b, c): print(a) print(b) print(c) 위의 print_numbers함수에 (10,20,30)을 넣어주면 10, 20, 30이 각 줄에 출력될 것이다. unpacking 인수를 순서대로 넣을 때 리스트나 튜플을 사용할 수 있는데, 리스트와 튜플 앞에 *(애스터리스크)를 붙여 인자들을 일일히 넘기는 효과와 같은 효과를 준다. 즉 "리스트의 포장을 풀어준다"라고 이해하면 된다. 함수 (*리스트) 함수 (*튜플) x = [10, 20, 30] print_number(*x) 위 함수는 위와 같은 출력의 결과를 갖게 된다. [ ref ] https://dojang.io/mod/page..

    [python] python 파일내에 terminal 명령어 포함하는 방법

    자동화 스크립트 파일을 작성하다보면 python 파일 하나로 프로그램을 구동 및 터미널에서의 작업도 함께 작성하고 싶어질 때가 있다. Terminal에서 처리하고 싶은 명령어를 파이썬 파일에 아래 방식으로 추가하면 terminal 명령어도 문제없이 실행된다. # test.py import os, sys dir_path="./test" terminnal_command = f"mkdir {dir_path}" os.system(terminal_command) terminal_command = "명령어" os.system(terminal_comman) 파이썬 파일 내에서 dir_path를 지정하고, 이 스크립트가 수행됨에 따라 해당 dir_path에 디렉토리를 생성하고 싶다면 위와 같이 터미널 명령어를 작성하면..

    [python][basic] 파일 열고 닫기 (open, close)

    파일은 텍스트 파일과 바이너리 파일 두 가지 종류가 있다. 텍스트 파일 : 사람이 읽을 수 있는 글자로 저장된 파일 바이너리 파일 : 컴퓨터가 읽고 이해할 수 있는 이진 데이터를 기록한 파일 이미지 뷰어로 볼 수 있는 JPG 이미지 파일은 이미지의 이진 데이터를 JPG 형식의 파일로 저장한 바이너리 파일이다. 파이썬에서 파일을 다루는 방법 open (파일이름, 모드) 파일 이름 : 파일이 존재하는 절대경로나 상대경로 모드 : 파일을 오픈하는 모드 r / rt : 텍스트 모드로 읽기 w / wt : 텍스트 모드로 쓰기 a / at : 텍스트 모드로 파일 마지막에 추가하기 rb : 바이너리 모드로 읽기 rw : 바이너리 모드로 쓰기 ab : 바이너리 모드로 파일 마지막에 추가하기 open()함수는 파일을 정..