본문 바로가기
반응형

전체 글607

[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.
[12일차] python 정렬 알고리즘(Sorting algorithm) python 정렬 알고리즘에 대해서 정리한다. ※ 정렬 알고리즘 - 정렬은 고전적인 문제 풀이법이자 알고리즘의 기초이다. - python에서는 sorted()라는 정렬 알고리즘이 제공되지만 알아둔다면다른 지원되지 않는 언어에서 사용이 가능하고 또한 sorted() 함수가 어떻게동작하는지 알아갈수 있다. - 정렬에는 선택정렬, 거품정렬, 합병정렬 등이 있는데 이 3가지 정렬이 가장 대표된다고 볼수 있다. - 여러가지 정렬 알고리즘에 대해서 알아보고 싶다면 구글에서 sorting algorithm 이라고검색해서 wikipedia를 들어가보면 표로 볼수있다.( wikipedia에 보면 저번에 말했던 빅-오 표기법으로 최상, 평균, 최악의 경우에 정렬들의 성능이 나와있다 ) 오늘은 선택정렬(selection s.. 2017. 2. 23.
[11일차] python 꼬리 재귀함수 python 꼬리 재귀함수에 대해서 정리한다 꼬리 재귀함수를 알아보기전에 재귀함수를 사용하면 안좋은 점에 대해서 알아본다. - 재귀함수는 하향식 접근법으로 자기 자신을 계속해서 호출한다음에 차례대로리턴값을 반환해준다. 그런데 여기서 함수가 완전히 종료되지 않았으므로(리턴값을반환하지 않았다) 함수가 끝날때까지 호출된 위치를 기억해줘야한다. 이때 계속 되는 함수 호출이 반복되다 보면 메모리상 공간이 추가적으로필요하게 되기때문에 공간을 잡아둬야 한다.그러면 주소값을 저장하고 있는 스택이 넘치거나 프로그램의 속도가 느려질수가 있다.( 공간 복잡도 ) - 값이 클수록 똑같은 리턴값을 가지고 있는 함수의 호출이 여러번 중복 되면서 상당히비효율적이게 된다. 하지만 꼬리 재귀함수를 사용하면 이런 문제점들이 해결 가능해.. 2017. 2. 23.