Programming Language 105

[Python] Try_Except

try - except 구문을 통해 예외가 발생해도 무엇이 진행되어야할지 설정함으로 다운되는걸 막을 수 있음. 자바의 try and catch와 유사 try: # 실행할 구문 here pass except 예외종류: # 예외 발생시 실행할 구문 예시) lst = [1, 2, 3] idx = -5 try: print(lst[idx]) except IndexError: # 예외 종류는 IDE 콘솔에서 출력되는 문구로 확인 가능 print('인덱스 에러 발생') except SyntaxError as err: # 콘솔장에 출력되는 문구를 err 변수에 잠시 담음 print(f'{err}, error occured') except Exception: print('Unknown error occured') fin..

[Python] 객체지향 프로그래밍 2

객체지향의 핵심 4가지 추상화: 핵심이 되는 부분만 추리기 상속: 코드의 재사용성을 높이면서 기능을 확장 다형성: 각자의 특성에 따라 다른 결과 만들기 캡슐화: 데이터 보호하기 추상화(Abstraction) 복잡한 것을 숨기고, 필요한 것만 드러내기 상속(Inheritance) 두 클래스 사이 부모-자식 관계를 정립하는 것 클래스는 상속이 가능함. - 모든 파이썬 클래스는 object를 상속 받음 class ChildClass(ParentClass): pass 하위 클래스는 상위 클래스에 정의된 속성, 행동, 관계 및 제약 조건을 모두 상속 받음 부모클래스의 속성, 메서드가 자식 클래스에 상속되므로, 코드 재사용성이 높아짐 # isinstance class Person: pass class Profess..

[Python] 객체지향 프로그래밍 1

객체 지향 프로그래밍은 컴퓨터 프로그래밍의 패러다임 중 하나. 객체 지향 프로그래밍은 컴퓨터 프로그래밍을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 객체들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고 받고, 데이터를 저장할 수 있다. 객체지향의 장점 재사용이 가능하다. 그 자체로 데이터와 행동이 정의됨 - 독립적. 개발자가 내부 구조를 몰라도 호출하여 다른 객체와 조립하며 개발이 가능 객체 단위로 모듈화하여 개발할 수 있으므로 많은 인원이 참여하는 대규모 소프트웨어 개발 가능 개발 용이성, 유지보수 편의성, 신뢰성을 바탕으로 생산성 증가 객체지향의 단점 설계 시 많은 노력과 시간이 필요 다양한 객체들의 상호 작용 구조를 만들기 위해 많은 시간과 노력이 필요 실..

[Python]얕은복사와 깊은복사

14)얕은복사, 깊은복사 자료형과 메모리 데이터 10을 컴퓨터가 기억하는 과정 10을 저장할 공간을 메모리에 만들고 저장할 공간에 대한 주소를 할당 받는다 할당받은 주소를 기억했다가 10이라는 데이터를 해당 주소로 찾아가서 저장한다 이후에 10이 필요해지면 해당 주소로 가서 읽어온다 기존 변수 사용과정에서의 문제점 하나의 기억에, 하나의 주소가 필요; 100개 저장에는 주소 100개 필요. so.. 여러 기억을 하나의 주소로 찾기 위해서, 연속적인 공간에 데이터가 저장되도록 함 thus, 맨 처음 기억의 주소만 기억하면 됨 같은 주소를 가지는 데이터를 참고하는 변수가 할당된 변수 = 얕은 복사 예시) 우리반_점수표 = 구미2반_점수표 구미2반_점수표[2] = 80 으로 하면, 우리반_점수표[2]의 점수도..

[Python]각종 메서드

문자열(String Type) s.find(x) # x의 첫번째 위치를 반환, 없으면 -1을 반환 s.index(x) # x의 첫번째 위치를 반환, 없으면 오류 발생 s.isalpha() # 알파벳 문자 여부. 단순 알파벳이 아닌 유니코드상 letter s.isupper() # 대문자 여부 s.islower() # 소문자 여부 s.istitle() # 타이틀 형식 여부 s.replace(old,new[,count]) # 바꿀 대상 글자를 새로운 글자로 바꿔서 반환 s.strip([chars]) # 공백이나 특정 문자를 제거 s.split(sep=None, maxsplit=-1) # 공백이나 특정 문자를 기준으로 분리 'separator'.join([iterable]) # 구분자로 iterable을 합침 ..

[Python]데이터구조2

셋(Set) Set이란 중복되는 요소가 없이, 순서에 상관없는 데이터들의 묶음 데이터의 중복을 허용하지 않기 때문에 중복되는 원소가 있다면 하나만 저장 순서가 없기 때문에 인덱스를 이용한 접근 불가능 수학에서의 집합을 표현한 컨테이너 집합 연산이 가능(여집합을 표현하는 연산자는 별도로 존재 x) 중복된 값이 존재하지 않음 담고 있는 요소를 삽입 변경, 삭제 가능 → 가변 자료형(mutable) 딕셔너리(Dictionary) 키-값(key-value) 쌍으로 이루어진 자료형 Dictionary의 키(key) key는 변경 불가능한 데이터(immutable)만 활용 가능 string, integer, float, boolean, tuple, range 각 키의 값(values) 어떠한 형태든 관계없음

[Python]데이터구조1

데이터 구조(Data Structure) 여러 데이터를 효과적으로 사용, 관리하기 위한 구조 파이썬에는 대표적으로 List, Tuple, Dict, Set 등의 데이터 구조가 있음 컴퓨터공학에서는 ‘자료구조’라고 함 데이터 구조 활용하기 데이터 구조를 활용하기 위해서는 메서드(method)를 사용 메서드는 클래스 내부에 정의한 함수, 사실상 함수와 동일 일종의 객체 기능 데이터구조.메서드() 형태로 활용 예시) str.replace(old, new[,count]) # [ ]는 선택적 인자를 의미 문자열(String Type) 문자들의 나열(sequence of characters) 모든 문자는 str 타입 문자열은 작은 따옴표나 큰 따옴표를 활용하여 표기 문자열을 묶을 때 동일한 문장부호를 활용 PEP8..

[Python]피보나치수열 만들기

피보나치 수열이란.. 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열. (0), 1, 1, 2, 3, 5, 8, 13 … 재귀함수와 반복문을 이용하여 피보나치 값을 리턴하는 함수 두가지를 작성해보자. 재귀함수를 사용한 방법 def fib(n): if(n>2): return fib(n-1) + fib(n-2) else: return 1 print(fib(10)) ... 55 ... 반복문을 사용한 방법(리스트 활용) def fib_loop1(n): resultList = [0,1] i = 0 while(n != 1): resultList.append(resultList[i]+resultList[i+1]) i += 1 n -= 1 return resultList[-1] print(..

[Python]Module

모듈: 다양한 기능을 하나의 파일(.py)로 묶어둔 것 패키지: 다양한 파일을 하나의 폴더로 묶어둔 것. 패지지안에 또다른 서브 패키지 포함 가능 라이브러리: 다양한 패키지를 하나로 묶어둔 것 import module from module import var, function, Class from module import * # 전체. from package import module from package.module import var, function, Class 파이썬 패키지 관리자(pip) PyPI(python package index)에 저장된 외부 패키지들을 설치하도록 도와주는 패지키 관리 시스템 패키지 설치 최신버전/ 특정버전/ 최소버전을 명시하여 설치 가능 이미 설치되어 있는 경우 이미 설..

[Python]함수 - Packing/Unpacking

08)함수_Packing/Unpacking 패킹/언패킹 연산자(packing/unpacking operator) 모든 시퀀스형(리스트, 튜플 등)은 패킹, 언패킹 연산자 * 를 사용하여 객체의 패킹 또는 언패킹이 가능 패킹 대입문의 좌변 변수에 위치 우변의 객체 수가 좌변의 변수 수보다 많을 경우 객체를 순서대로 대입 나머지 항목들은 모두 별 모양 기호 표시된 변수에 리스트로 대입 언패킹 argument 이름이 *로 시작하는 경우, argument unpacking이라 함 패킹의 경우, 리스트로 대입 언패킹의 경우, 튜플로 대입 가변인자(*args) 가변인자란 여러개의 positional argument를 하나의 필수 parameter로 받아서 사용하는 것을 말함 몇 개의 positional argume..