1. 파이썬
(1) 파이썬 기본 구조
- 사용자 정의 함수(def), 클래스(class)가 먼저 정의되고 코드 실행
- 가독성을 위해 들여쓰기 강제
(2) 자료형(Data Type)
- 유형: 기본 자료형, 컬렉션 자료형
- 기본 자료형: 숫자형, 논리형
- 컬렉션 자료형: 문자열형, 리스트형, 튜플형, 세트형, 딕셔너리형
기본 자료형 | 숫자형(Number) | 숫자 | 정수형(int), 실수형(float) | |
논리형(Logical) | 변수의 참, 거짓 | True(참), False(거짓) | ||
컬렉션 자료형 | 시퀀스 자료형 (순서 O) | 문자열형(String) | 문자 한 개 또는 여러개 | s = "Soojebi" |
리스트형(List) | 읽기, 쓰기 | l = [1, 2, 3] | ||
튜플형(Tuple) | 읽기 전용, 수정 불가 | t = (1, 2, 3) | ||
비시퀀스 자료형 (순서 X) | 세트형(Set) | 중복 불가 | s = {1, 2, 3} | |
딕셔너리형(Dictionary) | 키-값으로 구성된 객체 | d = {'s':1, 'j':2, 'b':3} |
- 시퀀스 자료형: 문자열형, 리스트형, 튜플형
- 문자열형(String): 변수 출력시 괄호 미표시
- 문자를 한 개 또는 여러 개 저장하고자 할 때 사용
띄어쓰기 | , | print("Soojebi", "World") | Soojebi World |
큰따옴표 | ₩", \" | print("₩"Soojebi₩"") | "Soojebi" |
문자열 곱하기 | * | print("Soojebi*3) | SoojebiSoojebiSoojebi |
포맷 스트링 | % | print("%s" % a) | soojebi |
문자열 in | 존재하면 True, 없으면 False | print("hello" in "hello world") | True |
upper() | 대문자로 변환 | ||
lower() | 소문자로 변환 | ||
isalnum() | 알파벳 또는 숫자로만 구성되어 있으면 True, 아니면 False | ||
isalpha() | 알파벳으로만 구성되어 있으면 True, 아니면 False | ||
isdecimal() | 정수이면 True, 아니면 False | ||
isdigit() | 숫자이면 True, 아니면 False | ||
isspace() | 공백으로만 구성되어 있으면 True, 아니면 False | ||
split() | 문자열을 매개변수로 전달된 문자(구분자)로 나누어 리스트로 변환 | ||
구분자 기준으로 문자열 추출 | print("1,2,3".split(",")) | ['1', '2', '3'] |
- 리스트형(List): 변수 출력시 괄포 포함
- 크기가 가변적으로 변하는 선형리스트의 성질
- 선언: 리스트명 = [요소1, 요소 2, …] / 리스트명 = [[요소1, 요소2], [요소3], [요소4] …]
append(x) | 마지막 요소 뒤에 값 x 추가 | ||
clear() | 모든 항목 삭제 | ||
copy() | 복사 | ||
count(x) | x 항목의 개수 | ||
extend(i) | 마지막에 컬렉션 자료형 i 추가 | ||
index(x) | x 와 같은 값을 가지고 있는 인덱스 번호 | ||
insert(i, x) | i 번지에 x 삽입 | ||
pop() | 마지막 항목 삭제하고 값을 꺼냄 | ||
remove(x) | x 삭제, 해당 값이 여러 개일 경우 가장 앞에 있는 값을 제거 | ||
reverse() | 역순 변환 | ||
sort() | 정렬 |
- 튜플형(Tuple): 변수 출력시 괄포 포함
- 초기에 선언된 값에서 값을 생성, 삭제, 수정 불가
- 선언: 튜플명 = (요소1, 요소2, …)
- 시퀀스 자료형 요소 접근 방법: 인덱싱(Indexing), 슬라이싱(Slicing)
- 인덱싱(출력시 괄호 미표시): 앞에서부터 시작하면 인덱스는 0 부터 시작, 뒤에서부터 시작하면 -1 부터 시작
- 슬라이싱(출력시 괄호 표시, 문자열 슬라이싱만 미표시): 여러 개의 데이터에 동시에 접근하는 기법으로 시퀀스변수명[시작 : 종료 : 스텝(기본값 1)] 형태
- 비시퀀스 자료형: 세트형, 딕셔너리형
- 세트형(Set): 변수 출력시 괄포 포함
- 중복된 원소를 허용하지 않는 집합의 성질
- 선언: 세트명 = {요소1, 요소2, …} / 세트명 = set([요소1, 요소2, …])
add(값) | 값을 1개 추가 | ||
update([값1, 값2, …]) | 여러 개의 값을 한꺼번에 추가 | ||
remove(값) | 특정 값 삭제 |
- 딕셔너리형(Dictionary): 변수 출력시 괄포 포함
- 키와 값으로 구성된 객체를 저장하는 구조
- 선언: 딕셔너리명 = {키1:값1, 키2:값2, …}
- 추가, 있으면 변경: 딕셔너리명[키] = 값
- 삭제: del 딕셔너리명[키]
type() | 자료형 확인 함수 | 정수형 | <class 'int'> |
실수형 | <class 'float'> | ||
논리형 | <class 'bool'> | ||
문자열형 | <class 'str'> | ||
리스트형 | <class 'list'> | ||
튜플형 | <class 'tuple'> | ||
세트형 | <class 'set'> | ||
딕셔너리형 | <class 'dict'> | ||
len() | 컬렉션 자료형 크기 계산 함수 | print(len([1, 2, 3])) | 3 |
(3) 입출력
- 표준 출력 함수(print)
- 출력 후 개행: print(문자열/변수)
- 출력 후 개행 안함: print(문자열/변수, end=' ')
- 표준 입력 함수(input)
- 정수형과 실수형과 같은 숫자를 입력받을 때는 문자열로 저장한 후, eval 함수를 사용하여 숫자로 변환
- 문자열 입력: 변수명 = input()
- 숫자 입력: 변수명 = input() / 변수명 = eval(변수명)
(4) 연산자
- 대부분 C언어 연산자와 동일
- 증감 연산자(++, --) 지원 안 함
- Swap 연산자: 콤마를 기준으로 두 변수의 값을 교환
- 산술 연산자: 사칙 연산(+, -, *, /), 몫(//), 지수 연산(**), 나머지 연산(%)
- 비교 연산자(참/거짓): C언어 0/1, 자바 true/flase, 파이썬 True/False 출력
- 대입 연산자: +=, -=, *=, /=, **=, //=
(5) 조건문
- switch 문 없음
- if 문: 조건이 참인지 거짓인지에 따라 경로를 선택하는 명령문
if 조건문:
명령문;
elif 조건문:
명령문;
else:
명령문;
(6) 반복문
- do-while 문 없음
- while 문: 조건문이 참일 경우 명령문 반복 수행
while 조건문:
명령문
- for문: in 연산자 뒤에 range 함수를 사용하여 반복의 범위를 지정하거나 리스트 개수만큼 반복 수행
- range 함수에서 시작을 생략하면 0, 스텝 값을 생략하면 1
for 변수 in range(시작, 종료, 스텝):
명령문
- for each 문: 시퀀스 자료형의 요소들을 차례대로 변수에 대입하면서 반복하는 명령어
for 변수 in 시퀀스자료형;
명령문
(7) 함수
- 사용자 정의 함수(User-Defined Function)
- 매개변수나 생성된 변수는 사용자 정의 함수가 종료되면 소멸
- 디폴트 매개변수: 기본값이 정의된 매개변수
def 함수명(변수명, …):
명령문
return 반환값
def 함수명(매개변수=디폴트값):
명령문
- 람다 함수(Lambda Function)
- 함수 이름 없이 동작하는 함수
- 매개변수에 값을 전달하면 표현식에서 연산 수행
- 내장 함수를 이용한 람다 함수: map(), filter()
- map(함수, 리스트): 리스트 요소를 함수에 전달하여 반복을 수행
- filter(함수, 리스트): 리스트 요소를 함수에 전달하여 조건이 참인 값을 리턴
lambda 매개변수 : 표현식
(8) 예외 처리(Exception Handling)
- 코드가 실행하는 도중에 발생되는 에러를 처리하는 구문
- 예외 처리 구문: try, except(as), elsde, finally
try:
명령문
except:
예외 발생시 동작할 명령문
finally: #선택
명령문
try:
명령문
except 발생예외명1:
예외 발생시 동작할 명령문1
except 발생예외명2:
예외 발생시 동작할 명령문2
else: #선택
명령문
- raise
- 프로그램이 의도하지 않게 동작하는 것을 방지하기 위해 의도적으로 예외 발생시키는 명령어
명령문
raise
명령문
raise 예외처리명
명령문
raise 예외처리명("메시지")
(9) 클래스
- 객체 지향 프로그래밍(OOP)에서 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 틀
- self 는 현재 객체를 가리키는 키워드로 클래스 내부의 변수와 함수를 가리킬 수 있음
class 클래스명:
def 메서드명(self, 변수명, …): #입력받는 값이 없을 경우 self만 사용
명령어
return 반환값
self.변수명;
self.함수명(매개변수);
(10) 생성자
- 해당 클래스의 객체가 생성될 때 자동으로 호출되는 특수한 종류의 메서드
- 생성자 정의: __init__ 형태 메서드 명 사용, 첫 번째 매개변수로 self 작성, 반환 값 없음
- 클래스 호출: 클래스변수 = 클래스(매개변수)
class 클래스명:
def __init__(self, 매개변수): #생성자 정의
명령어
클래스변수 = 클래스(매개변수) #생성자 호출
(11) 소멸자
- 객체의 수명이 끝낫을 때 객체를 제거하기 위한 목적으로 사용되는 메서드
- 소멸자 정의: __del__ 형태 메서드 사용, 첫 번째 매개변수로 self 작성, 반환 값 없음
- 소멸자 호출: del 클래스변수
class 클래스명:
def __del__(self): #소멸자 정의
명령어
del 클래스변수 #소멸자 호출
(12) 클래스 접근 제어자
- 작명법(Naming)으로 접근제어
public | 밑줄이 접두사에 없음 | self.public |
protected | 한 개의 밑줄 _ 접두사 | self._protected |
private | 두 개의 밑줄 __ 접두사 | self.__private |
(13) 클래스 상속(Inheritance)
- 부모 클래스의 변수와 메서드를 자식 클래스가 물려받는 기능
- 부모 클래스 접근: super 키워드로 상위 클래스의 변수나 메서드 접근 super().메서드명()
- 상속 받는 경우 자바와 다르게 부모 클래스 생성자를 호출 안 함, 호출해야 하는 경우 super().__init__() 직접 호출
class 부모_클래스명:
class 자식_클래스명(부모_클래스명):
(14) 메서드 오버라이딩(Overriding)
- 하위 클래스에서 상위 클래스 메서드를 재정의
- 파이썬은 오버로딩 지원 안 함
class 부모_클래스명
def 메서드명(self, 변수명)
명령어
class 자식_클래스명(부모_클래스명)
def 메서드명(self, 변수명) #부모 클래스와 메서드명, 매개변수 동일
명령어
'정보처리기사' 카테고리의 다른 글
서버 프로그램 구현 (0) | 2023.04.20 |
---|---|
SQL 응용 (0) | 2023.04.20 |
프로그래밍 언어 활용(자바) (0) | 2023.04.14 |
프로그래밍 언어 활용(C언어) (0) | 2023.04.12 |
인터페이스 구현 (0) | 2023.04.07 |