728x90
반응형

문자열

- 문자열은 문자들의 시퀀스로 정의된다. 글자들이 실(String)로 묶여 있는 것이 문자열이라고 생각하면 된다.

- 인덱싱 : 문자열도 크게 보면 시퀀스(Sequence)라는 자료 구조에 속한다. 시퀀스는 리스트와 같이 항목들이 순서를 가지고 모인 자료구조이다.

 

원시 문자열

- 문자열의 시작 따옴표 앞에 r을 두면 원시 문자열(raw string)이 된다.

- 앞에 r이 붙어 있는 원시 문자열이기 때문에 파이썬은 백슬래시를 문자열의 일부로 간주한다. 즉, 백슬래시를 이스케이프 문자로 취급하지 않는다.

- 원시 문자열은 r'C:\\User\Kim\Document'와 같은 윈도우 파일 경로를 나타내는 문자열에 필요하다.

 

슬라이싱

- 슬라이싱이란 문자열의 일부를 잘라서 서브 문자열을 만드는 연산

 

문자열 관련 메소드

https://mzero.tistory.com/31

 

[Python] 파이썬 문자열 메소드, 정규식

문자열 메소드 - lower() : 소문자로 변환된 새 문자열을 반환한다. - upper() : 대문자로 변환된 새 문자열을 반환한다. >> lower() 및 upper() 메소드는 대소문자를 구분하지 않고 비교할 때 아주 유용하

mzero.tistory.com

 

파이썬 소스 파일 확인하기

- 사용자가 입력한 문자열이 파이썬 소스 파일 이름인지를 검사하려면 다음과 같이 입력

s = input('파이썬 소스 파일 이름을 입력하시오 : ')
if s.endswith('.py'):
    print('올바른 파일 이름입니다.')
else:
    print('올바른 파일 이름이 아닙니다.')

 

예외처리

- 사용자들은 잘못된 데이터를 입력할 수도 있고, 우리가 오픈하고자하는 파일이 컴퓨터에 존재하지 않을 수도 있으며 인터넷이 다운될 수도 있다.

- 오류가 발생했을때 오류를 사용자에게 알려주고 모든 데이터를 저장하게 한 후에 사용자가 우아하게(gracefully) 프로그램을 종료할 수 있도록 하는 것이 바람직히다.

 

오류의 종류

- 사용자 입력 오류 : 사용자가 정수를 입력하여야 하는데 실수를 입력 할 수 있다.

- 장치오류 : 네트워크가 안 된다거나 하드 디스크 작동이 실패할 수 있다.

- 코드오류 : 잘못된 인덱스를 사용하여서 배열에 접근할 수 있다.

- IOError : 파일을 열 수 없으면 발생한다.

- importError : 파이썬이 모듈을 찾을 수 없으면 발생한다.

- ValueError : 연산이나 내장 함수에서 인수가 적절치 않은 값을 가지고 있으면 발생한다.

- KeyboardInterrupt : 사용자가 인터럽트 키를 누르면 발생한다. (ctrl-c 나 delete)

- EOFError : 내장 함수가 파일의 끝을 만나면 발생한다.

 

예외처리

- Try-catch 구조

-오류를 처리 할 수 있게끔 지원한다.


- 예외처리 형식


- finally : 오류 유무에 상관 없이 무조건 실행


객체 지향 프로그래밍

객체 지향 프로그래밍(OOP: object-oriented programming)은 우리가 사는 실제 세계가 객체(object)들로 구성된 것과 비슷하게, 소프트웨어도 객체로 구성하는 방법이다. 실제 세계에서는 사람, 자동차, 텔레비전, 세탁기, 냉장고 등의 많은 객체가 존재한다. 객체들은 객체 나름 대로 고유한 기능을 수행하면서 다른 객체들과 메세지를 통하여 상호작용 한다.

 

절차 지향과 객체 지향

- 절차 지향 프로그래밍(procedural programming)은 프로시저를 기반으로 하는 프로그래밍 방법이다.

- 객체 지향 프로그래밍(object-oriented programming)은 데이터와 함수를 하나의 덩어리로 묶어서 생각하는 방법이다.

- 절차지향의 문제 : 가장 중요한 단점은, 서로 관련된 데이터와 함수를 묶을 수가 없다는 점이다. 따라서 절차 지향 방법에서는 데이터가 프로그램의 중요한 부분임에도 불구하고 프로그래머들은 함수 작성에만 신경을 쓰게 된다.

 

객체

- 객체(object)는 속성과 동작을 가진다

- 자동차는 메이커나 모델, 색상, 연식, 가격과 같은 속성(attribute)을 가지고 있다. 또 자동차는 주행할 수 있고, 방향을 전환하거나 정지할 수 있다. 이러한 것을 객체의 동작(action)이라고 한다.

- 파이썬에서는 모든 것이 객체이다.

 

클래스

- 객체에 대한 설계도를 클래스(class) 라고 한다. 클래스란 특정한 종류의 객체들을 찍어내는 형틀(template) 또는 청사진(blueprint)이라고도 할 수 있다.

- 클래스로부터 만들어지는 객체를 그 클래스의 인스턴스(instance)라고 한다.

- 형식

class 클래스 이름:
    def __init__(): # 생성자
    def 메소드 이름(...): # 메소드

- 모든 메소드에 사용 유무와 상관 없이 "self" 파라미터가 첫번째로 들어가야 한다.

class Counter:
    counter_a = 0
    def __init__(self): # 생성자
        print("__init__")
        self.count = 0 
    def increment(self): # 메소드
        self.count += 1 
    def print_count(self): # 메소드
        print(self.count)
 

캡슐화💊

- 개발자로서 클래스의 객체를 갖고 작업할 때는 객체가 어떻게 내부적으로 속성을 저장하고 어떻게 메소드들이 구현되는지 알 필요가 없다. 공용 인터페이스만 제공하고 구현 세부사항을 감추는 것을 캡슐화(encapsulation)라고 한다.

- 캡슐화는 데이터와 알고리즘을 하나로 묶는 것이다.

728x90
반응형

+ Recent posts