정보처리기사 실기를 위한 파이썬 정리(약간의 접수 후기를 곁드린)

정보처리기사 실기를 위한 파이썬 정리한 글

Tmi

이번에 떨어지면 다시... 필기부터 다시 봐야 한다.. 절대 안돼 ㅠㅠㅠㅠㅠㅠㅠㅠ

와.. 접수부터 너무 힘들었다.

평일 10시라서 회사에서 접수해야 하는데 ㅎ... 심지어 서버 터져가지고 점심시간에도 붙잡고 있었던 거 ㄹㅈㄷ

트위터에 사람들 다 욕하고 ㅋㅋㅋㅋ 무슨 단계별로 끊겨서 열받았었다 진짜로

이번에 근처 접수 못해서 멀리 가는 사람들도 많던데..ㅋㅋㅋ 이번에가 더 터진 이유가

이라고.. ㅋㅋㅋ...

티켓팅 같은 정처기 실기를 다시 안보기 위해서 이번에 끝낸다

파이썬 정리

01. 데이터 타입

1) 변수

  • 변수는 데이터를 담는 그릇

변수의 이름 규칙(Rule)

  • 소문자(a-z)

  • 대문자(A-Z)

  • 숫자(0-9)

  • 한글도 가능

  • 특수기호는 언더바(_)만 허용


다음의 규칙을 가짐

  • 대소 문자를 구분한다.

  • 숫자는 맨 처음에 올 수 없다.

  • 예약어는 사용할 수 없다.

2) 기본 데이터 타입

주요 데이터 타입

  1. int

  2. float

  3. str

  4. bool

type()

  • type 함수를 활용하여 데이터의 타입을 알아 볼 수 있음

None 타입

  • 말 그대로 아무 것도 아닌 흔히 null 값을 넣는다고 함

  • Null : Nullify (무효화하다)

3) 타입 변환

  • intfloat로 변환한 경우

  • floatint로 변환한 경우 : 반올림이 아닌 값이 버림되어 진다.

  • boolint로 변환한 경우

02. 리스트(List), 튜플(Tuple)

분류
타입
특징
예시

시퀸스(sequence)

리스트(list)

순서가 있고, 가변(mutable)

[1, 2, 3]

시퀸스(sequence)

투플(tuple)

순서가 있고, 불변(immutable)

(1, 2, 3)

세트(set)

세트(set)

순서가 없고, 중복을 허용하지 않음

{1, 2, 3}

맵(map)

딕셔너리(dictionary)

순서가 없고, key/value 쌍으로 이루어짐

{‘a’ : 1, ‘b’ : 2, ‘c’ : 3}

출처 : https://wikidocs.net/137565

1) 리스트

  • 리스트는 데이터의 요소를 순차적으로 파악하는데 용이한 자료형

  • 리스트는 다양한 메서드 혹은 함수를 지원하며, 메서드를 활용하여 요소를 추가, 삭제, 변경 할 수 있다.

생성과 출력

규칙

  • list는 다양한 type의 데이터를 집합으로 가진다

  • list안에 list도 허용

  • list는 순서의 개념이 존재

  • 리스트를 출력하면 []까지 포함

관련 함수

  • .점 연산자로 함수 실행 가능

  • 함수는 어떤 작업을 수행하는 코드를 모아 이름을 붙인 것

1. append : 값 추가

  • 값을 리스트의 맨 뒤에 추가

  • 중복된 값을 추가할 수 있으며, 순서가 유지

[출력]

2. sort() : 정렬

  • 요소를 순서대로 정렬(오름차순)

  • sort()는 내부적으로 정렬

[출력]

  • 역정렬도 가능 (reverse = True)

[출력]

3. sorted() 정렬

  • 요소를 순서대로 정렬

  • 내부적으로 정렬하지 않고 정렬된 복사본 반환

  • 즉, 원본 데이터는 정렬 x

  • reverse=True를 지정하여 역정렬할 수 있음

4. reverse() : 역정렬

  • 정렬 후 역정렬이 아닌 바로 역정렬

5. len() : 전체 항목의 개수 세기

6. insert() : 값 추가

  • insert는 지정된 index에 값 추가

7. remove() : 값 제거

  • 리스트에서 첫 번째 나오는 해당 값 제거

8. pop() : 요소 꺼내기

  • 해당 번째의 요소를 돌려주고 삭제

9. count() : 갯수 세기

  • 해당 숫자의 개수 세기

10. extend() : 리스트 확장

    • 연산자는 extemd()와

리스트 검색

2) 인덱싱, 슬라이싱

인덱싱 : 색인

인덱스는 0번 부터 시작

  • 리스트의 문자열은 ‘'까지 출력

역순 인덱싱

  • 파이썬은 음수 인덱싱 지원

인덱스로 접근하여 값 바꾸기

중첩된 리스트 인덱싱

  • 중첩된 리스트에 대한 리스트는 중첩 인덱싱으로 접근하며, 값을 변경하는 것도 가능

슬라이싱(Slicing): 범위 추출

  • 슬라이싱의 활용: [start:stop:step] 을 명시하여 부분을 추출할 수 있습니다.

  • [start:]는 시작 index 부터 끝까지 추출합니다. end명시 안되어 있다면

  • [:end]는 처음부터 end 전까지 추출합니다. end가 명시되어 있다면 end-1까지 출력

indexing 에 step 활용하기

list 덧셈: list 확장

list 곱셈: list 반복

참고로 **print(fruit[7:])**를 해줘야 출력 되는거임

연습문제

3) 튜플

  • 리스트(list)는 가변(mutable)하는 객체(object)이지만, 튜플(tuple)은 불변(immutable)한 객체

  • 가변 객체는 요소에 대한 수정, 삭제, 변경 등이 가능하지만, 불편 객체는 요소에 대한 수정, 삭제, 변경이 불가

생성

  • tuple(), () 로 생성

  • 혹은 , 로 생성할 수 있다.

단일 요소를 생성할 때는 반드시 ,를 붙여 줍니다.

  • (1,)과 (1)은 다른 자료구조임을 꼭 알고 있어야 합니다.

class 'tuple'

class 'int'

튜플 자료형은 요소의 추가, 삭제, 변경등을 허용하지 않습니다.

  • 그렇기 때문에 리스트로 바꾸고 요소 추가 삭제 변경 후 다시 튜플로 바꿔줘야 함

03. 세트(Set), 딕셔너리(Dictionary)

1) 세트(Set)

  • 세트는 순서가 보장 되지 않는다.

  • 세트는 요소의 중복을 허용하지 않는다.

  • 세트는 **{}**를 활용하여 생성할 수 있다.

생성

참고로 원래 myset만 하면 출력 nono print(myset)해줘야 함

add() : 값 추가

  • set에 요소를 추가

update() : 여러개 값 추가

  • list의 요소들을 한꺼번에 update

  • tuple의 요소들을 한꺼번에 update

  • set의 요소들을 한꺼번에 update

remove() : 값 제거

교집합 (intersection)

[출력]

합집합 (union)

  • 합집합은 집합 A와 B가 주어졌을 때 집합 A, B 요소 모두를 포함하는 것을 말한다.

  • |기호나 union() 메서드를 활용하여 합집합을 구할 수 있다.

[출력]

차집합 (difference)

[출력]

discard : set에서 해당 값 제거 오류 발생 x

2) 딕셔너리(Dictionary)

  • 순서를 가지지 않는다.

  • 키(key)와 값(value)의 쌍으로 이루어져 있다.

  • type은 dict로 표시 된다.

  • key를 사용하여 값을 조회할 수 있다.

  • 딕셔너리는 수정, 삭제, 추가가 가능하다.

  • 딕셔너리는 여러 타입의 key를 가질 수 있다.

값 조회

  • key 값으로 값을 조회할 수 있다.

keys() : 모든 key 조회

[출력]

[참고] dict_keys

  • dict_keys는 리스트(list)가 아님

  • 객체(object)로 생성되는데, 이를 list로 변경하기 위해서는 list()로 타입 변환을 하면 된다.

[출력]

values() : 모든 value 조회

items() : 모든 key, value 조회

  • key, value가 튜플로 묶여서 조회

[출력]

key 값의 존재 유무 확인

값을 추가하기

update() : 다중 업데이트

값 변경

  • key 값에 새로운 값(value)를 대입하여 값을 변경할 수 있다.


제거하기 / key 제거

pop() 에 key를 지정하여 값을 제거할 수 있다.

제거되는 값의 value를 반환

len() : 요소의 개수 파악

4. 문자열(String)

1) 포맷팅, 길이, 인덱싱, 슬라이싱

%를 사용한 출력

%s -> 문자열

%d -> 정수

%f -> 실수

%c : 문자 1개

{} 와 format를 사용한 출력

문자열 길이

  • 공백은 길이에 포함

2) 문자열(텍스트)를 다루는 다양한 기능

split() : 분리

  • split은 문장을 특정 규칙에 의해 쪼개 주는 기능

  • 분리한 결과는 list 형식으로 값을 return 받는다.

기본 값으로 공백이 지정되어 있다. 즉, 공백을 기준으로 분리하여 리스트로 반환

기본 값인 공백에서 특정 문자로 지정할 수 있다.

join() : 합치기

  • 결합하고자 하는 문자에 .join() 안에 리스트를 지정하여 결합할 수 있다.

lower(), upper() : 소문자 / 대문자로 만들기

  • 내부가 변환이 되는 것은 아님 a =으로 넣어줘야함

startswith() : 시작하는

  • 지정한 문자열로 시작하면 True, 그렇지 않다면 False를 반환

[출력]

endswith() : 끝나는

  • 지정한 문자열로 끝나면 True, 그렇지 않다면 False를 반환

[출력]

4) Replace() : 문자열 바꾸기, 공백 제거

  • 문자열에 replace(바꿀 대상, 바꾸려는 문자열) 지정하여 문자열을 변경

  • 결과는 복사본이 만들어져 반환

strip() : 양쪽 공백 제거

lstrip() : 왼쪽 공백 제거

rsreip : 오른쪽 공백 제거

find : 문자열의 첫 시작 위치를 구해줌

5. 연산

**1) 기타 연산자 (%, //, )

  • //: floor division 연산자입니다. 나눗셈에 대한 을 정수형으로 구함

  • %: modulus 연산자입니다. 몫을 나눈 나머지를 구함

  • *: 제곱 연산

  • 연산시 타입(type)이 다르면 Error가 발생합니다.

6. 비교, 논리, 삼항연산자

1) 삼항연산자

7. 반복문

1) For와 In 구문

[기본 문법]

for 하나씩 꺼내올 때 변수 in [꺼내올 집합]:

(indent)

  • list, tuple, set, dictionary, 문자열 형태 모두 가능

  • range와 결합하여 사용 가능

리스트(list)

[출력]

tuple + list

  • tuple을 전체로 받아주는 경우

[출력]

  • tuple의 요소를 개별로 받아주는 경우

[출력]

  • 반복문에서의 응용

[출력]

[출력]

딕셔너리(dictionary)

[출력]

[출력]

[출력]

문자열(str)

[출력]

Range

  • range() 함수는 별도의 list, tuple 생성 없이 range() 에서 정의한 범위를 반복하는데 활용할 수 있다.

  • range(start, stop, step) 형식을 사용

  • stop: 단일 값을 지정하는 경우

[출력]


  • start, stop: 두 개의 값을 지정한 경우

  • stop - 1 슬라이싱과 같음

[출력]


start, stop, step: 세 개의 값을 지정한 경우

[출력]

  • print는 한줄씩 출력

  • 한 칸씩 출력하려면

8. 함수

1) Lambda : 익명 함수(Annonymous Function)

  • 이름 없이 정의된 함수 입니다.

  • **단일 문장(1줄)**의 코드로 작성되어야 합니다.

  • 함수 내부에서는 return문이 포함하지 않지만 값을 반환합니다.

단일 인수를 가지는 lambda 함수


2개의 인수를 가지는 lambda 함수


기본 값이 지정된 인수를 가지는 lambda 함수


키워드 인수를 지정하는 lambda 함수

[출력]


lambda 함수 내부에서 조건문 사용

9. 내장함수(Built-in Function)

  • 파이썬에는 이미 만들어진 내장함수(built-in function)가 존재

  • 이미 사용하고 있는 print(), type()이 파이썬의 대표적인 내장함수

map

  • 문법: map(function, iterable)

  • map은 함수(f)와 순회 가능한(iterable) 자료형을 입력으로 받다.

  • map은 입력받은 자료형의 각 요소를 함수(function)가 수행한 결과를 묶어서 돌려

map만 실행시 요소의 내용이 바로 출력되지 않습니다.

[출력]


list()로 타입 변환하여 요소를 출력

[출력]

map에 lambda 함수 적용

[출력]


map에 다중 인수를 지정

[출력]


list의 size가 다른 경우, 작은 size에 맞춰 생성

[출력]

zip

  • 문법: *zip(iterable)

  • 동일한 개수로 이루어진 자료형을 묶어 주는 역할을 합니다.

sample_data1, sample_data2을 zip으로 묶어준 경우

[출력]


sample_data1, sample_data2, sample_data3을 zip으로 묶어준 경우

  • 작은 size를 가지는 리스트(list)에 맞춰 생성합니다.

[출력]


zip의 응용

[출력]


zip을 활용한 dict 만들기

[출력]

enumerate

  • [문법]: enumerate(iterable, start=0)

  • 순서가 있는 자료형을 입력 받아 index를 포함하는 객체로 return 합니다.

일반 range() 함수를 사용한 경우

[출력]


enumerate() 함수를 사용하여 index를 return 받은 경우

[출력]

Last updated