1991년 프로그래머 '귀도 반 로섬'이 발표한 프로그래밍 언어이자, 컴파일 과정 없이 명령을 내리면 바로 동작하는 인터프리티드 언어 (혹은 스크립트 언어)이다.
파이썬은 동적 타이핑(데이터의 타입을 명시하지 않아도 컴퓨터가 스스로 분석해서 타입에 대한 처리를 하도록 하는 방식), 인터프리터 방식이며, 기본 인코딩은 UTF-8이다.
또한, 무료이면서 배우기 쉽고, 방대한 라이브러리가 있으며 어느 운영체제에서도 사용할 수 있다는 장점이 있다.
NumPy
, Pandas
등 라이브러리 제공Matplotlib
, Seaborn
라이브러리 제공Beutifulsoup4
라이브러리 제공PyQT
, Tkinter
등으로 GUI 앱 개발 가능Django
, Flask
프레임워크를 활용하여 웹 서비스 제작 가능SciPy
활용하여 과학기술 계산 및 알고리즘 활용 가능Tenserflow
, Keras
, PyTorch
활용하여 딥러닝 모델 구현 가능하지만 아직까지 파이썬보다 다른 언어를 쓰면 좋은 분야가 존재한다.
React Native
, 안드로이드 Java
, Kotlin
, iOS Swift
C
, 어셈블리어
등Javascript
, Typescript
, React.js
, Vue.js
, Node.js
Computational Thinking :
분해 ⏩ 패턴 인식 ⏩ 추상화 ⏩ 모델링
Anaconda Prompt
실행jupyter notebook --generate-config
notebook_dir
검색 후, '파일 저장 경로'
입력, 앞에 #공백
삭제jupyter lab
or jupyter notebook
실행 명령어 입력Command mode ⏩ Enter
⏩ Edit mode
Command mode ⏪ Esc
⏪ Edit mode
A
- 현재 cell 밑에 새로운 cell 추가B
- 현재 cell 위에 새로운 cell 추가D
+ D
- 현재 cell 삭제M
은 Markdown, Y
는 Code, R
은 Raw cell로 변환Ctrl
+ B
- 파일 탐색기 숨기기/보이기Shift
+ M
- 두 개의 cell을 하나의 cell로 합치기Shift
+ ⬇️
- 현재 cell에서 아래쪽 위치로 새로운 cell을 같이 선택Shift
+ ⬆️
- 현재 cell에서 위쪽 위치로 새로운 cell을 같이 선택Ctrl
+ /
- 선택한 코드 주석 처리Ctrl
+ Shift
+ -
- 현재 커서 위치를 기준으로 두 개의 셀로 구분하기Ctrl
+ D
- 한 줄 삭제Ctrl
+ Enter
- 해당 cell 실행Shift
+ Enter
- 해당 cell 실행, 아래에 새로운 cell 생성주피터 랩 vs 주피터 노트북
jupyter notebook
- 탐색기와 편집기를 동시에 보기 어렵고, 한 번에 하나의 파일만 열 수 있다.jupyter lab
- 다중의 탭으로 여러 파일을 동시에 제어할 수 있고, 탐색기도 동시에 쓸 수 있다.
Integrated development environment, 텍스트 편집기와 파이썬 개발 환경이 하나의 프로그램에서 동작
아나콘다 배포판에서는 Spyder가 포함되어 있다.
명령어 | 설명 |
---|---|
pwd | 현재 폴더 경로 출력 |
ls | 현재 폴더 내용물 출력 |
cd <폴더명> | 다른 폴더로 이동 |
cd .. | 상위 폴더로 이동 |
cp | 파일을 다른 이름으로 복사 |
rm | 파일을 삭제 |
파일이름 자동완성
은 앞 1~2글자만 입력하고 tab키를 누르면 자동 완성되는 기능
sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl
입력 > subl file_name
으로 실행모든 변수와 함수 이름은 소문자로 쓰고, 여러 단어일 경우 _
로 나눠주세요.
모든 상수 이름은 대문자로 쓰고, 여러 단어일 경우 _
로 나눠주세요.
의미 있는 이름을 사용해주세요.
들여쓰기는 무조건 스페이스 4개를 사용하세요.
함수 정의 위아래로 빈 줄이 두 개씩 있어야 합니다. 하지만 파일의 첫 줄이 함수 정의인 경우 해당 함수 위에는 빈 줄이 없어도 됩니다.
괄호 바로 안에는 띄어쓰기를 하지 마세요.
함수를 정의하거나 호출할 때, 함수 이름과 괄호 사이에 띄어쓰기를 하지 마세요.
쉼표 앞에는 띄어쓰기를 하지 마세요.
지정 연산자 =
앞뒤로 띄어쓰기를 하나씩 넣어 주세요.
기본적으로는 연산자 앞뒤로 띄어쓰기를 하나씩 합니다.
하지만 연산의 '우선 순위'를 강조하기 위해서는, 연산자 앞뒤로 띄어쓰기를 붙이는 것을 권장합니다.
일반 코드와 같은 줄에 코멘트를 쓸 경우, 코멘트 앞에 띄어쓰기 최소 두 개를 입력해 주세요.
사칙연산 | 표시 | 결과값 |
---|---|---|
덧셈 | + | 정수 (int) |
뺄셈 | - | 정수 |
곱셈 | * | 정수 |
나눗셈 | / | 실수 (float) |
몫 | // | 정수 |
나머지 | % | 정수 |
거듭제곱 | ** | 정수 |
제곱근 | **(1/2) | 실수 |
표기법 | 표시 | 설명 |
---|---|---|
지수 표기법 e | e10 = 10의 10승 e-3 = 10의 -3승 | |
2진법 | 0b(2진수) <-> bin(숫자) | |
8진법 | 0o(8진수) <-> oct(숫자) | |
16진법 | 0x(16진수) <-> hex(숫자) | 10부터는 차례대로 a~로 표기 |
# base 진법으로 표기된 숫자를 10진법 숫자로 출력하기
num, base = map(int, input().strip().split(' '))
num = str(num)
num2 = 0
for i in range(len(num)) :
num2 += int(num[i]) * (base**(len(num)-(i+1)))
print(num2)
print(int(str(num),base))
비교 연산자 | 의미 | 활용 예 | 활용 |
---|---|---|---|
== | 같다 | a == b | a는 b와 같다. |
!= | 같지 않다 | a != b | a는 b와 같지 않다. |
< | 작다 | a < b | a는 b보다 작다. |
> | 크다 | a > b | a는 b보다 크다. |
<= | 작거나 같다 | a <= b | a는 b보다 작거나 같다. |
>= | 크거나 같다 | a >= b | a는 b보다 크거나 같다. |
논리 연산자 | 의미 | 활용 예 | 활용 |
---|---|---|---|
and | 논리곱 | a and b | a와 b 모두 참일 때만 True, 나머지 False |
or | 논리합 | a or b | a와 b 중 하나라도 참이면 True, 둘 다 거짓이면 False |
not | 논리부정 | not a | a가 참이면 False, 거짓이면 True |
true
false
true
false
비트 연산자 이용한 짝수/홀수 구하기
짝수
= 0
, 홀수
= 1
짝수 & 짝수
= 0 & 0
= 0
짝수 & 홀수
= 0 & 1
= 0
홀수 & 짝수
= 1 & 0
= 0
홀수 & 홀수
= 1 & 1
= 1
짝수 or 홀수
= 0 or 1
= 1
홀수 or 짝수
= 1 or 0
= 1
if a%2 and b%2 :
a와 b가 모두 홀수라면 실행 (홀수 % 2 = 1)
elif a%2 or b%2 :
a나 b가 각각 홀수와 짝수라면 실행
else :
a와 b가 모두 짝수라면 실행 (짝수 % 2 = 0)
bool 값과 논리연산
True일 때
or
False일 때
or
연산자는 앞의 값이 True
면 앞의 값을 실행하고, 앞의 값이 False
이면 뒤의 값을 실행한다.
not(계산 값)
계산 값
이 0
이면 False
, 0 이외의 숫자
면 True
를 반환한다.
단락 평가
value = input("입력하기") or "아무것도 입력하지 않을 때"
print(value)
# input에 아무것도 입력하지 않은 경우,
# input("입력하기")가 공백으로 False가 되므로 or 뒷 문장 실행
# input에 무언가 입력한 경우,
# input("입력하기")가 True가 되므로 input에 넣은 값 실행