Programming/Python (36) 썸네일형 리스트형 __str__ 과 __repr__ 0.__str__과 __repr__ 1. 개요 파이썬에서 매우 자주 쓰이고 은근히 햇갈린느 두 메소드에 대해 다뤄본다. __str_ 과 __repr__로써 이 둘은 객체를 사용자가 이해할 수 있는 문자열로 반환하는 함수다. 2. 이해 2.1 str, __str__ ''__str__'' 를 본적이 없더라도 str 함수는 많이들 접해봤을 것이다. 어떠한 일련의 작업 이후 정수 또는 소수 등의 자료형을 출력하거나, 병합(Concat)등의 작업을 할 떄 str 함수를 통해 많이들 가공하기 때문이다. str은 입력 받은 객체의 문자열 버전을 반환하는 함수이다. 이때 주요시 봐야하는 요점은 str은 내장 함수가 아니라, 파이썬 내장 클래스라는 것이다. 사실 str클래스의 생성자 메소드를 실행하고, 그 인자값을 전달.. Linked List Linked Lists 기본적 연결 리스트 Node : Data + Link (next) 노드 내의 데이터는 다른 구조로 이루어질 수 있음 ex)문자열, 레코드, 또 다른 연결리스트…etc 리스트의 맨 첫 원소 : Head, 맨 끝 원소 : Tail, 노드의 개수 매우 중요! 자료구조 정의 Node : Data + Link(next) LinkedList class Node: def __init__(self, item): self.data = item self.next = None class LinkedList: def __init__(self): self.nodeCount = 0 self.head = None self.tail = None def getAt(self, pos): # 원소 위치 입력이 .. 표준 라이브러리 파이썬 표준 라이브러리는 파이썬을 설치할 때 항상 함께 설치되는 많은 수의 유용한 모듈들을 말한다.파이썬 표준 라이브러리에 익숙해지면 이를 이용해 해결할 수 있는 많은 문제들을 좀 더 빠르고 쉽게 해결할 수 있다. 지금부터 표준 라이브러리에 포함된 많은 모듈 중에서 자주 사용되는 몇가지 모듈에 대해 알아볼 것이다. sys 모듈sys모듈에는 시스템의 가능을 다루는 여러 함수들이 들어 있다. 예를들어 sys.argv리스트에는 명령줄 인수들이 들어 있다. 또 sys 모듈을 통해 현재 사용하고 있는 파이썬의 버전을 알아올 수 있다.help(sys)를 쳐보면 sys에 대해 알수있다. argv -- command line arguments; argv[0] is the script pathname if known v.. 예외 처리 예외 처리 예외란 말 그대로 프로그램에서 벌어지는 예외적인 상황을 뜻한다. 예를 들자면 , 우리가 파일으 읽고자 할 때 그 파일이 존재하지 않는 경우라던지 , 또는 한참 프로그램이 실행중인데 그 파일을 갑자기 지워버렸다던지 하는 경우다. 이러한 상황을 처리해 주는 것을 예외 처리 라고 한다. 비슷하게 우리가 프로그램에 존재하지 않는 명령문이 있을 경우 어떻게 될까? 이런 경우 파이썬은 손을 들고( raise ) 프로그램에 오류 ( error ) 가 있다고 알려준다. 오류 간단히 print함수를 호출하는 상황을 생각해보자. 이 떄 print를 Print 라고 잘못 쳤을 경우 어떻게 될까?SyntaxError ( 구문 오류 ) 가 발생되었고 오류가 발생한 위치가 표시될 것이다. 이것은 이 오류의 오류 핸들러.. 입력과 출력 입력과 출력프로그램을 만들다 보면 간혹 프로그램이 사용자와 상호 작용을 해야 할 떄가 있다. 예를 들어 , 사용자로부터 뭔가를 입력받고 처리 결과를 출력해 주는 것 같은 일이 필요할 때 입니다. 파이썬에서는 이를 위해 input()함수와 print()문을 이용한다. 결과를 출력해주기 위해서는 str( 문자열 ) 클래스가 제공하는 여러 메소드를 사용할 수도 있다. 예를들면 , rjust 메소드를 사용하여 출력될 문자열이 특정 폭의 문자열 안에서 오른쪽 정렬되도록 할 수 있다. 사용자로부터 입력받는 예제를 살펴보자. def reverse(text): return text[::-1] # 입력받은 text를 뒤집는 함수 def is_palindrome(text): return text == reverse(tex.. 상속 객체 지향 프로그래밍의 또 다른 장점은 코드를 재사용 할 수 있다는 것인데 이를 위한 한가지 방법으로 상속이 사용된다. 상속은 클래스 간의 형식과 세부 형식을 구현하는 것이라고 생각해 볼 수 있다. 만일 우리가 어떤 대학의 교수님들과 학생들의 명부를 작성하는 프로그램을 작성한다고 가정하자. 이 때 교수와 학생 모두 공통적으로 이름 , 나이 , 주소 등의 성질을 가지고 있을 것이며 , 교수에만 적용되는 성질로는 연봉 , 과목 , 휴가 등이 있을 것이고 , 학생에만 적용되는 성질로는 성적 , 등록금 등이 있을 것이다. 따라서 우리는 각각의 경우에 두 독립적인 클래스를 만들 수 있겠지만 , 이 경우 각각의 공통적인 성질 또한 각각의 클래스에 두번씩 반복해서 정의해줘야 한다. ( 여간 귀찮은게 아니다..) 더 .. 클래스 변수와 객체 변수 저번시간 정리한 내용을 복습하고 시작하자 ( 매우 중요 하기 때문)객체 지향 프로그래밍의 두가지 주인공 클래스 : 새로운 형식을 정의 객체 : 클래스의 인스턴스를 의미 ex ) int라는 형식의 변수를 만들 수 있다는 것 , 이는 곧 정수형을 저장하는 변수는 int 클래스의 객체(인스턴스)를 변수에 할당하는 것 이라고 말할 수 있다. 쉽게 생각하면 클래스는 뽑기 틀에 비유하고 , 인스턴스는 틀에 의해 생성되는 뽑기 들을 생각하면된다. 객체는 그 객체에 내장된 일반적인 변수들을 사용하여 데이터를 저장할 수 있다. 이 때 객체 혹은 클래스에 소속된 변수들을 필드라고 불렀다. 객체는 또한 내장된 함수를 이용하여 어떤 기능을 갖도록 하는데 이것을 클래스의 메소드 라고 불렀다.또 이러한 필드와 메소드들을 통틀어 .. 객체 지향 프로그래밍 ( Object - Oriented Programming ) 객체 지향 프로그래밍 지금까지 프로그램을 작성할 때 , 우리는 데이터를 다루는 명령들의 블록인 함수들의 조합으로 프로그램을 구성하였다.이러한 설계 방식을 절차 지향 프로그래밍 기법이라고 부른다. 이와달리 데이터와 기능을 객체라고 불리는 것으로 묶어서 프로그램을 구성하는 또 다른 기법이 있다. 대부분의 시간동안 절차 지향 프로그래밍 기법을 통해 프로그램을 작성하게 되겠지만 , 큰 프로그램 , 복잡한 프로그램등을 작성할 때나 이 기법을 이용하는 것이 더 편리한 문제를 해결해야 할 경우 객체 지향 프로그래밍 기법을 활용할 수 있다. 객체 지향 프로그래밍 기법에는 클래스와 객체라는 두 가지 주인공이 있다.클래스는 새로운 형식을 정의하는 것이며 , 객체는 클래스의 인스턴스를 의미한다.이것을 다시 표현하면 우리가 .. 이전 1 2 3 4 5 다음