Tiny Finger Point Hand With Heart
본문 바로가기
728x90
반응형

Python10

[python] 파이썬으로 엑셀 파일을 만들어보자(openpyxl) 업무자동화의 기본 엑셀파일 만들기를 해보자 먼저 아래 라이브러리를 깔아야한다. pip install openpyxl 간단하게 담당자와 시작일만 입력되게 만들어보았다. 1. 라이브러리를 불러온다. 2. 먼저 WeeklyWorkPlan이라는 클래스를 만들어 인스턴스를 선언하였다. 여기서 wb는 워크북, ws는 워크시트를 뜻한다. 3. __init__함수는 생성자메서드다. 생성자를 객체화 시 바로 수행할 내용을 작성한다. start_date, manager, sheet_no 세 개의 인자를 받는다. 이 인자들은 인스턴스의 속성(attribute)으로 할당된다. Workbook()은 openpyxl 라이브러리를 사용하여 새로운 엑셀 파일을 생성하는 함수이다. 이 함수를 호출한 결과를 self.wb 속성에 할당한.. 2023. 3. 23.
[알고리즘/Python] 재귀함수와 팩토리얼 재귀적으로 문제를 푼다는것 = 같은 형태의 더 작은 문제를 풀고 부분 문제의 답을 이용해서 기존 문제를 푸는 것. 재귀함수의 예시로 팩토리얼을 한번 보자. 팩토리얼 n의 팩토리얼은 n!이라고 표시한다. 이는 1부터 n까지의 정수를 곱하는 단순한 연산을 말한다. 재귀로 풀땐 항상 경우를 나눠줘야하는데 기본적인 base case와 조건이 다른 recursive case가 있다. 0!=1이라고했으니 n =0인 경우는 무조건 n!=1이 된다. 이렇게 바로 답이 나오는 경우를 base case라고 한다. 하지만 n != 0 인경우, n >0인 경우엔 재귀적으로 문제를 풀어야한다. 즉, 같은 형태의 더 작은 문제를 풀고 부분 문제의 답을 이용해서 기존 문제를 푸는 것이다. 위에 그림처럼 5!은 1x2x3x4x5 =.. 2023. 2. 23.
[DRF] 영화정보_API(2) 2023.02.22 - [백엔드/DRF(Django REST Framework)] - [DRF] 영화정보_API(1) [DRF] 영화정보_API(1) 오늘은 영화정보를 관리하는 api를 만들어보려고 한다. 먼저 환경설정을 하자. #먼저 가상환경 설정 python -m venv venv #가상환경실행 . venv/bin/activate #pip설치 (버전은 맘대로) pip install django==4.0 djangor yoondii.tistory.com 가상환경설정이 안되어있다면 위에 설정을 먼저 봐주세요. 모델(model) 영화에 대한 기본 정보를 담을 수 있는 Movie 모델을 생성해보자. Movie 모델에는 name(이름), opening_date(개봉일), running_time(상영 시간), .. 2023. 2. 22.
[DRF] 영화정보_API(1) 오늘은 영화정보를 관리하는 api를 만들어보려고 한다. 먼저 환경설정을 하자. #먼저 가상환경 설정 python -m venv venv #가상환경실행 . venv/bin/activate #pip설치 (버전은 맘대로) pip install django==4.0 djangorestframework==3.13.1 #프로젝트생성 django-admin startproject movie_api . 프로젝트까지 생성을 하고 나면 프로젝트의 settings.py 들어가기 INSTALLED_APPS = [ # ... 'django.contrib.staticfiles', 'rest_framework' #DRF넣어줘야함 ] 그 다음 앱을 생성한 후 똑같이 위에 처럼 앱이름을 넣어주면 된다. python manage.py .. 2023. 2. 22.
[Python] zip() zip 함수 zip(*iterables)는 각 iterables 의 요소들을 모으는 이터레이터를 만든다. 튜플의 이터레이터를 돌려주는데, i 번째 튜플은 각 인자로 전달된 시퀀스나 이터러블의 i 번째 요소를 포함한다. # zip(*iterable) : 동일한 개수로 이루어진 자료형을 묶어 줌 a = ['one', 'two', 'three'] b = ['a', 'b', 'c'] print(list(zip(a, b))) --------------------------------------------- [('one', 'a'), ('two', 'b'), ('three', 'c')] a라는 리스트와 b라는 리스트의 값들이 index 순서에 따라서 묶어진 것을 확인할 수 있다. # 두 리스트의 요소 끄집어내기 #.. 2023. 2. 21.
[Python] 진법변환 파이썬의 함수를 사용해서 쉽게 진법 변환이 가능하다. n진법 → 10진법 python에서는 기본적으로 int() 라는 함수를 지원한다. int(string, base) 위와 같은 형식으로 사용하면 된다. base에는 진법을 넣으면 된다. print(int('111',2)) print(int('222',3)) print(int('333',4)) print(int('444',5)) print(int('555',6)) print(int('FFF',16)) ----------------------- 7 26 63 124 215 4095 이렇게 10진수로 쉽게 변경이 가능하다. 10진법 → 2, 8, 16진법 2, 8, 16진수는 bin(), oct(), hex() 함수를 지원한다. * 결과는 모두 string .. 2023. 2. 21.
[Python] 몫과 나머지 , divmod() 많은 언어에서 몫과 나머지를 구할때, /와 %를 사용하여 구한다. 파이썬에서는 divmod를 사용하여 몫과 나머지를 한번에 구할 수 있다. 3나누기15 의 몫과 나머지 / (나누기), %(나머지) a = 3 b = 5 print(a/b) print(a%b) ------------------- 0.2 3 몫과 나머지를 연산기호를 사용하여 구하였다. 나누기 연산의 결과가 0.2로 나누어 떨어지는 결과를 반환한다. a = 7 b = 15 print(a/b) print(a%b) -------------------- 0.4666666666666667 7 나누어떨어지지 않는 수는 반올림된다. divmod a = 3 b = 15 print(divmod(a,b)) -------------------------- (0,.. 2023. 2. 21.
[Python] 문자열을 날짜, 시간으로 변환하는 방법 (string to date, string to time) - strptime() Python 에서 strptime() 을 사용하시면 문자열을 날짜, 시간으로 변경할 수 있다. 더 자세한 정보는 공식문서를 확인하자. https://docs.python.org/ko/3/library/datetime.html?highlight=strptime# datetime — Basic date and time types Source code: Lib/datetime.py The datetime module supplies classes for manipulating dates and times. While date and time arithmetic is supported, the focus of the implementation is on efficient attr... docs.python.or.. 2023. 2. 3.
[Python] 날짜, 시간을 문자열로 변환하는 방법 (date to string, time to string) - strftime 개발을 하다보면 원하는 포맷으로 데이터를 출력하고 싶을 때가 있다. 가령 게시글작성일이나, 해외시간을 현지시간으로 바꾼다거나 등 다양하게 활용이 가능하다. https://docs.python.org/ko/3/library/datetime.html datetime — Basic date and time types Source code: Lib/datetime.py The datetime module supplies classes for manipulating dates and times. While date and time arithmetic is supported, the focus of the implementation is on efficient attr... docs.python.org 더 정확한 .. 2023. 2. 3.
728x90
반응형