본문 바로가기
반응형

프로그래밍/PYTHON25

[20일차] python 그래픽 라이브러리 캔버스 / 선택정렬 표현 python 그래픽 라이브러리 캔버스 / 선택정렬 표현 선택정렬은 최소값을 구하는 함수와 그값을 정렬해주는 두가지 함수를 사용한다. ( 거품정렬을 표현할때와 비슷하지만 재귀함수를 쓸때는 i 값을 증가시켜서 재귀함수가 끝날수 있도록 해야한다 ) ( 리스트안에 500개의 값을 선택정렬하는것을 그림으로 표현해주고 다른 부분은 거품정렬과 똑같다 ) 2017. 3. 8.
[19일차] python 그래픽 라이브러리 캔버스 / 거품정렬 표현 python 그래픽 라이브러리 캔버스 / 거품정렬 표현 그래픽 라이브러리에서 캔버스를 이용해서 선(line), 직사각형(rectangle), 타원형(oval) ...다양한 표현이 가능하다. ( 캔버스는 tk.Canvas( self )로 객체 생성이 가능하며 x, y 좌표를 이용해서 선이나 도형의 크기를조절할수 있다 ) * 지원하는 속성들이 다 조금씩 다르지만 fill은 안쪽의 색을 지정할때 사용되는 속성이고outline은 바깥선 색을 지정할때 사용이 된다. ※ 캔버스를 이용한 거품정렬 애니메이션 표현 리스트에 0~499까지의 숫자를 생성한다음 random.shuffle로 섞어주어 난수를 만든걸 프레임에 oval을 이용해서 점들로 표현해준다. 그리고나서 프레임에 있는 점들을 모두 지웠다가 거품정렬을 1회전.. 2017. 3. 7.
[18일차] python 그래픽 라이브러리를 이용한 단위 변환 프로그램 python 그래픽 라이브러리를 이용한 단위 변환 프로그램 값을 입력해서 변환 버튼을 눌러주면 변환해주는 온도, 거리, 무게 단위 변환 프로그램이다. ( 초기화 버튼을 누르면 모든 입력 값을 지워준다 ) 현재 시스템 환경에서 사용 가능한 폰트 종류를 알아보려면 실행기에 아래 코드를 차례대로 입력해보면 확인할수 있다. from tkinter import Tk, font root = Tk() font.families() 화씨를 섭씨로 변환 해주고 섭씨를 화씨로 변환 해준다. ( 아래도 마찬가지로 양쪽 다 변환이 가능하다 ) 값을 입력하지 않거나 잘못 입력했을때는 상황별로 메시지 박스가 뜨면서 사용자에게 알려준다. 메시지 박스를 사용하려면 import tkinter.messagebox를 해주면 사용이 가능하다.. 2017. 3. 6.
[17일차] python 클래스 / 그래픽 라이브러리 python 클래스 / 그래픽 라이브러리에 대해서 정리한다. ※ python 클래스와 상속을 이용해서 아래 문제를 해결한다. - 입력받을 횟수를 입력하고 그다음엔 교수이면 1, 학생이면 2를 입력해서 구분해주고1을 입력했으면 교수의 name, age, publications을 입력받고2를 입력했으면 학생의 name, age, marks를 입력 받는다.그다음 입력에 대한 결과를 차례대로 출력해준다. ( Sample Input을 입력받아서 Sample Output이 출력되도록 해야된다 ) ( 교수와 학생의 공통 속성을 Person 클래스로 만들어두면Professor와 Student 클래스를 만들때 이 속성을 상속 받아 사용이 가능하다 ) * Professor 클래스에서는 Person을 상속받고 그 외에 필요.. 2017. 3. 3.
[16일차] python 클래스 상속(inherit) python 클래스 상속(inherit)에 대해서 정리한다. ※ 상속(inherit) - 물려주고, 물려받는 내용 즉, 클래스에 있는 내용을 물려줘서(물려 받아서) 쓸수 있다. - 상속 되는 클래스를 부모(Parent), 베이스(Base) 클래스라고 하고 상속 받는 클래스를 자식(Child), 파생(derive) 클래스라고 한다. - 한번에 다중 상속도 가능하지만 파이썬과 같은 경우에는 2개까지만 지원한다. - 클래스는 상속을 따로 받지 않아도 모든 클래스에는 최상위 클래스인 Object 클래스를 상속 받아서 객체가 생성된다. - 부모 클래스에 접근할때 클래스 이름 대신 super()를 이용하면 자신의 부모 클래스를 명시적으로 나타낼수 있다. - 부모 클래스에 메서드 변수를 '__'(프라이빗)으로 캡슐화.. 2017. 3. 2.
[15일차] python 클래스(Class)의 구성요소 / 캡슐화 / @property / @staticmethod python 클래스의 구성요소 / @property / @staticmethod에 대해서 정리한다. ※ 클래스의 구성요소 - 멤버 변수 1. 클래스 변수* 공유 변수 : 모든 객체가 서로 공유하는 단 하나의 변수* @staticmethod는 기본적으로 클래스 변수와 비슷한 성질을 가지고 있다. 2. 객체(인스턴스) 변수* 객체가 만들어지고 나서 사용 가능한 변수* 객체가 생성된 이후에 멤버를 지정할 수 있다. ( python에서는 클래스안에 내용이 없어도 객체로 만든다음객체 안에 변수를 만들어서 쓰는것도 지원하고 있다 ) - 멤버 메서드(함수) * 멤버 메서드의 첫번째 인자는 self여야 한다.* self를 통해서 객체의 멤버들에게 접근이 가능하다. ( self.변수명으로 객체안에 있는 변수라는걸 나타내.. 2017. 2. 28.
[14일차] 합병정렬(Merge sort) / 클래스와 객체(Class and Object) 합병정렬(Merge sort) / 클래스와 객체(Class and Object)에 대해서 정리한다. ※ 분할-정복 기법(Divide and Conquer) - 처리하기 어려워보이는 아주 많은 데이터도 작은 단위로 쪼개면 처리가 가능하다. - 정렬에서만 사용하는 방법이 아니라 대부분의 문제에서 효율적으로 적용이 가능하다. - 합병정렬, 퀵정렬, 힙 정렬 등이 분할-정복 기법을 개념으로 동작한다. ※ 합병정렬(Merge sort) - 데이터를 하나의 원소 단위로 각각 분할한 다음에 인접한 원소끼리 정렬을 하면서합병해주는 방식이다. - 분할-정복 기법을 사용하는 대표적인 알고리즘이다. - 재귀적 용법이 이런 문제에서 얼마나 효율적으로 동작할수 있는지 확인할 수 있다. - 아래 코드는 재귀적 용법을 이용해서 합.. 2017. 2. 27.
[13일차] python 제자리 정렬 기법 (선택정렬, 거품정렬) / EOF(End Of File) python 제자리 정렬 기법 (선택정렬, 거품정렬) / EOF(End Of File)에 대해서 정리한다. ※ 선택정렬 ( selection sort ) - 최소값을 찾아서 맨앞쪽에 있는 값과 교환하면서 정렬하는 방식이다. - 가장 직관적인 방법으로 소량의 데이터를 정렬에서 효율적으로 쓰이고데이터가 많아질수록 비효율적이 된다.( 1000개 정도까지의 데이터는 효율적으로 처리 가능하다, 시간 복잡도 O(n^2) ) - 가장 직관적인 방법이라고 할수 있다. - 리스트 안에 1부터 100까지의 수를 선택정렬 코드로 표현하면 아래와 같이 표현이 가능하다.( 저번에는 min()함수를 이용해서 했지만 이번에는 최소값을 구하는 부분도함수로 따로 만들어주었다 ) * random 모듈을 import해서 그 안에 rand.. 2017. 2. 24.