파이썬
파이썬의 탄생
Section titled “파이썬의 탄생”히도 판 로쉼 1991년 개발
- 분산 운영체제(아메바)의 시스템 관리를 위한 쉘 스크립팅 언어로 개발
- 파일 관리, 프로그램 실행, 반복 작업 자동화 등 다양한 기능을 수행하는 명령어의 집합
파이썬의 기본 철학
Section titled “파이썬의 기본 철학”- 프로그래밍 패어다임, 문법에 따라 다양한 표현 가능
- 다중 프로그래밍 패러다임 채용
- 다목적 활용
파이썬의 특징
Section titled “파이썬의 특징”독립적, 인간적, 직관적, 개방성, 신속성
- 독립적
- Write Once, Run Anywhere : 하드웨어나 시스템 구조에 비의존적, Windows, macOS, Linux등 운영체제에 관계없이 동일한 코드 실행이 가능, 인터프리터가 각 OS에 맞게 코드 해석
- 표준 라이브러리 & 가상환경 지원 : 다양한 플랫폼에서 동일 기능 수행, 가상환경으로 패키지 충돌 없이 실행, 개발 환경을 손쉽게 복제 이식 가능
- 시스템 의존성보다 논리적 문제 해결에 집중
- 인간적 & 직관적
- 인간 중심의 철학 : 명확함과 가독성을 가장 중요시, 초보자에게 친숙하고 전문가에게도 강력한 언어
- 실행할 수 있는 의사코드(executable pseudocode) 수준의 문법 : 영어 문장처럼 읽히는 코드 구조, 불필요한 기호 없이 의미 중심의 구문 설계
- 신속성
- 간결하지만 강력한 표현력 : 한 줄로 복잡한 연산처리, 함수형 객체지향형 절차형 프로그래밍 패러다임 지원
- 풍부한 표준 라이브러리 : 외부 설치 없이 다양한 작업 수행 가능. 문자열, 파일, 네트워크, 데이터 분석 등 기본 모듈 내장
- 개방성
- 많은 개발자의 의견을 수용하고 토론하며 발전하는 언어 : 오픈소스 생태계를 통한 공유 재사용 확장성 강화. 풍부한 커뮤니티 자료로 문제 해결 속도 향상
- 파이썬을 관련 개선을 위한 제한(PEP) : 새로운 파이썬을 기능, 파이썬 프로세스, 환경에 대해 커뮤니티에 설계 문서나 정보 제공, 기술적 사양과 기능을 위한 근거 제공, 커뮤니티 의견 수집, 합의 도축, 반대의견 청취, PEP 8(스타일 가이드) 대표적
파이썬의 단점
Section titled “파이썬의 단점”- C나 자바 등으로 작성된 프로그램보다 느린 실행 속도
- 인터프리터 언어로, 코드를 한 줄씩 해석하며 실행
- 대규모 계산, 실시간 처리가 필요한 분야에서는 비효율적
- 완전한 애플리케이션 단독 개발이 불가능
- 쉘 스크립트 언어 용으로 개발
- 모바일 앱 등 응용 애플리케이션 개발 불가능
파이썬 프로그램 개발
Section titled “파이썬 프로그램 개발”플랫폼 독립적이며 인터프리식 객체지향적, 동적 타이핑 대화영 언어
- 윈도우, 리눅스, 유닉스, 맥OS 등 다양한 운영체제에서 별도의 컴파일 없이 실행 가능
- CPython, PyPy, Cython, Jython 등 다양한 인터프리터 환경 사용 가능
- 프로그램을 객체로 모델링
- 변수의 자료형을 지정하지 않음
- 작성한 코드에 대한 수행 결과를 바로 확인하고 디버깅하면서 코드 작성 가능
CPython
Section titled “CPython”C 언어로 개발된 파이썬 인터프리터 및 런타임
-
파이썬 언어의 표준 구현체(Reference Implementation)
- 라이브러리/패키지 호환성이 최고
- C 구현 라이브러리와의 연동을 통한 확장에 최적
- 수치 계산/머신러닝 등 고성능 라이브러리 사용 가능
-
오픈소스로 커뮤니티의 기여로 지속적 발전 https://github.com/python/cpython
-
CPython의 한계
- 멀티코어 CPU를 100% 활용이 어려움
- 실행 속도가 C, Go 같은 정적 언어보다 느림
파이썬 프로그램 실행 과정
Section titled “파이썬 프로그램 실행 과정”- 파이썬 애플리케이션은 소스코드 형태로 배포
- Cpython이 컴파일 후 바이트코드 .pyc 파일 생성
- 파이썬 가상머신은 바이트코드를 한 라인 씩 실행
- 변경 없이 재실행 시 바이트코드로 빠르게 실행
데이터 타입과 변수
Section titled “데이터 타입과 변수”값의 설징과 연산 방식을 정의
- 숫자 데이터 타입
- 정수(integer) : 소수점이 없는 숫자
- 실수(floating point) : 소수점이 포함되는 숫자
- 문자 데이터 타입
- 유니코드 기반의 문자열(string)
- 인용 부포 “또는 ’ 를 사용하여 표현
데이터(값), 연산자 등이 결합되어 하나의 결과값을 만들어내는 코드 조각
- 연산자: 값(피연산자, operand)에 대해 특정한 연산을 수행하는 기호 또는 키워드
- 값을 만들어내는 코드로서 하나의 독립된 실행 단위 또는 명령문의 일부로 사용
- 연산자를 이용한 표현식은 파이썬 인터프리터에 의해 자동 계산
처리할 데이터와 처리된 결과를 임시적 저장하는 역할, 변수의 값을 변경하는 할당연산자(=)를 이용, 명령형 패러다임 언어의 특징
메모리 내에 지정된 공간에 값을 저장하는 행위
- 프로그램이 실행되는 과정에서 처리되는 값이 어떤 행위(입력, 연산)에 따라 지정된 공간에 저장
- 구성요소: 식별자, 저장 공간, 값
프로그램 내부에 정의된 변수, 함수, 클래스, 객체 등을 식별(identify) 하기 위한 명칭
- 문자, 숫자, 언더스코어(_)로 수정
- 문자 또는 언더스코어로만 시작 가능
- 예약어(reserved word)와 동일할 수 없음
- 길이 제한이 없음
피연산자(operand)에 대해 지정된 연산을 지시하는 기호 단항 연산자(unary operator) : 피연산자가 1개 / 이항 연산자(binary operator) : 피연산자가 2개
산술 연산자
Section titled “산술 연산자”숫자(int, float등)에 대해 수학적 계산(덧셈, 뺼셈, 곱셈, 나눗셈)을 수행하는 기호
특수 산술 연산자 : 프로그래밍 언어에서만 특수하게 사용되는 연산자
- 거듭제곱: **
- 정수 나눗셈(몫): //
- 모듈로(나머지) : %
연산자 우선순위
- 괄호 내부의 수식
- 거듭제곱(**)연산자
- 곱셈, 실수 나눗셈, 정수 나눗셈, 모듈로 연산자(왼쪽에서 오른쪽 순서로 적용)
- 덧셈, 뺄셈 연산자(왼쪽에서 오른쪽 순서로 진행)
- 할당 연산자
파이썬 기초문법 상식
Section titled “파이썬 기초문법 상식”파이썬 내장 함수
Section titled “파이썬 내장 함수”인터프리터에 기본적으로 포함되어 있는 함수
별도의 모듈이나 패키지 없이 곧바로 사용 가능
입출력, 데이터 타입 변환, 수학 연산, 시퀀스 처리, 논리판단, 함수 연산 등 다양한 함수 내장
파이썬은 들여쓰기에 의존적 언어
- 타 프로그래밍 언어에서는 가독성 향상 목적
- 파이썬에서는 코드의 논리적 집합인 블록을 표현
- 들여쓰기는 스페이스 4칸 권장(PEP8)
- 블록 중첩 시 추가적인 4칸 들여쓰기 삽입
프로그램의 구조, 동작 원리, 사용 방법 등을 글로 정리해 기록하는 과정
- 가독성 증대로 개발 속도, 완전성 향상, 유지보수 용이
- 대표적 문서화 방법
- 주석(comment): 프로그램의 실행에는 영향을 주지 않지만, 코드의 의미를 설명하기 위해 작성하는 코드의 한 요소
파이썬에서 주석의 종류
- 단일행 주석 : #
- 다중행 주석: ""또는 ''' 개 연달아 사용(colab불가)