
원문: Top 5 Mistakes You Make When Declaring Functions in Python (약간의 의역을 얹었습니다.) 어떤 프로그래밍 프로젝트에서든 함수는 핵심요소입니다. 잘 만들어진 함수는 코드의 가독성을 높이고 유지보수를 쉽게 만듭니다. 반대로 함수를 엉성하게 만들면 가독성이 떨어지고 유지보수 비용이 올라갑니다. 아무리 실력좋은 프로그래머라도 시간이 지나면 자신의 코드를 잊어버리기 마련이므로, 잘 작성된 함수는 프로젝트의 가치를 올려준다고 할 수 있습니다. 물론 파이썬도 예외가 아닙니다. 함수 작성 시 흔히 범하는 실수를 소개하겠습니다. 이 실수들을 이해하고 나면 가독성과 유지보수 면에서 향상된 코드를 짤 수 있을 것입니다. "가독성은 중요하다." - 파이썬 철학 (역자 주:..

아래는 bool로 형변환을 했을 때 False가 되는 것들의 목록입니다. (출처) False로 정의된 상수들 None False 값이 0인 것들 (자료형 무관) 0 0.0 0j Decimal(0) Fraction(0, 1) 빈 시퀀스 (자료형 무관) ' ' (빈 문자열) ( ) (빈 튜플) [ ] (빈 리스트) { } (빈 딕셔너리) set( ) (빈 집합) range(0) (빈 range) 단, [( )]과 같이 빈 튜플이 들어있는 리스트는 False로 인식되지 않습니다. 빈 튜플이라는 원소가 있는 것이니까요. 주의할 점이 하나 있습니다. 위에 나온 것들이 False로 인식된다고 해서 그 자체가 False인 것은 아닙니다. 예를 들어, 빈 리스트는 bool로 형변환을 하면 False가 되지만 그 자체가..

(원문: 9 Skills That Separate Beginners From Intermediate Python Programmers) (의역을 제 마음대로 마구마구 끼얹었습니다.) 1. 로직을 이해해라. + 답부터 찾으려 하지 마라. 코드 자체보다 중요한 것은 코드의 로직을 이해하는 것이다. 로직을 이해해야 문제해결능력이 생기고 그로부터 좋은 코드와 최선의 답을 생각해낼 수 있다. 질문하기도 중요하다. 스스로 문제풀이를 시도하지 않고 답부터 찾으려 한다면, 답을 보고도 아무것도 배울 수 없다. (참고: 프로그래밍 질문 잘 하기) 2. 문제를 정확히 정의해라. (문제를 마음대로 바꾸지 마라.) 파일명에서 확장자를 추출하고 싶다면 어떻게 할까? 문자열의 마지막 세 문자를 꺼내면 될 것 같다. 그래서 아래와..

※ 본업이 개발은 아니지만 코딩을 좋아하는 연구자의 입장에서 쓴 글임을 먼저 밝혀둡니다. 파이썬을 처음 공부하는 분들(특히 학생)이 정말 자주 하는 질문이 있습니다. "파이썬도 자격증이 있나요? 따두면 도움이 될까요?" "파이썬 잘하면 취업 잘되나요?" "기본서 다 봤어요. 이제 뭐 봐야 되나요?" 조금씩 다른 질문들이고 답변도 조금씩 다릅니다만, 이 질문들을 꿰뚫는 더 중요한 질문이 있습니다. "파이썬 배우면 나중에 뭘 할 수 있나요?" 현직에 계신 분들은 "이걸 배워서 어디다 써먹지?"라는 의문은 보통 갖지 않으실 겁니다. 이미 필요해서 배우고 계실테니까요. 하지만 학생분들은 필요해서 배운다기보다는 누가 시키니까 배우는 경우가 많습니다. 시키는 주체는 학교가 될 수도 있고 사회가 될 수도 있습니다. ..

두 가지 방법으로 짜보았습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # product of two unit quaternions # without using if-else def calProdUnitQuat(arg1, arg2): # input string -> Boolean q1 = [arg1=='1'] + [arg1==s for s in 'ijk'] q2 = [arg2=='1'] + [arg2==s for s in 'ijk'] q3 = [0]*4 # https://personal.utdallas.edu/~sxb027100/dock/quaternion.html q3[0] = q1[0]*q2[0] - q1[1]*q2[1] - q1[2]*q2[2] - q1[3]*q2..

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.) 여유로운(희소..