반응형

프로그래밍/Python 37

파이썬으로 엑셀파일 생성 및 불러오기

안녕하세요 Dibrary입니다. 이번엔 파이썬으로 엑셀파일을 다뤄보겠습니다. 엑셀도 여러 기능이 있고, 그걸 파이썬에서 다루려면 내용이 굉장히 광범위할텐데, 우선 파일을 만들고, 파일을 불러들여오는 것을 해보겠습니다. 먼저 엑셀파일을 다루려면 openpyxl 모듈을 사용해야 합니다. 따라서~ pip install openpyxl을 먼저 해 두셔야겠죠? 1. 엑셀파일 생성 엑셀 파일은 아주아주 쉽습니다. 모듈을 불러온 import를 제외하면 사실상 3줄입니다. 위 코드는 말 그대로, sample1_1.xlsx라는 엑셀파일을 생성'만' 하는 코드 입니다. 엄청 쉽죠? 2. 엑셀파일 불러오기 그냥 불러오면 좀 심심하니까, 값을 넣은 엑셀파일을 만들고 불러와보겠습니다. 엑셀 파일을 파이썬으로 만들고, A1에 1..

[파이썬 클린코드] 4장 (SOLID 원칙) 정리

안녕하세요 Dibrary입니다. 이번에는 파이썬 클린코드의 4장 내용을 정리해보겠습니다. 4장은 객체지향적으로 코딩을 작성할 때 생각해 봐야 하는 원칙인 SOLID원칙을 설명하고 있습니다. 1. S (Single Responsibility Principle) 단일 책임 원칙 소프트웨어 컴포넌트(클래스)는 단 하나의 책임을 져야 한다는 것. 아래 코드 처럼 독립적인 동작을 하는 메서드를 하나의 클래스에 정의해버리면 안 된다. 이렇게 하나에 많은 기능을 집약해넣게 될 경우, 외부 요소에 의한 영향 최소화가 안 된다. 보다 응집력있고 작은 추상화가 가능해야 한다. 물론, '단일 책임 원칙'이라고 해서 클래스가 딱 하나의 메서드만을 가져야 한다는 것이 아니다. 2. O (Open/Close Principle) ..

[파이썬 클린코드] 3장 (좋은 코드의 일반적 특징) 정리

안녕하세요 Dibrary입니다. 아래 내용은 파이썬 클린코드의 3장 중 핵심 내용만을 정리한 것입니다. 1. 계약에 의한 디자인 컴포넌트는 기능을 숨겨 캡슐화 하고 함수를 사용할 고객에게는 애플리케이션 프로그래밍 인터페이스(API)를 노출해야 한다. 코드가 정상적으로 동작하기 위해 기대하는 것과, 호출자가 반환 받기를 기대하는 것은 디자인의 하나가 되어야 한다. 사전조건 = 코드가 실행되기 전에 체크해야 하는 것들 사후조건 = 함수 반환값의 유효성 검사가 수행 불변식 = 함수가 실행되는 동안 일정하게 유지되는 것 사전조건 검증에 실패하면 클라이언트의 결함으로인한 것이다 사후조건 검증에 실패하면 특정 모듈이나 제공 클래스 자체의 문제로 인한 것이다 중복제거원칙 = 사전조건 검증을 양쪽(클라이언트, 서버)에..

[Effective Python] 1장 - 파이썬답게 생각하기

안녕하세요 Dibrary입니다. 이 글은 Effective Python (한국어 번역제목은 '파이썬 코딩의 기술' 입니다)의 1장 내용을 정리했습니다. 1. 사용중인 파이썬의 버전을 알아두자 이렇게 간단히 버전을 확인할 수 있습니다. 2. PEP8 스타일 가이드를 따르자 PEP 8 – Style Guide for Python Code | peps.python.org PEP 8 – Style Guide for Python Code Author: Guido van Rossum , Barry Warsaw , Nick Coghlan Status: Active Type: Process Created: 05-Jul-2001 Post-History: 05-Jul-2001, 01-Aug-2013 Table of Con..

[파이썬 클린코드] 2장 (파이써닉 코드) 정리

안녕하세요 Dibrary입니다. 아래 내용은 파이썬 클린코드의 2장 중 핵심 내용만을 정리한 것입니다. 디자인 패턴은 언어와 무관한 고차원 개념으로, 코드로 즉시 변환되지 않는다. 그러나 관용구는 실제 코딩으로 변환된다. 관용구를 따르는 코드를 파이썬에서 '파이써닉'하다고 한다. 1. 리스트에서 특정 요소를 가져올 때, for문으로 찾지 말고 슬라이싱을 하자. 둘 다 같이 2로 나눴을 때 나머지가 1 나오는 값만 담는 것인데, slice를 사용해서 해당 위치의 값만 곧바로 담을 수 있다. 2. 파일을 열고 닫는 등의 작업이 필요한 경우 '컨텍스트 관리자'를 사용하자. 위 코드는 finally를 이용해서 정상종료 혹은 비정상종료에도 파일을 닫는 코드가 들어있다. with를 사용한 컨텍스트 관리자는 내부에서..

[파이썬 클린코드] 1장 (코드 포매팅과 도구) 정리

안녕하세요 Dibrary입니다. 아래 내용은 파이썬 클린코드의 1장 중에 핵심 내용만을 정리한 것입니다. 프로그래밍 언어의 진정한 의미는 아이디어를 다른 개발자에게 전달하는 것이다. 코드를 클린한 상태로 만들면 유지보수성 향상, 기술부채 감소, 민첩한 개발, 지속적인 배포등 여러 장점들이 있다. 클린코드는 품질 좋은 소프트웨어를 개발하고, 견고하고 유지보수가 쉬운 시스템을 만들고, 기술 부채를 회피하는 것을 말한다. 좋은 코드 레이아웃에서 가장 필요한 특성은 일관성. 파이썬이 따라야 하는 코딩 스타일은 PEP-8이다. PEP 8 – Style Guide for Python Code | peps.python.org PEP 8 – Style Guide for Python Code Author: Guido v..

파이썬에서 쓰이는 비트연산

안녕하세요 Dibrary입니다. 이번에는 비트연산자를 사용하는 방법에 대해 정리해보겠습니다. 입력 정수에 대해서 2진수로 바꾸려면 for문을 돌면서 나눈 나머지를 합하는 방법도 있습니다만, 파이썬은 쉬운 방법을 가지고 있습니다. 123이라는 입력 변수를 bin으로 확인하면 2진수 숫자가 나옵니다. 해당 자료형은 '문자열'입니다. 2진수 숫자 '문자열'을 다시 int에 넣고 2진수임을 알려주면 원래 10진수 숫자가 나옵니다. 그럼 n진수로 된 숫자는 int만 쓰면 다시 원래대로 바꿀 수 있을까요? 저도 궁금해서 for문으로 확인해보았습니다. 되는 경우도 있고, 안 되는 경우도 있는데, 36 이후부터는 다 안됩니다. 알고리즘 문제를 풀다 보면 2진수, 3진수, 8진수, 16진수 정도가 가장 많이 나올텐데, ..

[디자인 패턴] 팩토리 메서드 패턴

안녕하세요 Dibrary입니다. 이번에는 디자인 패턴 중에 '팩토리 메서드 패턴'을 정리해보겠습니다. 단어에 '팩토리'라는 뜻은 말 그대로 factory 즉, '공장'이죠. 공장은 뭐하는 곳이지 아시죠? 주로 물건을 생산하죠. 이름을 보면 생산의 대상이 메서드인 것처럼 보입니다. 팩토리 메서드 패턴은 인터페이스는 부모클래스에서 정하지만 구체적인 객체 생성은 자식클래스에서 생성하는 것입니다. 즉, 객체 생성 처리를 서브클래스로 분리해서 처리하게 하는 것이죠. 제가 느낀 바로는 결국 초반 인터페이스는 코드가 여러 개로 쓰이지 않고, 하나로 작성한 후에 실질적으로 다형성이 필요한 부분에서 자식 클래스를 어떤 것을 선택하느냐에 따라 다른 결과를 내보이는 것으로 생각했습니다. 많이 드는 피자집 예시를 보겠습니다...

파이썬으로 정규표현식 다뤄보기 - 1

안녕하세요 Dibrary입니다. 알고리즘이나 데이터 로그를 확인할 때 가장 많이 접하는 것이 '문자열' 자료형인데요 이 문자열을 일일이 슬라이싱가지고 하면 생각보다 코드가 지저분해지거나 길어지는 경우가 많습니다. 이럴 때, 정규표현식을 써서 간단하게 할 수가 있는데 문제는 정규표현식은 '공부'를 좀 해야 한다는 것이죠.. (물론 해도 좀 까먹....) 암튼, 제가 간단하게 써먹기 편하다고 느낀것을 정리해보겠습니다. 1. match('패턴', '대상문자열') match는 패턴으로 대상문자열을 비교해봅니다. 다만, 반드시 첫 번째부터 확인합니다. 이게 왜 중요하냐면, 곧 설명할 search와 굉장히 다른 결과를 내기 때문입니다. 첫 번째는 a가 hello에 있는지 맨 앞부터 비교하는데, a와 h는 다르기 때..

[혼공머신러닝] 7장 인공신경망 기본 정리

안녕하세요 Dibrary입니다. 이번에는 신경망 코드를 정리해보겠습니다. keras는 저도 안써봤었는데, 이번에 알고 꽤나 쉬울 수도 있겠다는 생각이 드는 좋은 라이브러리입니다. 해당 코드는 fashion_mnist 데이터를 사용했습니다. 데이터를 불러오는 코드는 아래와 같습니다. 정말 심플하죠? 핵심은 keras.datasets.fashion_mnist.load_data( ) 입니다. 꼭 fashion_mnist로 하지 않아도 되긴 합니다. 살펴보면, boston_housing 데이터도 있고, cifar10 등등 하나만 있는 것은 아닙니다. 데이터 크기를 확인해보면 아래와 같습니다. (60000, 28, 28) 에 의미는 28*28 크기로 구성된 데이터가 6만개 있다는 의미입니다. 즉, 하나의 데이터는..

반응형