VSCode : 마이크로소프트의 무료 코드 편집기, 확장성, 다양한 언어 지원, 통합 터미널
https://code.visualstudio.com
Pycharm : JetBrain의 Python 전용 IDE 커뮤니티 에디션 무료 사용, 강력한 디버깅 도구, 자동화된 코드 분석, 통합된 테스트 도구
https://www.jetbrains.com/pycharm/
Jupyter Notebook :데이터 과학, 머신러닝,
-인터렉티브 환경(코드, 설명, 시각화), 셀 기반 실행(셀단위 코드실행, 결과 확인), Markdown(코드와 설명 작성) 지원
https://www.anaconda.com/download
Jupyther Notebook 코드와 결과를 직관적으로 보여주기 때문에 학습에 적합함
결과 확인 - shift+enter
변수의 이름만 입력하면 출력

a = 10
a % 3 # a를 3으로 나눈 후 나머지
# 1
a %=b = a를 b로 나누고 나머지를 a에 할당
a //= b = a를 b로 나누고 몫을 a에 할당
a = 5 # 이진수로 101
b = 3 # 이진수로 011
print(a & b) # 1 (이진수 001) # and
print(a | b) # 7 (이진수 111) # or
print(a ^ b) # 6 (이진수 110) # xor
# xor - 베타적 논리합: 둘 중 한 개만 참인 경우 판단
print(~a) # -6 (이진수 보수) # not
a=5 # 이진수 0101
~a # not 연산
# 0101 반전 1010 으로 데이터에 저장
# 결과를 출력할 때는 역산으로 출력
# 2의 보수 역산 : -1 후에 비트 반전
# 음수 010 에서 -1 = 음수 001
# 비트 반전 음수 110 = -6
# 공식은 -(x+1)