본문 바로가기

전체 글

(426)
운영체제 개요 보충 운영체제 : 컴퓨터의 사용자와 하드웨어 사이에서 중개자 역할을 해주는 프로그램 운영체제의 역사 : 수작업 -> 단일 프로그래밍 -> 다중 프로그래밍 & 시분할 -> 모바일 OS & 실시간 시스템 운영체제의 목적 : 1. 사용자가 컴퓨터를 편리하게 사용하는 것 2. 컴퓨터 하드웨어가 효율적으로 사용되는 것 컴퓨터 시스템의 처리 구조 USER↑ ↓Application ↑ ↓Operation System ↑ ↓Hardware 위와 같이 하드웨어 ( 컴퓨터 ) 와 사용자 사이에 개입하여 상호적으로 컴퓨터가 실행되는 동안 항상 수행되는 프로그램으로 이용을 돕는 역할의 Operation System 사용자의 관점에서 볼때 좋은 OS는 사용의 용이성 , 자원 이용의 극대화에 중점을 둔 OS라 할수있다.시스템의 관점에..
표준 라이브러리 파이썬 표준 라이브러리는 파이썬을 설치할 때 항상 함께 설치되는 많은 수의 유용한 모듈들을 말한다.파이썬 표준 라이브러리에 익숙해지면 이를 이용해 해결할 수 있는 많은 문제들을 좀 더 빠르고 쉽게 해결할 수 있다. 지금부터 표준 라이브러리에 포함된 많은 모듈 중에서 자주 사용되는 몇가지 모듈에 대해 알아볼 것이다. 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 ) 객체 지향 프로그래밍 지금까지 프로그램을 작성할 때 , 우리는 데이터를 다루는 명령들의 블록인 함수들의 조합으로 프로그램을 구성하였다.이러한 설계 방식을 절차 지향 프로그래밍 기법이라고 부른다. 이와달리 데이터와 기능을 객체라고 불리는 것으로 묶어서 프로그램을 구성하는 또 다른 기법이 있다. 대부분의 시간동안 절차 지향 프로그래밍 기법을 통해 프로그램을 작성하게 되겠지만 , 큰 프로그램 , 복잡한 프로그램등을 작성할 때나 이 기법을 이용하는 것이 더 편리한 문제를 해결해야 할 경우 객체 지향 프로그래밍 기법을 활용할 수 있다. 객체 지향 프로그래밍 기법에는 클래스와 객체라는 두 가지 주인공이 있다.클래스는 새로운 형식을 정의하는 것이며 , 객체는 클래스의 인스턴스를 의미한다.이것을 다시 표현하면 우리가 ..
문자열 보충설명 앞서 문자열에 대해 정리했지만 , 좀 더 보충하고자 한다. 문자열도 객체이므로 여러 메소드를 가지고 있다. 이를 통해 앞 뒤 공백을 제거한다거나 하는 일들을 할 수 있다. 파이썬에서 사용되는 모든 문자열은 str클래스의 객체다.이 객체가 제공하는 몇가지 유용한 메소드들의 예시를 살펴보자. #string 객체 name = 'Swaroop' if name.startswith('swa'): print('Yes, the string starts with "swa"') if 'a' in name: print("Yes, it contains the string 'a'") if name.find('war') != -1: print("Yes, it contains the string 'war'") delimiter =..