본문 바로가기
반응형

프로그래밍/Python10

Python에서 C의 for 구현하기 파이썬은 C로 만들어졌지만, 기존의 C Famliy 언어와는 확실히 다른 구조를 갖고 있다. for도 그 중 하나인데, 파이썬의 이러한 for을 좋아하는 사람도 있고 싫어하는 사람도 있을 것이다. C언어의 for이 for (변수 선언; 조건 검증; 변수 변화) 이러한 구조라면 파이썬은 for X in Iterable: 이러한 구조다. 재밌는 것은 파이썬의 이러한 구조를 역으로 활용하여 C의 for을 흉내내볼 수 있다는 것이다. 이 코드는 람다식에 대한 이해가 어느정도 필요하다. 람다는 '익명 함수'의 개념으로, 파이썬에서는 간단한 한줄짜리 함수를 만들어 넘길 때 사용한다. 다만 아쉽게도, 귀도의 철학인지 파이썬에서 이 이상으로 람다를 활용하는건 힘든 편이다. 그리고 yield는 제너레이터 구문으로, 제너.. 2021. 12. 21.
온라인 수업을 위한 도우미 프로그램 이제 슬슬 내가 만들었던 것들을 소개해보려고 한다. 이번에는 온라인 수업 도우미이다. 언어는 Python이고 프레임워크는 PyQt5을 사용했다. 이 프로그램에 대해 스스로의 평가를 내리자면, "내 18년 인생 역작"이라 할 수 있겠다. 왜냐? 많은 학생들이 온라인 수업을 하면서 너도나도 지각하는 마당에 나는 단 한번도 지각하지 않을 수 있었기 때문이다. 사실 처음 계기는 이랬다. 우리 학교는 작년 1학기 때에는 온라인 클래스로만 수업했는데, 그랬기 때문에 내가 원하는 순서대로 과목을 골라 들을 수 있었다. 나는 메모장에다가 무슨 과목을 들었는지 표시하는 방법으로 수업을 들었는데, 이게 슬슬 불편해지기 시작했다. 그래서 처음에는 단순히 수강 과목을 클릭해서 표시하는 프로그램만 만들었다. 빨간색 과목 버튼을.. 2021. 10. 7.
유용하게 쓰이는 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.
반응형