conda 사용법을 간단히 정리해보았다.이 글 작성에 도움 주신 코봉님께 감사 말씀 드립니다. conda create -n example : example이라는 이름의 가상환경을 만듦 : -n 대신 --name이라고 써도 됨 : 비어있는 가상환경이 만들어지며, 아무것도 - 파이썬도 - 설치되지 않음 conda create -n example python : 가상환경 만들면서 파이썬도 같이 설치 : 파이썬 외에도 pip, tk, sqlite 포함해서 10여 가지가 자동으로 설치됨 : 아래는 2024년 8월 20일 기준, python 설치 시 같이 설치되는 패키지 목록임The following NEW packages will be INSTALLED: bzip2 pkgs..
파이썬에는 syntax sugar라는 게 있다. Syntactic sugar라고도 부른다.굳이굳이굳이 번역하자면 문법적 설탕이라고 부를 수 있겠지만,솔직히 끔찍한 번역이다. 파이썬의 문법을 엄밀히 따른다면 아래의 statement는 에러가 떠야 한다. a = 1c = b = a 기호 =(assignment)가 operator가 아니라 statement라서 반환값이 없기 때문이다. (참고) 하지만 에러가 발생하지 않는다. 파이썬에서는 위 statement를 아래와 같이 재해석하기 때문이다. temp = ac = tempb = temp 이걸 chained assignment라고 부른다. 참고로 왼쪽부터 대입한다. (참고) 비슷한 게 하나 더 있다. Chained comparison이다. 이름만 들어도 ..
세줄요약 증상: matplotlib.pyplot.bar()로 막대 그래프를 그릴 때 막대가 사라지거나 막대 사이의 틈이 없어지는 현상이 있음 원인: bar()는 막대의 위치를 1픽셀 단위로만 계산하는데, 막대 또는 틈이 너무 얇으면 무시하고 그리지 않음 해결책: bar()의 파라미터 중 width를 조절하고, 필요에 따라 figsize를 바꾸거나 edgecolor를 설정하거나 Figure 창의 크기를 조절 일러두기 본 글의 코드 중 캡쳐한 것은 코랩, 코드 블록은 vscode 또는 매트랩에서 실행한 코드입니다. 코드는 모두 여기에서 보실 수 있습니다. 감사의 글 본 글의 아이디어를 주신 페가님께 감사 말씀 드립니다. 이상한 막대 그래프 matplotlib의 bar()를 이용하여 간단히 막대 그래프를 그려..
나름 유명한 유머입니다. 이 유머의 포인트는 느낌표를 강조로 보느냐 factorial로 보느냐에 있습니다. 이과의 관점에서는 이라서 옳은 답이고, 문과의 관점에서는 이라야 옳은 답이 됩니다. 이런 유머가 가능한 숫자는 40, 32, 4 외에도 더 있습니다. 예를 들어 아래와 같은 조합도 가능합니다. [문제1] A - B÷2 = C!의 형태로 동일한 유머가 가능한 10000 이하의 자연수 A, B, C는 총 몇 쌍이 있을까요? 답은 총 3쌍입니다. 여러분도 한번 찾아보세요! [문제2] A - B÷D = C!의 형태로 동일한 유머가 가능한 2 이상 100 이하의 자연수 A, B, C, D는 총 몇 쌍이 있을까요? 역시 답은 총 3쌍입니다. 여러분도 한번 찾아보세요! - 게으른
2008년이니까 거의 15년 전 일이긴 합니다만, 파이썬에서 self를 불편해하던 분이 있었습니다. 그래서 제안을 하게 됩니다. 제목이 상당히 자극적이네요. “Redundant is not Explicit” 우리말로 하면 “과잉과 명시明示는 동의어가 아니다” 정도일까요? 이 분의 제안은 아래와 같습니다. 메서드 정의에 self를 강제하는 것은 파이써닉하지 않다. 적어도 메서드 입력 파라미터에서는 self를 없앨 수 있지 않을까? self를 키워드로 만들면 해결되지 않을까? 예를 들자면 class C: def meth(self, arg): self.val = arg return self.val 이렇게 쓰던 코드를 class C: def meth(arg): self.val = arg return self.v..
※ 본 글은 realpython의 정기메일 내용을 편집, 각색 및 내용추가한 것입니다. C나 Java를 먼저 배운 분이라면 시퀀스의 아이템에 인덱스를 아래와 같은 형태로 붙일 것입니다. for i in range(len(my_items)): print(i, my_items[i]) 파이썬에는 이 코드를 간단히 만들어주는 함수가 있습니다. 바로 enumerate()입니다. names = ['Antonio', 'Carlos', 'Jobim'] for index, value in enumerate(names): print(f'{index}: {value}') enumerate()의 기본 기능은 시퀀스의 각 아이템에 인덱스를 부여하는 카운터 변수를 자동생성해주는 것입니다. 위 코드에서는 index가 그 카운터 변..
원문: Top 5 Mistakes You Make When Declaring Functions in Python (약간의 의역을 얹었습니다.) 어떤 프로그래밍 프로젝트에서든 함수는 핵심요소입니다. 잘 만들어진 함수는 코드의 가독성을 높이고 유지보수를 쉽게 만듭니다. 반대로 함수를 엉성하게 만들면 가독성이 떨어지고 유지보수 비용이 올라갑니다. 아무리 실력좋은 프로그래머라도 시간이 지나면 자신의 코드를 잊어버리기 마련이므로, 잘 작성된 함수는 프로젝트의 가치를 올려준다고 할 수 있습니다. 물론 파이썬도 예외가 아닙니다. 함수 작성 시 흔히 범하는 실수를 소개하겠습니다. 이 실수들을 이해하고 나면 가독성과 유지보수 면에서 향상된 코드를 짤 수 있을 것입니다. "가독성은 중요하다." - 파이썬 철학 (역자 주:..
Python GUI를 만들 수 있는 framework은 종류가 어마어마하게 많습니다. Cross-platform만 38가지나 있습니다. 물론 그 중에 인기가 많은, 즉 유저가 많은 framework이 있습니다. 하지만 막상 검색을 해보면 추천하는 framework이 각양각색입니다. 직접 써보기 전에는 장단점을 파악하기 어렵고, 그또한 개인차가 있을 수 있겠지요. 그래서 구글검색을 통해 각 framework이 얼마나 추천을 받는지 조사해봤습니다. 결과를 보니 Tkinter와 PyQt가 가장 많이 추천을 받고 있군요. Tkinter는 python에 포함되어 있는 모듈이라는 장점이 있고 (즉, 모듈 추가 설치가 필요하지 않음) 배우기 쉽고, 오래된 만큼 안정적이라고들 얘기합니다. 대신 이쁘지 않다는 게 단점으..
python console에서 import this를 하면 아래와 같이 The Zen of Python을 볼 수 있습니다. Zen은 '철학' 정도로 보면 될 것 같습니다. 번역은 나무위키 것을 가져와 약간 수정했습니다. 아름다운 것이 추한 것보다 낫다. (Beautiful is better than ugly.) 명시적인 것이 암묵적인 것보다 낫다. (Explicit is better than implicit.) 간결한 것이 복잡한 것보다 낫다. (Simple is better than complex.) 복잡한 것이 난해한 것보다 낫다. (Complex is better than complicated.) 수평적인 것이 내포된 것보다 낫다. (Flat is better than nested.) 여유로운(희소..