일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- floor
- itertools
- 세그먼트 트리
- enumerate
- flask
- project euler
- 소수
- convention
- Dictionary
- 파이썬
- lower_case_table_names
- 리스트 컴프리헨션
- 2557
- 자료구조
- mysql
- SUM
- 네이밍
- datetime
- BOJ
- 외래키
- Codeforces
- FOREIGN KEY
- 에라토스테네스의 체
- list comprehension
- 딕셔너리
- timestamp
- ceil
- SUM()
- 큰 수 나누기
- python
- Today
- Total
목록언어 공부 기록 (18)
늒네 기록
처음으로 sphinx를 사용해볼때 빠르게 따라해볼 수 있는 방법을 소개한다. 1. 먼저 문서화하고자 하는 프로젝트를 준비한다. GitHub - jaehaaheaj/sphinx-test Contribute to jaehaaheaj/sphinx-test development by creating an account on GitHub. github.com 설명을 위해 매우 간단한 구조의 프로젝트를 만들어서 main 브랜치에 넣어두었다. sphinx_test ├ obja.py ├ objb.py └ things ├ thinga.py └ thingb.py 2. sphinx를 인스톨한다. venv 환경 activate하고 설치하자. $ pip install sphinx 굳이 venv에다가 인스톨한건 추후 sphinx..
모든 코드는 아래의 repo에 정리해두었다. GitHub - jaehaaheaj/python_project_structure Contribute to jaehaaheaj/python_project_structure development by creating an account on GitHub. github.com 2. main 함수에 모든 기능을 구현하는 대신 일부 기능을 함수로 쪼개서 구현하고 싶다면, 아래와 같이 코드를 작성하는 것도 하나의 방법이다. # 복잡한 문제는 아니지만, fizzbuzz의 배수 체크 부분을 함수로 떼어냈다. def fizzbuzzz_checker(i): if i%(3*5)==0: return 'fizzbuzz' elif i%3==0: return 'fizz' elif i%5..
모든 코드는 아래의 repo에 같이 정리해두었다. GitHub - jaehaaheaj/python_project_structure Contribute to jaehaaheaj/python_project_structure development by creating an account on GitHub. github.com 1. 가장 간단한 구조는, main함수 안에다가 모든 기능을 다 구현해놓고 main.py를 실행시키면 원하는 결과가 출력되도록 하는 것이다. 위 repo의 sample1 브랜치를 보면, main.py에 아래와 같은 내용이 있는 것을 확인할 수 있다. for i in range(1,int(input())+1): s='' if i%3==0:s+='fizz' if i%5==0:s+='buzz'..
docs.python.org/3/howto/sorting.html Sorting HOW TO — Python 3.9.0 documentation Sorting HOW TO Author Andrew Dalke and Raymond Hettinger Release 0.1 Python lists have a built-in list.sort() method that modifies the list in-place. There is also a sorted() built-in function that builds a new sorted list from an iterable. In this documen docs.python.org 위 페이지에서 'key functions'의 내용을 정리한다. 1 2 print..
2020/10/09 - [언어 공부 기록/python] - [python] unzip()함수는 없을까? 앞선 글에서 아래의 상황을 마주쳤다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 a = [1, 2, 3, 4] b = ['a', 'b', 'c', 'd', 'e'] c = ['foo', 'bar', 'baz'] y = zip(a, b, c) print(y) # print(list(y)) # [(1, 'a', 'foo'), (2, 'b', 'bar'), (3, 'c', 'baz')] aa, bb, cc = zip(*y) ''' Traceback (most recent call last): File "cf.py", line 10, in aa, bb, cc = zip(*y) ..
2020/10/09 - [언어 공부 기록/python] - [python] zip() 함수에 대하여 글에서 iterable한 객체들이 주어져있고 이 객체들이 들고 있는 아이템을 순서대로 묶고싶을 때 zip() 함수를 쓰면 된다고 했다. 그렇다면, 딱 이 과정을 역방향으로 진행해주는 unzip 함수는 없을까? 예를 들어, 아래와 같은 상황이라고 하자. 1 2 3 4 5 6 7 8 9 10 a = [1, 2, 3] b = ['a', 'b', 'c'] c = ['foo', 'bar', 'baz'] y = zip(a, b, c) print(y) # print(list(y)) # [(1, 'a', 'foo'), (2, 'b', 'bar'), (3, 'c', 'baz')] aa, bb, cc = unzip(y) #..
서로 다른 두 리스트로 작업을 하다가, 둘을 같은 순서에 있는 아이템끼리 묶어서 쓸 일이 있을때 사용하는 것이 바로 zip() 함수다. 예를 들어, 아래와 같은 상황이 주어져있다고 하자. 1 2 3 4 5 6 7 8 9 a = [1, 2, 3] b = ['a', 'b', 'c'] c = ['foo', 'bar', 'baz'] x = [] for i in range(len(a)): x.append((a[i], b[i], c[i])) # x = [(1, 'a', 'foo'), (2, 'b', 'bar'), (3, 'c', 'baz')] cs 이때, 6번째 줄의 for문을 돌면서 x에 a, b, c에 들어있는 아이템을 순서대로 묶어서 넣어주었는데, 이 작업을 편하게 해주는 것이 바로 zip()함수이다. 1 2..
숫자로 이루어진 리스트 x가 있을때, x에 있는 모든 숫자의 합은 sum(x)로 쉽게 구할 수 있다. 그렇다면 x에 있는 모든 숫자의 곱을 구하는 함수는 바로 없을까? 이런 생각을 하고 구글링을 해보다가 처음 lambda, reduce함수를 활용하는 방법을 알게 된 분들이 많을 거라고 생각한다. 처음 검색을 하다 보면 이런 코드를 맞닥뜨리게 된다. 1 2 3 from functools import reduce l = [1, 3, 5, 7] print(reduce(lambda x, y: x*y, l)) cs 매우 짧은 코드로, 출력된 결과를 보면 105로 원하는 답이 나왔다는 걸 알 수 있다. 그런데 도대체 여기서 무슨 일이 일어난 걸까? 이를 알기 위해서는 파이썬의 lambda와 reduce에 대해서 각..
코드를 짜다 보면 종종 주어진 선택지들 중에 몇 개를 선택해서 조합을 만들고, 그 조합들을 가지고 계산을 돌려야 할 일이 있을 때가 있다. 예를 들어, A, B, C, D 선택지가 있을때, 이 중에서 i) 중복을 허용하여 두 개를 순서대로 뽑아서 나열한다 -> AA, AB, AC, AD, BA, BB, BC, BD, CA, CB, CC, CD, DA, DB, DC, DD ii) 중복을 허용하지 않고 두 개를 순서대로 뽑아서 나열한다 ->AB, AC, AD, BA, BC, BD, CA, CB, CD, DA, DB, DC iii) 중복을 허용하지 않고 두 개를 뽑는다. 순서가 달라도 조합이 같으면 같은 걸로. ->AB, AC, AD, BC, BD, CD 이때 위의 i), ii), iii) 상황에서 각각 파이..
아주 단순하게 생각하면, 어떤 계산을 하고 싶은데, 그게 텍스트로 되어있는 경우에 딱 활용할만한 함수라고 생각하면 된다. 예를 들어, a@b@c@d 값을 구하고 싶은데, 이때 @칸에 +, -, *, /의 조합이 자유롭게 들어올 수 있다고 해보자. 그렇다면 @칸에 연산자를 집어넣은 뒤 결과를 어떻게 계산할 수 있을까? 1 2 x = eval('1+2/3*4') print(x) # 3.6666666666666665 cs 이런 상황에서 eval을 쓰면 바로 계산해준다! 검색해보면 eval함수 외에도 exec(), compile()함수가 있고, 다른 argument를 넣을 수도 있으며, 해당 함수를 사용하는 데에 장단점이 있는것 같지만, 이 글에서는 이런 함수가 존재한다는 사실만 적어두고 디테일한 내용은 추후 ..