주피터 노트북(Jupyter notebook)은 셀(cell) 단위로 구성됩니다.
일반적 파이썬 프로그래밍 툴의 경우, 전체 코드를 한 번에 실행해야 하지만
주피터 노트북에서는 코드를 몇 줄 단위로 끊어서 실행할 수 있습니다.
실행
1.1. Ctrl + Enter
: 실행후 커서 유지
1.2. Shift + Enter
: 실행후 커서 다음셀로 이동
셀 추가/삭제/복구
2.1. a
: 위에 셀 추가 (above)
2.2. b
: 아래에 셀 추가 (below)
2.3. dd
: 셀 삭제 (delete)
2.4. z
: 삭제 셀 복원
기타 단축키
3.1. m
: Markdown 셀로 변환
3.2. y
: Code 셀로 변환
3.3. Shift + m
: 셀 병합 (merge)
3.5. Ctrl + s
: 저장
3.6. Enter
: 셀 편집 모드
3.7. ESC
: 명령 모드
3.8. h
: 단축키 리스트 보기
Kernel
탭의 Restart
Kernel
탭의 Restart & Clear Output
Kernel
탭의 Restart & Run All
Cell
탭의 Run All Above
일반 텍스트로 서식이 있는 문서를 작성할 수 있는 마크업 언어
Space
x 2 #
, ##
, ###
, ... (1
, 2
, 3
, ... 숫자키로 변환가능) >
, >>
, >>>
**
BOLD**
*
itelic*
-
와 1.
그리고 들여쓰기
code
` ('~'key) ---
(1),  
(2),  
(4)커널(Kernel) 은 주피터 노트북에서 프로그램이 실행되는 환경을 의미합니다.
커널에는 이전 셀의 실행 결과가 모두 기억됩니다.
Tab
: 자동완성
Shift + Tab
: (괄호 ^ 내부) 에서 눌러, 함수의 도움말 확인 가능
import os
os.getcwd()
'C:\\Users\\Learning\\python\\py_citizen\\Py_Data'
Shift + Tab
@os.getcwd(^)
- Signature: os.getcwd()
- Docstring: Return a unicode string representing the current working directory.
- Type: builtin_function_or_method
Signature:
함수의 이름과 매개변수 정보를 나타냅니다. 여기서는 os.getcwd() 함수의 시그니처가 나와있는데, 이 함수는 매개변수 없이 호출됩니다.
Docstring:
함수에 대한 설명문이며, 함수의 기능과 사용법 등을 간략하게 서술합니다. 여기서는 getcwd() 함수의 도큐먼트 문자열이 제공되며, 현재 작업 디렉토리를 나타내는 유니코드 문자열을 반환한다는 정보가 들어있습니다.
Type:
이 부분은 해당 항목의 타입을 나타냅니다. 여기서는 내장 함수나 메서드임을 나타내는 builtin_function_or_method 타입이 나와있습니다.
따라서 이 정보를 종합해보면, os.getcwd() 함수는 현재 작업 디렉토리를 나타내는 유니코드 문자열을 반환하는 내장 함수라는 것을 알 수 있습니다.
#
# 주석
Ctrl + /
# Ctrl + /
# 여
# 러
# 줄
# 주
# 석
print("Hello Py World!")
Hello Py World!
print('삼성전자', end=' : ')
print('DS', 'DX', sep='와 ')
삼성전자 : DS와 DX
default :
sep = ' '
end = '\n'
x = 3
y = 7
print('x는 {}이고, y는 {}이다'.format(x, y))
print('이름은 {name}이고, 나이는 {age}입니다'.format(name = 'Justin', age = 20))
x는 3이고, y는 7이다
이름은 Justin이고, 나이는 20입니다
print(f'x는 {x}이고, y는 {y}이다')
x는 3이고, y는 7이다
문자형/문자열 상관없이 :
'작은 따옴표'
,"큰 따옴표"
로 묶는다.
aChr ="A"
pyStr = 'Life is too short, You need Python.'
print(aChr)
print(f"Python 명언 : {pyStr}")
A
Python 명언 : Life is too short, You need Python.
if
for
while
if 조건식 :
하위코드
elif 조건식 :
하위코드
else :
하위코드
score = 130 #결측값
if score > 100:
print("결측값 입니다.")
elif score >= 90:
print("A")
elif score >= 80:
print("B")
else:
print("C")
결측값 입니다.
for 변수 in 리스트 :
하위코드
for x in [3,5,6,7]:
print(x, end=", ")
3, 5, 6, 7,
# 범위 순회
count = 0
for i in range(10):
count += 1
print(f"count = {count}")
print(f"i = {i}")
print()
# 인덱스 와 값 순회 enumerate(LIST)
fruits = ["apple", "banana", "cherry"]
for i, fr in enumerate(fruits):
print(f"Index {i}: {fr}")
print()
# 딕셔너리 순회 Dic.items()
person = {"name": "John", "age": 30, "city": "New York"}
for k, v in person.items():
print(f"{k}: {v}")
print()
# 중첩 리스트 순회
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row in matrix:
for element in row:
print(element, end ='/')
print('\n')
# 문자열 순회
myStr = "Hello, Python!"
for myChar in myStr:
print(myChar, end = '/')
count = 10
i = 9
Index 0: apple
Index 1: banana
Index 2: cherry
name: John
age: 30
city: New York
1/2/3/4/5/6/7/8/9/
H/e/l/l/o/,/ /P/y/t/h/o/n/!/
while 조건식 :
하위코드
x = 0
while x < 3 :
x += 1
print (x)
3
[ 변수 for 변수 in 리스트 if 조건식]
: 리스트 내포 순회
lsMy = [x for x in range(1,101) if x%7 == 0]
print(lsMy)
[7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98]
def 함수명(인자) :
하위코드
return 반환값
def myFunc(x):
y = x * 7
return y
print(myFunc(3))
21
List
Tuple
Dictionary
Series
DataFrame
[ a, b, c ]
- 다른 자료형 가능
- 수정 가능 (mutable)
lsFav = [3, "cloud", True]
print(lsFav)
[3, 'cloud', True]
2.1.1.1. 리스트 인덱싱
LIST[index]
LIST[이상i : 미만i]
- index 는 0부터 시작
- 끝에서 부터 -1
lsAbc = ['a', 'b', 'c', 'y', 'z']
# 0 1 2 3 4
print(lsAbc[0])
print(lsAbc[2])
print(lsAbc[-1])
print(lsAbc[-2])
# Slicing
print(lsAbc[0:2]) #이상:미만
print(lsAbc[:3]) #처음부터 3미만까지
print(lsAbc[2:]) #2이상 끝까지
a
c
z
y
['a', 'b']
['a', 'b', 'c']
['c', 'y', 'z']
2.1.1.2. 리스트 매서드
# 빈 리스트 생성 가능
lsAbc = []
print(lsAbc)
# 리스트에 항목 1개 추가.append(x)
lsAbc.append('a')
print(lsAbc)
# 리스트 이어 붙이기.extend(LIST)
lsAbc.extend(['b', 'c'])
print(lsAbc)
# 리스트 수열 만들기 range(nStart, nEnd, nGap)
lsNums = list(range(3,10,2))
print(lsNums)
# 리스트 + 연산
lsAbc += lsNums
print(lsAbc)
# 리스트 원소 인덱스로 제거.pop(i)
lsAbc.pop(-1)
print(lsAbc)
# 리스트 원소 이름으로 제거.remove(x)
lsAbc.remove(7)
print(lsAbc)
[]
['a']
['a', 'b', 'c']
[3, 5, 7, 9]
['a', 'b', 'c', 3, 5, 7, 9]
['a', 'b', 'c', 3, 5, 7]
['a', 'b', 'c', 3, 5]
( a, b, c )
- 다른 자료형 가능
- 수정 불가 (immutable)
tpRgb = ("RED", "GREEN", "BLUE")
print(tpRgb)
print(tpRgb[0])
tpRgb[0] = "PINK" #오류 발생; Type Error
('RED', 'GREEN', 'BLUE')
RED
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[19], line 4
2 print(tpRgb)
3 print(tpRgb[0])
----> 4 tpRgb[0] = "PINK"
TypeError: 'tuple' object does not support item assignment
{ key: value, key2: val2, key3: val3}
- 키는 유일, 값은 중복 가능
pd.Series( [ a, b, c ] )
- pandas lib. 제공 1차원 데이터 구조
- index 와 value 의 쌍으로 이루어져 있다.
- list 와 유사하며, 추가적인 데이터 분석 기능 제공
- DataFrame 에서의 하나의 열
- 다른 자료형 가능
pd.DataFrame( { 'colA': [valA1, valA2, valA3],
'colB': [valB1, valB2, valB3] } )
- pandas lib. 제공 2차원 데이터 구조
- Row 와 Col. 로 이루어져 있다.
- 각 Col. 은 Series 로 구성된다.
- Col. 끼리는 자료형이 달라도 된다.
- 각 Col. 내부의 자료형은 동일해야 한다.