3일차-1 Python 프로그래밍 & 라이브러리

정지원·2024년 2월 22일
0

에이블 스쿨 복습

목록 보기
4/51
post-thumbnail

1. Jupyter notebook

주피터 노트북은 Anaconda Prompt 에서 사용하는 파일이 있는 폴더명에

cd 파일이름
ex) cd filename

경로를 설정하여 Jupyter notebook 또는 Jupyter lab을 작성하여 연결을 합니다.

두 개의 차이는 lab은 notebook에 비해 파일 간 이동이 자유롭습니다.
한 화면에서 단순 제목을 클릭하여 파일 간 이동이 가능하기 때문이죠.

저희는 Jupyter lab으로 실습 하였습니다.

1) 마크다운 셀 편집

  • '#': 제목의 크기를 조절함 ('#'의 갯수 마다 다름)

#제목1

##제목2

###제목3

  • '*': 점 표시를 할 수 있음

  • '>': 왼쪽에 바를 그려줌 (아래와 같이)

  • '** **': 굵게 강조 표시를 할 수 있음

2) 단축키

  • Shift + Enter: 셀 실행, 다음 셀 이동
  • Ctrl + Enter: 셀 실행
  • Alt + Enter: 셀 실행, 아래 새 셀 생성
  • Y: 코드 셀로 전환
  • M: 마크다운 셀로 전환
  • A: 현재 셀 위에 빈 셀 추가
  • B: 현재 셀 아래에 빈 셀 추가
  • X: 현재 셀 잘라내기
  • C: 현재 셀 복사
  • V: 현재 셀 아래에 붙여 넣기
  • DD: 현재 셀 삭제
  • Z: 셀 삭제 취소
  • S: 저장
  • Shift + M: 아래 셀과 합치기
  • Ctrl + Shift + -: 셀 분할
  • Shift + M: 아래 셀과 합치기
  • Shift + Tab: 툴팁 표시
  • Shift + L: 코드 셀에서 라인번호 표시
  • Ctrl + /: 주석표시

2. 자료형(list, dictionary, tuple)

1) 리스트(list)

리스트 생성

List_a = [ 1, 2, 3, 4, 5] # 오른쪽의 값을 List_a에 저장해라
List_b = [1, 'a', 3, 'b', 5] # 숫자와 문자를 한번에 저장 가능
list_c = list(range(1, 20, 3)) # 1이상 20미만의 수 중 3씩 증가하는 리스트 생성
print(list_c)

>
[1, 4, 7, 10, 13, 16, 19]

range() 함수

  • range(a, b, c) : a이상 b 미만의 범위에서, c씩 증가/감소
  • range(a, b) : a이상 b 미만의 범위에서 1씩 증가
  • range(x) : 0부터 x미만의 범위에서 1씩 증가
list_d = [1, 2, 3]
list_e = [list_d, 4, 5]
print(list_e)

>
[[1, 2, 3], 4, 5] # 리스트 안에 리스트 저장이 가능하다.

리스트 사용

인덱스

  • 인덱스는 리스트의 첫번째를 0 부터 부여한다.
    1) 인덱스 값으로 조희
a = [23, 3, 16, 45, 11]
print(a[0], a[3])
print(a[-1], a[-3])]

>
23 45
11 16

2) 인덱스 범위 조회(슬라이싱)
리스트[시작 인덱스 : 끝 인덱스]
시작인덱스부터 끝 인덱스 전까지
시작인덱스 생략시 처음부터
끝인덱스 생략시 끝까지

a = [23, 3, 16, 45, 11]
print(a[0:3])
print(a[:3])
print(a[2:5])
print(a[2:])
print(a[-3:])

>
[23, 3, 16]
[23, 3, 16]
[23, 3, 16]
[16, 45, 11]
[16, 45, 11]
[16, 45, 11]

3) 리스트 수정

리스트 추가 / 값 추가

  • .append()
  • 리스트 + [추가할 값]: 리스트1 + 리스트2 = 합쳐진 리스트
a = [23, 3, 16, 45, 11]
a.append(99) # a 리스트에 99 추가
print(a)

>
[23, 3, 16, 45, 11, 99]
a = [23, 3, 16, 45, 11]
a = a + [99] # a 리스트에 99 추가
print(a)

>
[23, 3, 16, 45, 11, 99]

리스트 수정 / 값 수정

  • 인덱스로 해당 값을 조회하고 그 자리에 수정
    • a[2] = 34
a = [23, 3, 16, 45, 11]
a[2] = 34 # 2번 인덱스 34로 바꿔라
print(a)

>
[23, 3, 34, 45, 11]

리스트 삭제 / 값 삭제

  • 인덱스로 조회한 대상을 삭제 : del a[2]
  • 특정 값을 찾아서 삭제 : 리스트.remove(값)
a = [23, 3, 16, 45, 11]
del a[2] # 조회한 대상을 삭제
print(a)

>
[23, 3, 45, 11]
a = [23, 3, 16, 45, 11]
a.remove(45) # 특정 값을 찾아서 삭제
print(a)

>
[23, 3, 16, 11]

리스트에 사용되는 함수 정리

함수

  • len(리스트): 리스트 값(element)들의 개수
  • sum(리스트): 값들이 숫자일때, 합 구하기
  • type(자료형): 자료형의 형태(type) (int, str, list 등등)

메서드

  • 리스트.append(값): 리스트 제일 끝에 값 추가
  • 리스트.insert(인덱스, 값): 특정 인덱스 위치에 값 추가 (뒤의 값들은 밀림)
  • 리스트.remove(값): 해당 값을 찾아서 삭제
  • 리스트.sort(): 리스트의 값들을 오름차순 정렬시키고 저장
  • 리스트.sort(reverse = True): 내림차순 정렬

리스트에 여러 개의 값을 한꺼번에 할당하기

animals = ['사자', '코끼리', '하마']
a1, a2, a3 = animals
print(a1, a2, a3)

>
사자 코끼리 하마

2) 딕셔너리 (dictionary)

  • 하나의 딕셔너리 안에 다양한 형태의 여러 값들을 저장
  • 여러 자료형들의 묶음

딕셔너리 생성

  • 중괄호 {} 안에 , key : value 형태로 선언합니다.
    • Value : 다양한 형태의 변수
    • Key : Value 변수의 이름
dict_a = { 'v1' : 32,
           'l1' : [1, 2, 3],
           'd1' : {'a' : 1, 'b' : 2} }
print(dict_a)

>
{'v1': 32, 'l1': [1, 2, 3], 'd1': {'a': 1, 'b': 2}}
  • 딕셔너리 정보 조회
    • .keys() : 딕셔너리의 key 만 조회
    • .values() : 딕셔너리의 값 만 조회
    • .items() : key와 값을 쌍(tuple)으로 조회
dict_a.keys() # key 조회
>
dict_keys(['v1', 'l1', 'd1'])


dict_a.values() # value 조회
>
dict_values([32, [1, 2, 3], {'a': 1, 'b': 2}])


dict_a.items() # 모두 조회
>
dict_items([('v1', 32), ('l1', [1, 2, 3]), ('d1', {'a': 1, 'b': 2})])

딕셔너리 조회

  • 조회시 키로 값을 조회
    • 딕셔너리[키]
dict_a = { 'v1': 32, 'l1': [1,2,3], 'd1': {'a':1, 'b':2}}

print( dict_a['v1'])
>
32


print( dict_a['l1'])
print( dict_a['l1'][:2])

>
[1, 2, 3]
[1, 2]


print( dict_a['d1'])
print( dict_a['d1']['a'])

>
{'a': 1, 'b': 2}
1

딕셔너리 수정

# 딕셔너리 생성
dict_a = { 'v1': 32, 'l1': [1,2,3], 'd1': {'a':1, 'b':2}}



# 딕셔너리 추가
dict_a['v2'] = 500 # 딕셔너리['새 키'] = 새 값
print(dict_a)
>
{'v1': 32, 'l1': [1, 2, 3], 'd1': {'a': 1, 'b': 2}, 'v2': 500}



# 딕셔너리 수정 
dict_a['v2'] = 300 # 딕셔너리['키'] = 새 값
print(dict_a)
>
{'v1': 32, 'l1': [1, 2, 3], 'd1': {'a': 1, 'b': 2}, 'v2': 300}



# 삭제
del dict_a['v2'] # del딕셔너리['키']
print(dict_a)
>
{'v1': 32, 'l1': [1, 2, 3], 'd1': {'a': 1, 'b': 2}}

딕셔너리의 각 값을 개별 변수로 할당하기

dict_a = {'v1': 32}, 'l1': [1,2,3], 'd1': {'a':1, 'b':2}}
i1, i2, i3 = dict_a.items()

print(i2, i3)
print(i2[0], i3[1]

>
('l1', [1,2,3]) ('d1', {'a':1, 'b':2})
l1 {'a':1, 'b':2}

3) 튜블(tuple)

  • 튜플은 좌표, 순서쌍을 담는 자료형입니다.
# 소괄호로 선언
t = (4,7)
t
>
(4, 7)


# 조회는 인덱스로
print(t[0])
print(t[1])
>
4
7
profile
뒤늦게 프로그래밍을 시작한 응애

0개의 댓글