프로그래밍 언어 10

nohup, &, &&에 대한 글

어디에 쓸까 고민하다가 그냥 파이썬 카테고리에 씁니다. 스크립트와 관련된 거라서.. 해당 글에서는 사용법만 알려드립니다. 명령어가 어떤 의미를 가지는지, 이걸 어떻게 응용할 수 있는지에 대해서는 작성하지 않았습니다. 1. 왜 필요한데? 리눅스, 유닉스, 맥에서 백그라운드로 작업을 돌리는 경우가 빈번해져서 정리를 해야 할 때가 온 것 같습니다. 정말 간단한 알고리즘은 그냥 보통 Run 버튼을 눌러서 바로 결과가 나오는데 반해, 인공지능과 관련된 프로그램은 하루 이틀로 안 끝나는 경우가 대다수입니다. 최근에 돌린 모델의 경우 3일 하고도 20시간이나 걸렸는데, 이 시간 동안 컴퓨터를 계속 켜고 있는 것은 말이 안 되죠.. nohup, & 은 스크립트를 무려 백그라운드로 돌려줍니다. 2. nohup nohup..

[Python] Instance의 Import에 관한 글

모듈, 클래스를 import 하는 방법은 구글에 검색하면 많이 나오니까 따로 정리는 안 하겠습니다. 신기한 사실을 하나 발견했는데, 바로 Class로부터 생성된 Instance도 Import 할 수 있다! 입니다. 우선 Class를 하나 만들어봅시다. # test1.py class Hello(): def __init__(self, name): self.name = name def print_hello(self): print(f'have a good day {self.name}') instance = Hello('woo') instance.print_hello() >>> have a good day woo 출력은 역시 예상한 대로 나오네요 그렇다면 다른 파일에서 해당 instance를 import 해봅시다..

[Vscode] Python Function annotation Theme is not Working (VScode에서 파이썬 타입 어노테이션, 함수 어노테이션, 타입 힌팅에 테마가 적용되지 않는 문제 해결법)

짜증.... Type annotation을 사용할 때도 테마 색깔이 이상하게 되더니, 확장 한 개를 삭제(?)하니까 잘 되는 것 같더니만,,, 이제는 Function annotation을 사용하면 이따구로 변한다 구글 어디를 뒤져도 정답은 안 나오고, 당연히 한국어로 검색하면 답은 더더욱 안 나온다 ㅋㅋ 그냥 확장을 하나하나 사용 안 함 해보면서 뭐가 문제인지 체크했는데, Python for VScode

[Python] Python의 삼항연산자 (Python's Ternary operators)

파이썬에는 c언어와는 다르게 사용자 친화적인 삼항 연산자가 있다. 문법은 참인 경우 값 if 조건 else 거짓인 경우 값 True if Condition else False a = 10 if 10 > 5 else 5 print(a) 10 > 5가 참이므로 앞의 10이 a에 할당된다. 특별히 어려운 점은 없지만, 간혹 헷갈리는 부분이 있다. 바로 삼항 연산자는 값을 내놔야 한다는 것..... a = 10 if 10 > 5 else a = 5 print(a) 이런 명령어는 SyntaxError: cannot assign to conditional expression 라는 오류를 출력한다. 즉 expression이 들어가면 안 된다는 뜻이다...! a = 10 if 10 > 5 else 5라는 문장을 볼 때..

[Python] namespace와 함수 (전역변수의 참조와 변경, 그리고 오류가 나는 이유)

우선 코드를 보시죠 def func(): if 10 > m: cnt += 1 m = 5 cnt = 0 func() print(cnt) 실행될까요? 안 됩니다. 오류가 납니다. UnboundLocalError: local variable 'cnt' referenced before assignment 라는 오류가 납니다. 아니 m은 잘만 참조하면서 cnt는 왜 참조 못하지? 라는 생각이 드실겁니다. 결론부터 말하자면 '참조'는 가능하지만 '변경'은 불가능합니다. 사소하지만 매우 중요한 지식입니다. 1. namespace를 나눈 이유 전역 namespace의 변수를 지역 namespace로 가져와서 변경을 못하게 하는 이유는 간단합니다. 그렇게 지역과 전역을 혼동되게 사용한다면 굳이 namespace를 나눈 ..

[python] repr과 str의 차이

repr과 str은 둘 다 문자열을 반환한다. 하지만 사소하지만 중요한 차이점이 있다. hi = 24 print(str(hi)) print(repr(hi)) 24 24 숫자가 아닌 문자열에 적용해보면, hi = "hi-guten-tag" print(str(hi)) print(repr(hi)) hi-guten-tag 'hi-guten-tag' 같은 문자열임에도 repr()을 쓰면 '' 따옴표가 추가되는 걸 볼 수 있다. 쉽게 생각하면 str은 우리가 쉽게 볼 수 있는, 그런 비공식적인 문자열을 반환하는 반면에 repr은 공식적인 문자열을 반환한다. 즉, repr은 시스템, 인터프리터가 객체를 인식할 수 있는 문자열을 반환하는 것이다. 따라서 eval(repr(obj))를 한다면 해당 obj를 얻을 수 있는..

[Python] Intellisense와 Document 보이게 하는 법

가끔 이런 식으로 IntelliSense가 되어야 하는데 안 되는 경우가 있는데, 이때 Ctrl + Space를 눌러주면 해결할 수 있다. 만약 이것도 안 된다면, FIle -> Setting -> Editor -> General -> Code Completion에서 show suggestions as you type을 체크해주면 된다 show suggestions as you type을 체크 해제하면 IntelliSense가 해제되지만, 체크하면 IntelliSense를 쓸 수 있다. Document를 보이게 하는 방법은 생각보다 간단하다. (기본 함수의 Document가 아닌 설치한 패키지의 Document) File -> Settings -> Tools -> External Documentation..