경기도 인공지능 개발 과정/Python

Python 주피터 노트북 사용법

agingcurve 2022. 5. 28. 14:36
반응형

1. 주피터 노트북 단축기

- ctrl + enter  실행
- shift + enter 실행후 아래 셀 선택, 아래쪽에 셀이 없다면 셀 추가
- alt + enter   실행 후 아래쪽에 새로운 셀 추가 
- a 위쪽에 셀추가
- b 아래쪽에 셀추가 
- dd 셀 삭제 
- enter 명령모드에서 입력모드로 전환
- Esc  입력모드에서 명령모드로 전환 
- m 명령모드에서 셀타입을 마크다운으로 저장
- y 명령모드에서 셀 타입을 코드로 전환 
- ctrl + /  셀 편집영역에서 선택된 코드의 주석/ 비주석 처리 
In [8]:
# print는 출력하는 함수입니다. 
print('a')
a

2. 마크다운 사용하기

## 제목

# 큰제목
## 작은제목
### 다음작은제목

제목

큰제목

작은제목

다음작은제목

목록

1. 순서가 있는 목록 1
1. 순서가 있는 목록 2
1. 순서가 있는 목록 3
    1. 서브목록1
    1. 서브목록2
        1. 다음
        1. 다음2
  1. 순서가 있는 목록 1
  2. 순서가 있는 목록 2
  3. 순서가 있는 목록 3
    1. 서브목록1
    2. 서브목록2
      1. 다음
      2. 다음2
- 순서가 없는 목록1
- 순서가 없는 목록2
    - 서브목록 1
    - 서브목록 2

 

  • 순서가 없는 목록1
  • 순서가 없는 목록2
    • 서브목록 1
    • 서브목록 2

링크

[구글](https://www.google.co.kr/)

[구글](https://www.google.co.kr/ "구글 페이지 입니다.")

구글 : https://www.google.co.kr/

[구글2][1]


[1]:https://www.google.com "구글로 이동"

구글

구글

구글 : https://www.google.co.kr/

구글2

이미지

코드강조

인라인 코드 강조

`코드 강조` 하고 싶은 부분에 쓰세요.

코드 강조 하고 싶은 부분에 쓰세요.

** 강조 문자 ** 입니다. 

__ 강조__ 할 수 있어요.

<u>밑줄</u> 을 표시해요.

~~취소선~~ 이예요.

강조 문자 입니다.

강조 할 수 있어요.

밑줄 을 표시해요.

취소선 이예요.

블록 코드강조

<h1>하하하</h1>
a = 10
print(a)

a = 10 print(a)

  • 헤더 셀을 구분할 때 3개 이상의 -(hyphen/dash) 기호가 필요합니다.
  • 헤더 셀을 구분하면서 :(Colons) 기호로 셀(열/칸) 안에 내용을 정렬할 수 있습니다.
  • 가장 좌측과 가장 우측에 있는 |(vertical bar) 기호는 생략 가능합니다.
이름전화번호주소
강경미 010-111-1111 경기도 고양시
홍길동 010-111-2222 경기도 안양시
둘리 010-111-3333 경기도 용인시

인용문

인용문을 쓸 수 있어요.

인용문

중첩인용

또 중첩
또 중첩2

Left-alignedCenter-alignedRight-aligned
git status git status git status
git diff git diff git diff

인용문

인용문을 쓸 수 있어요.

인용문

중첩인용

또 중첩
또 중첩2

수평선

각 기호를 3개 이상 입력



In [11]:
import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

파이썬 코딩 컨벤션

  • 명확한 규칙은 없음
  • 때로는 팀마다, 프로젝트마다 따로
  • 중요한 건 일관성!!!
  • 읽기 좋은 코드가 좋은 코드

예시

  • 들여쓰기 Tab 또는 4 Space!!
  • 일반적으로 4 Space를 권장함
  • 중요한 건 혼합하지 않으면 됨!!

PEP8 - 파이썬 코딩 컨벤션의 기준

  • PEP(Python Enhance Proposal)
  • 파이썬 개선을 위한 제안서
  • PEP 8은 파이썬 코딩의 기준을 제시
    • 들여쓰기 공백 4칸을 권장
    • 한 줄은 최대 79자까지
    • 불필요한 공백은 피함 ex) def func( n ) - n 앞 뒤 공백같은것!!
    • = 연산자는 1칸 이상 안 띄움 ex) a = 1 (0) a = 1 (x)
    • 주석은 항상 갱신, 불필요한 주석은 삭제
    • 소문자 l, 대문자 O, 대문자 I 금지!!
    • 함수명은 소문자로 구성, 필요하면 밑줄로 나눔
    • "flake8" 모듈로 체크 - flake8 <파일명>
    • conda install -c anaconda flake8

함수 작성 가이드 라인

  • 함수는 가능하면 짧게 작성할 것
  • 함수 이름에 함수의 역할, 의도가 명확히 들어낼 것
  • 하나의 함수에는 유사한 역할을 하는 코드만 포함
  • 인자로 받은 값 자체를 바꾸진 말 것 (임시변수 선언해서 사용)
    • 공통적으로 사용되는 코드는 함수로 변환
    • 복잡한 수식 -> 식별 가능한 이름의 함수로 변환
    • 복잡한 조건 -> 식별 가능한 이름의 함수로 변환
  • ## 함수는 언제 만드는가?
In [4]:
print('a')
a
In [12]:
import keyword as k
print(k.kwlist)
['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
In [16]:
k??
In [17]:
dir(k)
Out[17]:
['__all__',
 '__builtins__',
 '__cached__',
 '__doc__',
 '__file__',
 '__loader__',
 '__name__',
 '__package__',
 '__spec__',
 'iskeyword',
 'issoftkeyword',
 'kwlist',
 'softkwlist']
In [18]:
dir(list)
Out[18]:
['__add__',
 '__class__',
 '__class_getitem__',
 '__contains__',
 '__delattr__',
 '__delitem__',
 '__dir__',
 '__doc__',
 '__eq__',
 '__format__',
 '__ge__',
 '__getattribute__',
 '__getitem__',
 '__gt__',
 '__hash__',
 '__iadd__',
 '__imul__',
 '__init__',
 '__init_subclass__',
 '__iter__',
 '__le__',
 '__len__',
 '__lt__',
 '__mul__',
 '__ne__',
 '__new__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__reversed__',
 '__rmul__',
 '__setattr__',
 '__setitem__',
 '__sizeof__',
 '__str__',
 '__subclasshook__',
 'append',
 'clear',
 'copy',
 'count',
 'extend',
 'index',
 'insert',
 'pop',
 'remove',
 'reverse',
 'sort']