Category: Python, Perl, Shell script..

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 까지 나와 있어서, 설치

우분투 : Jupyter Notebook 설치, VS Code 에서 사용.

간단하게만 정리한다. 아직 잘 쓸 줄을 몰라서. 설치 여러가지 방법이 있는 모양인데, pip 으로, 사용자 계정을 통해 설치하는 방법을 택했다. 이를 위해서는 우분투 꾸러미 pip(pip3)가 아니고, 사용자 계정에 pip 이 설치되어 있어야만 한다.그리고, ~/.local/bin 이 실행 경로로 잡혀있어야만 한다. Anaconda 를 설치해도 Jupyter Notebook 이 된다는데, 따라 해봤지만 뭔가 오류가 발생했다. 그냥 실행은 되는데, VS

Vim: YouCompleteMe(그리고 Vundle)를 사용한 자동완성기능 사용

Vim 에서 자동완성은 Ctrl-n, Ctrl-p 로 되긴 한다는데, 좀 더 강력한(?) 기능을 자랑하는 YouCompleteMe를 사용해보기로 했다. 사용법은 홈페이지에 나와있긴 한데, 다소 전문가(?)용이라 조금 불친절한 면이 있다.우분투에서, Vundle 을 사용한다는 가정하에 설치법을 정리해봤다. Vundle 설치 Vim 용 Bundle(각종 플럭인 등등)을 간편하게 사용할 수 있게 해주는 Vundle. 이걸 먼저 설치해줘야만 한다. 설치 후엔 ~/.vimrc 를 편집해야 하는데,

Shell: 문자열 바꾸기(Parameter Substitution)

인터넷에 차고 넘치는 문서 중, 익숙한 사이트에 있는 내용을 기반으로 글을 작성했다. 리눅스 CLI 에서 문자열을 바꾸려면? 먼저 sed 가 떠오른다. awk 도 있으나 전혀 쓰지 못하므로 넘기고, perl도 생각해볼 수 있다. 하지만, Shell(Bash, zsh) 자체에도 이른바 Expansion 이라는 이름으로 이 기능이 제공되고 있다. 사용법은 sed 와 거의 비슷한데, s 를 쓸 필요는 없다. 앞에

문자열 바꾸기(String Substitution): sed vs perl

앞으로는 이 작업을 할 때 sed 는 완전히 접어야만 하겠다. sed 가 강력한 도구이긴 하지만, delimiter 에 문제가 있어, 여러모로 신경써야할 점이 많기 때문이다. 이게 뭔 소리냐 하면, sed 의 기본 delimiter(구분자)는 /, 즉 Slash(우리말로는 ‘빗금‘)가 기본인데, 만약 Pattern 이나 Substitution 에 / 가 들어가 있으면 오류가 발생하기에, 주의를 해야한다는 뜻이다. 다음 예를 보자. 원래

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

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