Python

[Python] 01. 파이썬 개념 , 프로그램 설치

변쌤(이젠강남) 2024. 9. 28. 11:20
반응형

파이썬 개념 , 프로그램 설치 

 

# 파이썬이란

 

ython(파이썬)은 1991년 네덜란드의 프로그래머 귀도 반 로섬(Guido van Rossum)이 개발한 고수준(high-level) 프로그래밍 언어입니다. Python은 간결하고 읽기 쉬운 문법을 통해 초보자부터 숙련된 개발자까지 누구나 쉽게 사용할 수 있는 언어로 설계되었습니다. 다음은 Python의 주요 특징과 장점입니다.

 

1. 인터프리터 언어

Python은 인터프리터 언어로, 컴파일 없이 코드를 한 줄씩 실행합니다. 즉, 코드를 작성하고 바로 실행하여 결과를 확인할 수 있어 빠른 피드백 루프를 제공합니다.

 

2. 간결하고 가독성이 높은 문법

Python은 다른 언어에 비해 문법이 간결하며, 코드가 읽기 쉽고 직관적입니다. 코드의 블록 구분을 중괄호 {} 대신 들여쓰기로 표현하는 것이 Python의 특징 중 하나입니다. 이를 통해 코드 가독성이 높아지고, 유지 보수와 협업에 유리합니다.

 

3. 다목적 언어

Python은 다양한 용도로 사용할 수 있는 범용 프로그래밍 언어입니다. 웹 개발, 데이터 분석, 인공지능, 머신러닝, 자동화 스크립트, 네트워크 프로그래밍 등 다양한 분야에서 널리 사용됩니다. 다양한 라이브러리와 프레임워크가 이를 지원합니다.

  • Django, Flask: 웹 개발을 위한 프레임워크
  • NumPy, Pandas: 데이터 분석을 위한 라이브러리
  • TensorFlow, PyTorch: 인공지능 및 머신러닝 프레임워크

 

4. 광범위한 표준 라이브러리

Python은 기본으로 제공되는 표준 라이브러리가 매우 강력합니다. 파일 입출력, 네트워크 통신, 웹 프로그래밍, 데이터베이스 처리 등 대부분의 작업을 라이브러리에서 지원하며, 추가로 수많은 서드파티 라이브러리들이 있습니다.

 

5. 크로스 플랫폼 지원

Python은 운영체제에 관계없이 실행될 수 있습니다. Windows, macOS, Linux 등 다양한 플랫폼에서 동일한 Python 코드를 실행할 수 있어 플랫폼 간 호환성이 뛰어납니다.

 

6. 풍부한 커뮤니티와 지원

Python은 세계적으로 매우 인기 있는 언어로, 대규모 커뮤니티가 형성되어 있습니다. 이를 통해 다양한 문제에 대한 해결책을 쉽게 찾을 수 있고, 강력한 문서화와 튜토리얼, 오픈소스 프로젝트들이 존재합니다.

 

7. 확장 가능성 및 유연성

Python은 다른 언어(C, C++, Java 등)로 작성된 코드와도 쉽게 통합할 수 있어 확장성이 높습니다. 또한 필요에 따라 Python을 사용하는 프로젝트에서 특정 작업에 대해 다른 프로그래밍 언어를 사용할 수 있습니다.

 

8. 동적 타이핑

Python은 동적 타이핑(dynamic typing) 언어로, 변수의 데이터 타입을 미리 지정하지 않아도 됩니다. 이는 코딩을 더 유연하게 만들지만, 대규모 프로젝트에서는 타입 안전성 확보를 위해 타입 힌트를 사용할 수 있습니다.

Python의 용도 예시

  • 웹 개발: Django, Flask와 같은 웹 프레임워크를 통해 웹 애플리케이션을 개발.
  • 데이터 과학 및 분석: Pandas, NumPy, Matplotlib, SciPy 같은 라이브러리로 데이터를 분석하고 시각화.
  • 머신러닝/딥러닝: TensorFlow, PyTorch 등으로 인공지능 및 머신러닝 알고리즘을 구현.
  • 자동화 스크립트: 반복적인 작업을 자동화하는 데 유용한 도구로 사용.
  • 네트워크 및 시스템 관리: 시스템 관리 작업을 자동화하고 네트워크 프로그래밍을 지원.

 

 

내장 자료형 

 

내장 자료형(built-in data types)은 변수나 상수를 저장하는 기본적인 데이터 구조입니다. Python은 여러 가지 기본 자료형을 제공하며, 각 자료형은 특정한 형태의 데이터를 표현하고 처리하는데 사용됩니다. 내장 자료형은 크게 숫자형, 시퀀스형, 집합형, 매핑형으로 나뉩니다.

1. 숫자형 (Numeric Types)

Python은 세 가지 기본적인 숫자형을 지원합니다:

  • 정수형 (int): 소수점이 없는 정수를 나타냅니다.
    • 예: x = 10, y = -5
  • 실수형 (float): 소수점이 있는 실수를 나타냅니다.
    • 예: x = 10.5, y = -3.14
  • 복소수형 (complex): 실수부와 허수부로 이루어진 복소수를 나타냅니다.
    • 예: x = 1+2j, y = 3-4j

2. 시퀀스형 (Sequence Types)

시퀀스형 자료형은 여러 값을 순서대로 저장하는 데이터 구조입니다.

  • 문자열 (str): 문자의 집합으로, 텍스트 데이터를 표현합니다. 문자열은 불변(immutable)합니다.
    • 예: s = "hello world"
  • 리스트 (list): 여러 값을 순서대로 저장하는 배열 형태의 자료형으로, 값이 변경 가능합니다.
    • 예: lst = [1, 2, 3, "apple", True]
  • 튜플 (tuple): 리스트와 유사하지만, 값이 변경 불가능한(immutable) 시퀀스입니다.
    • 예: t = (1, 2, 3, "apple", True)
  • 레인지 (range): 숫자의 연속된 범위를 나타냅니다.
    • 예: r = range(0, 10) (0부터 9까지)

3. 집합형 (Set Types)

집합형은 고유한 값들의 모음이며, 중복을 허용하지 않습니다.

  • 집합 (set): 중복되지 않은 값들의 집합으로, 순서가 없습니다.
    • 예: s = {1, 2, 3, "apple"}
  • 프로즌셋 (frozenset): 불변 집합으로, 값을 수정할 수 없습니다.
    • 예: fs = frozenset([1, 2, 3])

4. 매핑형 (Mapping Types)

매핑형은 키-값 쌍을 저장하는 자료형입니다.

  • 딕셔너리 (dict): 키와 값의 쌍으로 이루어진 데이터 구조입니다. 키는 고유하며, 이를 이용해 값에 접근할 수 있습니다.
    • 예: d = {"name": "Alice", "age": 25}

5. 불리언형 (Boolean Type)

불리언형은 논리값인 True 또는 False를 표현합니다. 이는 조건문에서 자주 사용됩니다.

  • 예: a = True, b = False

6. None형

None은 값이 없음을 나타내는 특별한 자료형입니다. 보통 변수가 아무 값도 가지지 않을 때 사용됩니다.

  • 예: x = None

7. 바이너리 자료형 (Binary Types)

바이너리 데이터(이진 데이터)를 저장하기 위한 자료형입니다.

  • 바이트 (bytes): 불변(immutable) 이진 데이터 배열.
    • 예: b = b"hello"
  • 바이트 배열 (bytearray): 가변(mutable) 이진 데이터 배열.
    • 예: ba = bytearray(b"hello")
  • 메모리뷰 (memoryview): 다른 이진 객체의 데이터를 메모리 상에서 효율적으로 조작할 수 있게 해줍니다.
    • 예: mv = memoryview(bytes(5))

각 자료형의 특징 요약

  • 변경 가능성: list, set, dict, bytearray는 가변(mutable) 자료형이고, tuple, frozenset, str, bytes는 불변(immutable) 자료형입니다.
  • 순서가 있는 자료형: str, list, tuple, range는 순서를 유지하며, 인덱스로 접근이 가능합니다.
  • 순서가 없는 자료형: set, frozenset, dict는 순서를 유지하지 않습니다.

 

 

# Miniconda 설치

 

Miniconda는 PythonConda 패키지 관리자만 설치되어, 이후 필요한 라이브러리나 툴을 선택적으로 설치할 수 있는 형태입니다. 이는 Anaconda보다 훨씬 작은 용량과 더 빠른 설치 시간을 제공합니다.

Miniconda는 특히 가벼운 환경에서 필요한 패키지들만 설치하여 사용하고자 하는 사용자들에게 유리하며, 모든 패키지를 한 번에 설치하지 않고 자신이 필요한 패키지만 설치하는 방식이기 때문에 더 유연한 환경을 제공합니다.

Miniconda의 특징

  1. Python과 Conda 패키지 관리자 포함
    • Miniconda는 필수적인 Python 인터프리터와 Conda 패키지 관리 도구만 포함되어 있어 가벼운 설치가 가능합니다. 이후 사용자는 필요한 라이브러리나 툴을 Conda 명령을 통해 개별적으로 설치하게 됩니다.
  2. 가상 환경 관리
    • Anaconda와 마찬가지로 Miniconda도 가상 환경 관리를 지원합니다. Conda를 사용하여 프로젝트별로 별도의 Python 버전이나 패키지를 설치하고 독립적인 환경을 구성할 수 있습니다.
  3. 필요한 패키지 선택적 설치
    • Miniconda를 사용하면, 처음부터 Anaconda의 대규모 패키지 설치를 피할 수 있고, 필요한 패키지들을 명령어로 선택적으로 설치할 수 있습니다. 예를 들어, pandas, numpy, matplotlib 등 특정 라이브러리만 설치할 수 있습니다.
  4. 가벼운 설치
    • Miniconda는 매우 가볍고 용량이 작습니다. Anaconda는 설치 파일이 약 500MB 이상이고 설치 후 수 GB를 차지하는 반면, Miniconda는 설치 파일이 약 50MB 정도이며 설치 후에도 훨씬 적은 용량을 차지합니다.
  5. 유연한 환경 설정
    • Miniconda는 다양한 운영체제에서 동작하며, 각 프로젝트마다 별도의 환경을 구성하여 패키지 버전 충돌을 방지할 수 있습니다. Conda를 통해 Python 버전뿐만 아니라 다양한 데이터 과학 패키지, 개발 도구를 설치하고 관리할 수 있습니다.

 

 

 

프로그램 설치

# Miniconda

 

설치바로가기

 

 

 

 

2.

 

 

 

3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# 한글 이름 경로시 설치 오류 

 

c드라이브에 miniconda3를 만든후 

 

경로를 

c:\miniconda3로 설정하면 해결 됩니다.

 

 

 

# JupyterLab

 

JupyterLabJupyter Notebook의 차세대 인터페이스로, 데이터 과학자, 연구자, 개발자 등이 데이터를 분석하고, 모델을 실험하고, 코드를 작성하는데 유용한 통합 환경을 제공합니다. JupyterLab은 기존의 Jupyter Notebook과 비슷하지만, 다음과 같은 추가적인 기능과 확장성을 제공합니다.

주요 특징:

  1. 멀티 탭 환경: JupyterLab에서는 다양한 파일을 한 화면에서 여러 탭으로 동시에 열 수 있습니다. 예를 들어, Python 코드, Markdown 문서, 텍스트 파일, 이미지 등을 탭 형식으로 쉽게 전환하며 작업할 수 있습니다.
  2. 파일 탐색기: JupyterLab의 인터페이스에서 파일 탐색기가 통합되어 있어, 프로젝트 내 파일을 쉽게 관리하고 열 수 있습니다.
  3. 확장성: JupyterLab은 다양한 플러그인을 설치하여 기능을 확장할 수 있습니다. 예를 들어, Git 통합, 데이터 시각화 도구 등 다양한 확장을 추가하여 자신만의 맞춤형 개발 환경을 구축할 수 있습니다.
  4. 다양한 파일 형식 지원: JupyterLab은 Notebooks뿐만 아니라 텍스트 파일, 이미지 파일, JSON 파일, CSV 파일 등 다양한 형식을 지원하여 동시에 다룰 수 있습니다.
  5. 통합 개발 환경(IDE)과 유사한 경험: JupyterLab은 코드 작성, 디버깅, 실험을 위한 고급 기능들을 제공하며, 노트북 기반의 대화형 환경 외에도 IDE와 비슷한 경험을 제공합니다.

주요 용도:

  • 데이터 분석: JupyterLab은 Python을 비롯한 여러 언어를 지원하며, 특히 데이터 분석 및 머신러닝 실험을 위해 많이 사용됩니다.
  • 코드 실험: 코드 실행과 실험을 손쉽게 진행할 수 있으며, 결과를 실시간으로 확인하고 조정할 수 있습니다.
  • 문서화: 코드와 결과를 한 곳에서 문서화하고 공유할 수 있는 기능이 강력하여 연구 및 협업에 매우 유용합니다.

 

 

설치

 

 

 

 

 

pip install jupyterlab

 

 

완료 

 

사용할 동안  계속 가동시킴

 

 

 

d 드라이드 사용시 - 해당 드라이브에  pip install jupyterlab 설치

jupyter lab --notebook-dir=c:/저장할폴더
jupyter lab --notebook-dir=d:/저장할폴더

 

 

 

 

 

실행  ( 크롬 )

 

실행후

 

 

 

 

 

 

코드 실행 

 

Shift + Enter

 

 

 

 

종료 

서버에서 Ctrl + C   

 

 

 

1. 명령 모드 단축키 (Command Mode)

명령 모드에서는 셀을 추가, 삭제, 복사, 이동 등의 작업을 할 수 있습니다. 명령 모드로 전환하려면 Esc 키를 누릅니다.

  • A: 위에 새로운 셀 추가
  • B: 아래에 새로운 셀 추가
  • D, D: 현재 셀 삭제 (D 키를 두 번 누름)
  • Y: 셀을 코드 셀로 변경
  • M: 셀을 Markdown 셀로 변경
  • Shift + Enter: 셀 실행 후 다음 셀로 이동
  • Ctrl + Enter: 셀 실행 (다음 셀로 이동하지 않음)
  • Z: 셀 삭제 취소 (Undo)
  • X: 현재 셀 잘라내기
  • C: 현재 셀 복사
  • V: 복사한 셀 붙여넣기
  • Shift + M: 선택한 셀들을 하나로 병합
  • ↑, ↓: 위 또는 아래 셀로 이동
  • Enter: 편집 모드로 전환

 

2. 편집 모드 단축키 (Edit Mode)

편집 모드에서는 셀 내부에서 코드를 작성하거나 편집할 수 있습니다. 편집 모드로 전환하려면 Enter 키를 누릅니다.

  • Ctrl + A: 셀 내부 전체 선택
  • Ctrl + C: 선택한 텍스트 복사
  • Ctrl + V: 텍스트 붙여넣기
  • Ctrl + Z: 실행 취소
  • Ctrl + Shift + Z: 다시 실행
  • Ctrl + Shift + -: 커서 위치에서 셀을 둘로 나누기
  • Tab: 들여쓰기
  • Shift + Tab: 들여쓰기 해제
  • Ctrl + /: 주석 처리/주석 해제

 

3. 기타 유용한 단축키

  • Ctrl + S: 노트북 저장
  • Ctrl + Shift + P: 명령 팔레트 열기 (모든 명령어 검색 가능)
  • F: 노트북 내부의 텍스트 검색
  • O: 출력 표시/숨기기
  • 0, 0: JupyterLab 재시작 (숫자 0을 두 번 누름)
반응형