Tag: python

Python : f-string 이 이젠 대세?

Python 에서 변수를 print 하는 방법은 여러가지인데, 이젠 f-string 이 대세가 될 듯 하다. 적어도 , 앞으로 나는 이 방법만 사용하기로 마음 먹었다. ㅎㅎ 자세한 내용은 열심히 정리해준 Joanna 의 글을 참고하기로 하고.. Shell 에서 처럼 변수를 따옴표 안에 바로 쓸 수 있다는게 핵심이 되겠다. print 에서만이 아니고, 문자열을 처리하는 곳이라면 어디든 사용가능하다. 또, {}

Python: sorted, key 의 작동 원리.

다시 파기 시작한 Python. 이번엔 좀 제대로된 구멍을 뚫을 수 있기를. 늘, 다시 봐도 새로운 lambda 를 이해하려 하다 보니, 예제로 sorted 의 key 인수가 나왔는데, 여기서 막혀버렸다. 람다는 커녕, sorted 도 이해가 되지 않는다. 가지고 있는 책들도 뒤지고, 인터넷도 살펴보고 하면서 뭔가 감이 잡힐 듯 하던 차에, 이거 혹시 예전에도 같은 문제로 고민하지 않았었을까?

Python : 홑/겹 따옴표, 그리고 3 연따?

3연따는, ‘3회 연속된 따옴표’를 말한다. 즉, ”’ 또는 “””. ㅋㅋ ‘박사님‘의 글을 인용해본다. 잘 정리되어 있으니 참고하면 되겠고, 3연따에 대해서만 간단히 정리한다. 3연따는 주로 Docstring 을 만들 때 쓰인다. 또는, 여러 행에 걸친 주석을 쓸 때도 사용된다. 그런데, 박사님이 말씀하신 바와 같이, 문자열 안에 홑/겹따옴표를 포함하고자 할 때도 쓰인다. 이렇게 하면, 이스케이프 문자를 쓰지 않아도

VS Code/Codium : Python Autopep8/Black 사용.

흠.. 삽질은 역시나 힘들다. VS Code/Codium 에서 코드를 작성한 뒤, 해당 언어에 맞게끔 코드 형식을 정정해주려면 Format 명령을 내리면 된다. 이건 Ctrl + Shift + I 를 누르면 된다. Python 에선, 이를 위해서 먼저 MS Python Extension 이 설치되어 있어야 한다. 그리고 나서 Ctrl + Shift + I 를 누르면 될 듯 하지만..? 역시나 오류가

pip 모든 꾸러미 판올림.

tldr; 이게 답이다. 여기에 더하여, 2020 11월 현재, pip 이 뭔가 의존성에 관련하여 변경된 부분이 있다고 한다. 위 명령을 실행하면, --use-feature=2020-resolver 를 붙이라는 경고가 나올 때가 있다. 따라서 아예 첨부해주면 다음과 같다. 마지막으로, 몇몇 꾸러미는 과거판에 종속되어 있는 경우가 있다. 예를 들어, jedi 가 의존하는 parso 는 0.7.x 인데, 현재 0.8 까지 나와 있어서, 설치

갑자기 Python : 문자열을 날짜/시간 클래스로 변환.

아.. ping 을 뚫어져라 보던 중, 파이썬이 또 발목을 잡는다. ping 에서 투덜거린 메시지는 이렇다. 앞부분에 나와있는 시간/날짜 문자열을, 시간 클래스로 변환하려고 한다.이를 위해선 datetime 클래스가 필요하다.그리고, 문자열을 strptime()을 사용해서 시간 형식으로 변환시켜 줘야 한다. 요일의 축약형(금, ‘금요일’이 아닌 ‘금’)은 %a 로 받을 수 있으므로, 저렇게 쓰면 제대로 돼야 한다.그런데, 오류가 난다. 혹시나 괄호를 특별처리(Escape)

python : 파일에 중복이 있는 경우, 정렬 유지하고 삭제하기.

구글에서, ‘Python remove duplicates’ 로 검색하면, 몇몇 글들을 찾을 수 있는데, 대부분 동일한 소스코드를 공유하고 있었다. 이것과 동일한 코드가 Python Cookbook(O’REILLY) 에도 기재돼 있다. 저걸 쓰면, 정렬 순서는 그대로 유지하면서 중복된 줄만 지워준다. 먼저 나온 게 살아있고, 나중 나온 건 삭제된다. 그런데, 여기엔 작은(?) 문제가 몇개 있다. 일부러 넣어놓은 빈 줄이 모두 삭제된다. (맨 첫

pip 모든 꾸러미 판올림?

20.11.17 이 글 말고, 최신판으로! pip 에는 apt 처럼 모든 꾸러미를 찾아 판올림 해주는 기능은 (아직) 없다. 그러나, 이없으면 잇몸이라고, 비슷한 기능을 해줄 순 있다. 게다가, 어떤 꾸러미에 신판이 나왔는지 일일히 알 수가 없기에, 이런 자동화 기능은 알아두면 유용하게 쓸 수 있다.머리가 비면 몸이 고생.. 역시 맞는 말이다. 다음 글을 참고했다. Stackoverflow: Upgrading all packages

python, standard input 처리?

이런 명령을 내리고 싶다고 해보자. find . -type f \( -iname "*.cpp" -o -iname "*.md" \) -exec grep 'vim' '{}' \; | ./runp.py 바로 이전 글에 있는 내용을 가져왔다. 먼저, 확장자가 md 또는 cpp 인 파일에서, vim 이 포함되어 있는지를 찾는다. 이 결과를 Standard Input 으로 runp.py 에 넘겨준다. runp 는 이 Standard Input 을

우분투 꾸러미가 아닌, pip 설치, 판올림.

이 내용도 예전에 정리한 적이 있다. 그러나, 엄밀하게 말하면, 그 글은 문제점을 내포하고 있다. 우분투: pip3를 이용한 ipython 설치 (및 판올림) 다음 명령으로 pip3 를 판올림했을 때, pip3 를 실행하면 이런 오류가 발생할 수 있다 이 문제에 대해, 다음 글에서 설명과 함께 해결책을 제시해주고 있다. Python pip3 – cannot import name ‘main’ error after upgrading