본문 바로가기

파이썬3

Python | for..else 문법으로 이중 for loop을 continue하기 for..else 프로그램을 짜다 보면 for loop이 정상적으로 실행됐는지 중간에 break 됐는지 확인해야 할 상황이 생긴다. 보통은 is_broken 등의 플래그를 두는 식으로 짠다. 하지만 파이썬은 for..else라는 특이한 문법을 지원한다. 만약 for loop이 성공적으로 실행됐다면 else를 실행한다. # w/o for..else is_broken = False for i in range(100): if not testcase(i): print(f'{i} failed') is_broken = True break if not is_broken: print('all passed!') # w/ for..else for i in range(100): if not testcase(i): print.. 2022. 12. 29.
Visualization | matplotlib의 버튼, 슬라이더로 상호작용 가능한 plot 찍어보기 (matplotlib.widgets Slider, Button, RadioButtons, CheckButtons) matplotlib을 1년 넘게 썼는데 matplotlib.widgets같은 기능이 있는 줄 몰랐다. mpl에 이런 게 있었으면 좋겠다~ 하고 있었는데 이미 있던 것들이었다. 까먹기 전에 적어놔야지. Slider, Button, RadioButtons - mpl 공홈, 내 Git 일반 버튼, 슬라이더랑 똑같다!! sin 함수의 폭과 진동수를 조절하는 mpl 데모 예제이다. 코드를 뜯어보자. fig, ax = plt.subplots() plt.subplots_adjust(left=.25, bottom=.25) - subplot을 생성해서 figure와 axes 객체를 받는다. 각 영역은 그림과 같다. Figure는 창 전체를 컨트롤하고 Axes는 각 그래프를 개별적으로 컨트롤한다. 지금처럼 subplot이.. 2018. 7. 10.
Python | 클래스 변수와 클래스 메소드 (Class Variable, Class Method) - 클래스 변수 - 인스턴스 변수 - 인스턴스 메소드 - 클래스 메소드 - 스태틱 메소드 위의 개념들은 쓸 때마다 혼동됩니다. 어디다 적어놓지 않으면 나중에 또 까먹을 게 뻔합니다. 그러니 클래스 메소드를 한 번 알아봅시다. class A: var = 1 위와 같이 클래스를 정의했다고 해봅시다. 여기서 var은 클래스 변수입니다. 인스턴스들의 클래스 변수들도 클래스 변수의 값과 같은 것은 굳이 안 봐도 알 수 있습니다. >>> a = A() >>> b = A() >>> A.var 1 >>> a.var 1 여기서 클래스의 클래스 변수를 수정해봅시다.>>> A.var = 2 >>> b.var 2 >>> a.var 2클래스 변수를 수정하면 해당 클래스의 인스턴스들에 모두 적용됩니다. 하지만 인스턴스의 클래스 .. 2018. 6. 27.