컴퓨터 이해할 수 있는 명령어의 모음인 프로그램을 만드는 과정에서 CPU에 의해 모든 작동이 이루어지는 컴퓨터는 기계어가 있는데 이것을 쉽게 작성한 것(우리의 언어의 형식을 따른 것), 작성한 프로그래밍 언어는, 컴파일러나 인터프리터로 번역된다.
소프트웨어 개발 과정
요구 사항 분석
설계
구현(프로그래밍)
테스트
유지보수
인터프리터 언어의 하나로서, 간결하면서 효율적인 프로그래밍이 가능하다. 스크립트 언어이기 때문에 작성한 코드를 라인별로 실행해서 즉시 결과를 확인할 수 있다. 데이터 분석에서 유리하게 쓰인다.
머신러닝과/딥러닝, 데이터 사이언스에서 많이 활용된다.
간결해서 배우기 쉽고 가독성이 뛰어나며, 스크립트라는 언어가 직관적으로 결가를 확인하기 쉽다.
외부 라이브러리를 쉽게 설치하여 활용할 수 있고 데이터 분석 관련 라이브러리가 많다.
간단한 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍도 모두 지원한다.
숫자, 수식, 문자열 : 표현식
표현식이 모여 하나의 문장이 됌
키워드란? 파이썬이라는 프로그래밍 언어가 만들어질 때, 파이썬 자체적으로 이 단어를 사용하겠다고 예약 해놓은 단어들
키워드 지정 단어는 변수명 같이 나중에 사용자가 마음대로 정할 수 없음
변수명 같이 사용자가 필요에 따라 만들어 사용하는 단어는
식별자(identifier)라고 함
파이썬의 주석 # -> 행단위 " " ", ' ' ' 블록단위
파이썬의 큰 특징으로는 중괄호로 영역을 지정하는 자바와 C의 기능이 없다.
-> 들여쓰기가 매우 중요하다. 문법적인 강제 사항, Tab키로
파이썬의 또 다른 큰 특징 : 문장이 끝날 때 세미클론을 붙이지 않는데
줄이 바뀌면 자동으로 문장이 종료되었다고 인식하기 때문이다. 만약 1줄의 내용이 길면 (백슬래쉬)나 괄호를 붙어서 여러 줄로 하나로 묶을 수 있다
--> 행결합
구문 오류(syntax error)
프로그램이 실행되지 않고 발생하는 오류
구문 잘못 쓴 경우
예외 오류(exception error), 런타임 오류(runtime error)
프로그램 실행중에 발생하는 오류
그외에
ValueError
IndexError
SyntaxError
NameError
ZeroDivisionError
FileNotFoundError
TypeError
AttributeErrror
KeyError
OveFlowError
파이썬은 코드를 작성할 때 자료형(Ex) int, char) 등을 지정하지 않아도 된다. 파이썬 내부에서 자료형을 정해준다.
print(type(3))
print(type(3.14))
print(type('3')
결과 : <class 'int'>, <class 'float'>, <class 'str'>
이렇게 런타임 시에 자료형이 결정되어 type()함수를 통해서 확인도 할 수 있다. 실행시켜 보기 전에 오류 검출이 어렵지만, 유연하고 빠른 코딩이 가능하다.
변수와 상수
변수는 일시적으로 데이터를 저장하는 공간이자 프로그램 내부에서의 객체이며,
상수는 프로그램 실행 시작부터 끝날 때까지 변하지 않는 값이다.
a = 'hello'
# a = 변수, 'hello' = 상수
# 이때 변수에 직접 고정된 값을 부여하는 것을 리터럴(literal)이라고 한다.
파이썬은 리터럴 값으로 자료형이 결정된다.
숫자형은 숫자 형태로만 이루어진 자료형을 말한다.
10진수, 2진수, 8진수, 16진수가 있다.
e^2 10^2
0b -> 2진수
0o -> 8진수
0x -> 16진수
숫자형끼리는 변환이 가능하다.
숫자형과 문자형도 형변환이 가능하다.

몫과 나누기가 c++, JAVA와 살짝 다르다.
숫자형들끼리만 산술 연산자가 가능하고 수학을 생각하면 된다.
관계 연산자

기존의 관계 연산자와 똑같으니 생략하겠다.
복합대입연산자
연산과 할당을 합친것

한 번씩 읽어보자
연산자의 우선 순위
1. 일반적인 수학이 우선순위와 똑같다.
파이썬은 () 소괄호만 쓸 수 있으므로 이 점에 유의하면서 작성하면 된다.
그 후 제곱이 두번째, 나머지는 곱 나누기 나머지 몫이다. 즉 곱하기 나눗셈이다.
다음이 덧셈 뺄셈이고
다음이 관계 연산자이고 맨 마지막을 할당 연산자인걸 기억하자
문자열 : 문자와 단어 등으로 구성된 문자들의 집합을 의미한다.
Python은 유니 코드 문자를 나타내는 바이트 배열을 문자열이라 한다.
단일 문자도 문자열이고 길이가 1이다. -> 기존 코드와 다른 점
문자열은 작은 따음표나 큰 따음표로 묶는다.
-> 큰 따음표 한 개, 작은 따음표 한 개, 따음표 세 개씩 연달아 입력하는 방법도 있다.
문자열에 숫자형과 비슷하게 +, *를 해서 문자열의 길이를 늘릴 수 있고 반복할 수 있다.
복합 대입 연산도 가능하다.
문자열 내부적으로는 하나의 단어가 하나의 인덱스로 매핑 된다.
인덱스는 문자열 길이 - 1
문자열의 인덱스는 대괄호[]와 함께 접근이 가능하다.
인덱스 접근은 음수도 가능하다
예를 들어
a[0] 문자열 길이는 5, 가 a면
a[-5] = a
5 - 5 = 0이다. 이렇게 생각하자
0부터 시작하는 인덱스와 달리 -1부터 시작한다.
문자열 선택 연산자
파이썬의 유용한 기능으로서 굉장히 유용하게 사용할 수 있는 기능이다.
이렇게 부분 문자열을 추출하는 방법을 슬라이싱이라 하며
[:] 이렇게 쓴다.
a[1:4] : [부분 시작 문자의 인덱스 : 부분 끝 문자의 인덱스 +1]
대괄호 안에 숫자 중 하나를 생략하여 사용할 수 있음
[1:][:3]
[1:가장 마지막 글자 인덱스 +1][0:가장 마지막 글자의 인덱스인 2 + 1]
Ex)
a = "안녕하세요"
print(a[1:])
print(a[:3])
#출력 결과 녕하세요
#출력 결과 안녕하
음수를 사용해서 슬랑이싱도 가능
슬라이싱에 숫자를 주지 안흥면 전체 문자열을 슬라이싱 한다.
문자열의 길이 -> len() 함수
문자열의 인덱스 범위를 넘어서 선택하면 IndexError 발생