Python Basics

기본 자료구조

연산자 및 코드

  • (+) 덧셈
  • (-) 뺄셈
  • (*) 곱셈
  • (/) 몫 구하기
  • (//) 정수형 몫 구하기
  • (**) 거듭제곱
  • (%) 나머지 구하기
1
2
3
4
5
6
7
8
# 기본 연산 
print(30 + 6)
print(40 - 4)
print(6 * 6)
print(72 / 5)
print(72 // 5)
print(6**2)
print(36 % 34)

기본문법

주석

  • 협업과 재사용을 위해 작성
  • 주요 클래스, 함수의 기능과 변수에 대한 명명규칙, 소스코드 작성날짜 및 수정날짜를 위주로 작성하는 것을 권장
  • 공식적인 주석(외부제출용)인 경우, 구어체가 아닌 형태로 핵심적인 부분만 주석을 작성
  • 내부공유용이거나 설명을 위한 소스코드인 경우, 재사용과 내용공유를 목적으로 하여 용어에 대한 풀이 및 이해 내용을 상세히 작성

Collection 자료형

스크린샷 2021-09-16 15 00 12

List

  • append() : 리스트 마지막에 새로운 값 추가
  • insert() : 리스트 중간에 인덱스와 값을 지정하여 값을 추가삽입
  • del
    • 제거할 항목의 인덱스에 따라 삭제
    • 삭제된 값은 확인할 수 없음
    • del 활용예시 : 웹사이트에서 특정 사용자가 탈퇴하는 경우, 인덱스를 활용하여 삭제가능
1
2
3
arr_del = [1, 2, 3, 4, 5]
del arr_del[0]
print(arr_del) # [2, 3, 4, 5]
  • remove
    • 삭제할 항목의 값을 알고 있어야 함(인덱스가 아니라 값을 알고 있어야 함)
    • 중복되는 값이 있는 경우, 인덱스 순서에 따라 앞 순서에 있는 값만 삭제함
1
2
3
4
5
6
7
arr = [1, 2, 3, 4, 5]
arr.remove(2)
print(arr) # [1, 3, 4, 5]

arr_1 = [1, 2, 3, 4, 5,1,1,1]
arr_1.remove(1)
print(arr_1) # [2, 3, 4, 5, 1, 1, 1]
  • pop
    • 리스트에서 특정 위치의 값을 빼내는 기능
    • pop 활용예시 : 웹에서 로그아웃한 특정 사용자를 빼놨다가, 재접속 및 로그인을 위해서 사용자 목록에 다시 넣을 수 있음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
arr_pop = [1, 2, 3, 4, 5, 8, 9, 10]
p_1 = arr_pop.pop()

print(arr_pop) # [1, 2, 3, 4, 5, 8, 9]
print(p_1) # 10

p_2 = arr_pop.pop()

print(arr_pop) # [1, 2, 3, 4, 5, 8]
print(p_2) # 9

p_3 = arr_pop.pop(1)

print(arr_pop) # [1, 3, 4, 5, 8]
print(p_3) # 2
  • extend() : 리스트끼리 이어붙이기
  • index() : 리스트 범위에서 특정 값의 인덱스 반환
1
2
3
4
5
6
arr_two = ['a', 'b', 'c', 'd', 'e', 'a', 'b']

# 1 부터 끝까지에서 탐색
print(arr_two.index('a', 1)) # 5
# 1 부터 3까지에서 탐색
print(arr_two.index('b', 1, 3)) # 1
  • sort() : 리스트의 값 자체의 순서를 정렬
  • sorted() : 리스트 자체의 순서는 유지하고, 정렬된 순서로 출력만 함
1
2
3
4
5
6
7
8
9
10
11
12
arr = [4, 3, 2.5, 7, 0.7, 9]
arr.sort()
print(arr) # [0.7, 2.5, 3, 4, 7, 9]

arr.sort(reverse=True)
print(arr) # [9, 7, 4, 3, 2.5, 0.7] 
# arr의 순서자체가 바뀜

arr2 = [4, 3, 2.5, 7, 0.7, 9]
print(sorted(arr2, reverse=True)) # [9, 7, 4, 3, 2.5, 0.7]
print(arr2) # [4, 3, 2.5, 7, 0.7, 9]
# 주어진 arr은 그대로 유지되어 있음

Dictionary

  • clear() : 삭제
  • copy() : 그대로 복사
  • fromkey() : 키와 값을 병합
1
2
3
4
5
6
7
x = ('key1', 'key2', 'key3')
y = 1
new_dict = dict.fromkeys(x, y)
print(new_dict) # {'key1': 1, 'key2': 1, 'key3': 1}

dict_without_values = dict.fromkeys(x)
print(dict_without_values) # {'key1': None, 'key2': None, 'key3': None}
  • get() : 키를 넣으면 값을 가져옴
  • items() : 키와 값을 보여줌
  • keys() : 키를 보여줌
  • pop() : list의 pop기능과 유사하며 값만 가져옴
  • popitem() : list의 pop기능과 유사하며 키와 값을 가져옴
  • setdefault() : 키와 값 하나를 인자로 받음, 있다면 값을 반환하고 없다면 생성함
  • update() : 새로운 키와 값을 넣음
  • values() : 값만 전시

정리

  • 데이터 순서를 동적으로 조절하려면, 리스트 사용을 권장
  • 키와 값에 따른 데이터를 효율적으로 보려면, 딕셔너리 사용을 권장

mutable과 immutable

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 1.
a = 1
def sum(a):
    a += 1
    return a
sum(a)
print(a) # 1

# 2. 
a = [1]
def sum(a):
    a += [2]
    return a
sum(a)
print(a) # [1, 2]
  • 1번에서는 함수가 적용되지 않고, 2번에서는 가능한 이유는 type의 mutable차이이다.
  • 숫자형 (Number) : immutable

스크린샷 2021-09-16 17 58 21

  • 문자열 (String) : immutable

스크린샷 2021-09-16 17 58 16

  • 리스트 (List) : mutable

스크린샷 2021-09-16 17 58 10

  • 튜플 (Tuple) : immutable

스크린샷 2021-09-16 17 58 02

  • 딕셔너리 (Dictionary) : mutable

스크린샷 2021-09-16 17 57 55

  • 출처: https://ledgku.tistory.com/54 [블로그]

Debuging

  • Debuging : 잠시 멈춰 버그를 없애는 행동
1
breakpoint()
  • w : 현재 실행되고 있는 코드
  • s : 다음으로 넘어가기
  • 추가 명령어

Reference

0%