본문 바로가기
반응형

python8

Python에서 C의 for 구현하기 파이썬은 C로 만들어졌지만, 기존의 C Famliy 언어와는 확실히 다른 구조를 갖고 있다. for도 그 중 하나인데, 파이썬의 이러한 for을 좋아하는 사람도 있고 싫어하는 사람도 있을 것이다. C언어의 for이 for (변수 선언; 조건 검증; 변수 변화) 이러한 구조라면 파이썬은 for X in Iterable: 이러한 구조다. 재밌는 것은 파이썬의 이러한 구조를 역으로 활용하여 C의 for을 흉내내볼 수 있다는 것이다. 이 코드는 람다식에 대한 이해가 어느정도 필요하다. 람다는 '익명 함수'의 개념으로, 파이썬에서는 간단한 한줄짜리 함수를 만들어 넘길 때 사용한다. 다만 아쉽게도, 귀도의 철학인지 파이썬에서 이 이상으로 람다를 활용하는건 힘든 편이다. 그리고 yield는 제너레이터 구문으로, 제너.. 2021. 12. 21.
유용하게 쓰이는 try ~ except 구문 이번에 내 인터파크 매크로 코드를 보면 try ~ except 구문으로 떡칠되어 있는 모습을 볼 수 있다. 아마도 아래와 같은 형태일 것이다. 1234567while True: try: pass # 실행할 구문 except: continue else: breakcs 셀레니움은 웹페이지가 다 로딩되기 전에 요소를 찾으려고 하면 없다고 예외를 내뿜으면서 꺼진다. 그러나 로딩 속도는 사용자 컴퓨터 성능이나 인터넷 속도 영향을 많이 받고, 때에 따라 다르기 때문에 항상 언제 정확히 몇초 후에 로딩이 될 것이라고 예측할 수가 없다. 보통은 Explicit Waits을 쓰면 되지만, 그래도 불확실성이 완전히 해소된다는 보장도 없고, 내가 써 보니 잘 안되서 위와 같은 형태를 취하게 되었다. 해석하자면 일단 실행할 .. 2020. 7. 15.
인터파크 티켓팅 매크로 패치 지난번에 매크로를 올리고 정말 많은 오류가 보고되었다. 이렇게 복잡한 프로그램을 만들고 배포하긴 처음이라, 많이 당황했다. 거의 4개월만에 오류 패치를 했다. 물론 중간고사 끝나고 바로 기말고사라 급하게 해서 몇개 부탁주신 기능 구현은 하지 못했다. 그래서 고쳐진 부분과 추가된 부분에 대해 설명을 하고자 한다. 패치된 오류 안심예매 단계에서 꺼짐 회차가 두 개 이상일 경우 직접 선택해야 함 구역이 나눠져 있을 경우 작동 안됨 바뀐 매크로는 위와 같다. 여기서 추가된 부분은 회차와 구역 분리 항목이다. 회차의 경우에는 두 개 이상이 있는 경우가 있다. 이럴 경우 회차마다 순서대로 001, 002, 003... 이렇게 올라간다. 만약 두번째 회차를 원한다면 002라 적으면 된다(반드시 002여야 한다, 2 .. 2020. 7. 10.
Pyinstaller에서 PyQt .ui 파일을 포함해 빌드해야 할 때 지난번 글에서 인터파크 티켓팅 매크로 코드를 공개했는데, 보면 프로그램의 기능을 담당하는 .py 스크립트와 UI를 담당하는 .ui 파일이 분리되어 있는 것을 알 수 있다. 나는 보통 pyuic를 통해 .ui 파일에서 .py로 스크립트를 변경해 썼다. 이 방법이 여러모로 편리하지만, 원치 않는 찌거기같은 코드가 마구 딸려와서 코드가 지저분해지는 경향이 있었고, UI의 변경이 어려웠다. 난 코드로 UI 디자인을 거의 못하기 때문에 Qt Designer을 쓰는데, 그런 나에겐 최악의 상황이다. 따라서 uic.loadUiType을 통해 ui를 따로 로드해서 프로그램을 만들어 보기로 했고 이 티켓팅 매크로가 그 첫 시도의 결과물이다. ui를 따로 로드했을 때의 단점은 텍스트 에디터에서 보조를 받기 쉽지 않다는 점.. 2020. 4. 12.
반응형