1 장 파이썬(Python) 입문 | 파이썬 프로그래밍 기초
1 장 파이썬(Python) 입문 · 프로그램의 생산성과 코드의 가독성, 통계처리 기능 강화 · 효율적인 데이터 구조 · 간단하지만 효과적인 객체지향프로그래밍 · 자유, 오픈소스 ...
1 장 파이썬(Python) 입문 \| 파이썬 프로그래밍 기초

- [파이썬 기초](./)
- [과목소개](index.html)
- [**1** 파이썬(Python) 입문](파이썬입문.html)
  - [**1.1** 파이썬 설치](파이썬입문.html#파이썬-설치)
    - [**1.1.1** 파이썬 홈페이지에서 기본설치 (윈도우즈 환경)](파이썬입문.html#파이썬-홈페이지에서-기본설치-윈도우즈-환경)
    - [**1.1.2** 파이썬 Anconda의 설치](파이썬입문.html#파이썬-anconda의-설치)
  - [**1.2** Jupyter Notebook을 이용한 파이썬프로그램 실행](파이썬입문.html#jupyter-notebook을-이용한-파이썬프로그램-실행)
    - [**1.2.1** 코드 입력해 보기](파이썬입문.html#코드-입력해-보기)
    - [**1.2.2** 쥬피터 노트북의 단축키](파이썬입문.html#쥬피터-노트북의-단축키)
    - [**1.2.3** 프로그램코드를 파일로 저장](파이썬입문.html#프로그램코드를-파일로-저장)
- [**2** 파이썬의 기초](파이썬의-기초.html)
  - [**2.1** 기초](파이썬의-기초.html#기초)
  - [**2.2** 기본 자료형](파이썬의-기초.html#기본-자료형)
    - [**2.2.1** 리터럴 상수](파이썬의-기초.html#리터럴-상수)
    - [**2.2.2** 리스트 (list)](파이썬의-기초.html#리스트-list)
    - [**2.2.3** 튜플 (tuple)](파이썬의-기초.html#튜플-tuple)
    - [**2.2.4** 딕셔너리 (dictionary)](파이썬의-기초.html#딕셔너리-dictionary)
    - [**2.2.5** 집합 (set)](파이썬의-기초.html#집합-set)
  - [**2.3** 연산자 (operator)](파이썬의-기초.html#연산자-operator)
  - [**2.4** 제어문](파이썬의-기초.html#제어문)
    - [**2.4.1** 조건문](파이썬의-기초.html#조건문)
    - [**2.4.2** 반복문/순환문/loop](파이썬의-기초.html#반복문순환문loop)
  - [**2.5** 예외처리](파이썬의-기초.html#예외처리)
  - [**2.6** 파이썬 함수](파이썬의-기초.html#파이썬함수)
    - [**2.6.1** 함수 정의 및 호출](파이썬의-기초.html#함수-정의-및-호출)
    - [**2.6.2** 전역 및 지역변수](파이썬의-기초.html#전역-및-지역변수)
    - [**2.6.3** 파일 I/O](파이썬의-기초.html#파일-io)
- [**3** 패키지](모듈-패키지.html)
  - [**3.1** 파이썬 클래스](모듈-패키지.html#파이썬클래스)
  - [**3.2** 모듈과 패키지](모듈-패키지.html#모듈과-패키지)
- [**4** Numpy](numpy.html)
  - [**4.1** NumPy(넘파이) 특징](numpy.html#numpy넘파이-특징)
  - [**4.2** 배열의 생성](numpy.html#배열의-생성)
  - [**4.3** Numpy 슬라이싱/인덱싱](numpy.html#numpy-슬라이싱인덱싱)
  - [**4.4** Numpy 연산](numpy.html#numpy-연산)
  - [**4.5** 기본 수학함수](numpy.html#기본-수학함수)
  - [**4.6** 선형대수(벡터/행렬연산) 함수](numpy.html#선형대수벡터행렬연산-함수)
  - [**4.7** 난수(랜덤넘버)의 생성](numpy.html#난수랜덤넘버의-생성)
- [**5** Pandas](pandas.html)
  - [**5.1** Pandas DataFrame](pandas.html#pandas-dataframe)
  - [**5.2** Pandas 통계처리](pandas.html#pandas-통계처리)
  - [**5.3** Pandas plot](pandas.html#pandas-plot)
  - [**5.4** Read & write data in Pandas](pandas.html#read-write-data-in-pandas)
- [**6** Plot using matplotlib, pandas, seaborn](plot-using-matplotlib-pandas-seaborn.html)
  - [**6.1** 환경설정](plot-using-matplotlib-pandas-seaborn.html#환경설정)
  - [**6.2** 기본 플롯](plot-using-matplotlib-pandas-seaborn.html#기본-플롯)
  - [**6.3** Subplot](plot-using-matplotlib-pandas-seaborn.html#subplot)
  - [**6.4** 다양한 plots](plot-using-matplotlib-pandas-seaborn.html#다양한-plots)
    - [**6.4.1** 상자그림](plot-using-matplotlib-pandas-seaborn.html#상자그림)
    - [**6.4.2** 히스토그램](plot-using-matplotlib-pandas-seaborn.html#히스토그램)
    - [**6.4.3** 산점도](plot-using-matplotlib-pandas-seaborn.html#산점도)
    - [**6.4.4** 막대그래프](plot-using-matplotlib-pandas-seaborn.html#막대그래프)
    - [**6.4.5** 원그래프](plot-using-matplotlib-pandas-seaborn.html#원그래프)
  - [**6.5** seaborn 패키지 & load datasets](plot-using-matplotlib-pandas-seaborn.html#seaborn-패키지-load-datasets)
  - [**6.6** scatter plot](plot-using-matplotlib-pandas-seaborn.html#scatter-plot)
    - [**6.6.1** pandas](plot-using-matplotlib-pandas-seaborn.html#pandas-1)
    - [**6.6.2** seaborn package](plot-using-matplotlib-pandas-seaborn.html#seaborn-package)
  - [**6.7** boxplot](plot-using-matplotlib-pandas-seaborn.html#boxplot)
    - [**6.7.1** pandas](plot-using-matplotlib-pandas-seaborn.html#pandas-2)
    - [**6.7.2** seaborn package](plot-using-matplotlib-pandas-seaborn.html#seaborn-package-1)
- [**7** sklearn](sklearn.html)
  - [**7.1** 주요기능](sklearn.html#주요기능)
  - [**7.2** sklearn.datasets](sklearn.html#sklearn.datasets)
- [**8** Regular Expression](re.html)
  - [**8.1** re: 정규식 처리 모듈](re.html#re-정규식-처리-모듈)
  - [**8.2** 정규식을 패턴 객체로 컴파일하기](re.html#정규식을-패턴-객체로-컴파일하기)
- [**9** 연습문제](연습문제.html)
- [**10** R과 Python을 넘나들기](r과-python을-넘나들기.html)
  - [**10.1** `reticulate` 패키지: R Interface to Python](r과-python을-넘나들기.html#reticulate패키지-r-interface-to-python)
    - [**10.1.1** 패키지 설치](r과-python을-넘나들기.html#패키지-설치)
  - [**10.2** R 실행](r과-python을-넘나들기.html#r-실행)
  - [**10.3** 파이썬에서 R의 객체를 가져오기](r과-python을-넘나들기.html#파이썬에서-r의-객체를-가져오기)
  - [**10.4** R에서 파이썬의 객체를 가져오기](r과-python을-넘나들기.html#r에서-파이썬의-객체를-가져오기)
- [강의 홈](http://datamining.dongguk.ac.kr)

# [파이썬 프로그래밍 기초](./)

# 1 장 파이썬(Python) 입문

- 파이썬은 1991년 Guido Van Rossem에 의해 개발되었으며 다음의 특징을 지님
  - 프로그램의 생산성과 코드의 가독성, 통계처리 기능 강화
  - 효율적인 데이터 구조
  - 간단하지만 효과적인 객체지향프로그래밍
  - 자유, 오픈소스 소프트웨어.
  - 고수준 언어
  - 이식성
  - 확장성

## 1.1 파이썬 설치

> 파이썬을 설치하는 방법에는 여러가지가 있으나 여기서는 기본설치 및 아나콘다설치 두가지 방법을 설명

1. 기본설치
2. 아나콘다설치: 파이썬을 통해 쉽게 데이터 분석을 할 수 있도록 기타 유용한 라이브러리들을 한꺼번에 모아놓은 오픈소스 패키지

### 1.1.1 파이썬 홈페이지에서 기본설치 (윈도우즈 환경)

1. 설치프로그램 다운로드: 홈페이지 접속( [https://www.python.org](https://www.python.org))

2. 홈페이지에서 파이썬 \[3.7버전\] 선택: 아래의 **빨간색 화살표** 부분 클릭

![파이썬 설치파일 다운로드 페이지](fig/f.png)

파이썬 설치파일 다운로드 페이지

3. 파이썬 설치파일 다운로드 후 실행 (이후 생략…)


### 1.1.2 파이썬 Anconda의 설치

01. 검색창에 **Python Anaconda** 입력 후, 빨간색 화살표 부분 클릭

    ![Python Anaconda홈페이지](fig/f1_1.png)

    Python Anaconda홈페이지

02. 파이썬 Anaconda 홈페이지

    ![Python Anaconda 홈화면](fig/f1_2.png)

    Python Anaconda 홈화면

03. 윈도우즈 환경 선택 후, Python 3.7 version ( **빨간색 화살표**)을 클릭하여 설치파일을 다운로드함

    ![설치파일 다운로드](fig/f1_3.png)

    설치파일 다운로드

04. 설치파일을 실행하면 처음 셋업화면이 나오고 **Next** 버튼 클릭

    ![Anaconda setup 화면](fig/f1_4.png)

    Anaconda setup 화면

05. Licence Aggrement

    ![약관확인 및 동의](fig/f1_5.png)

    약관확인 및 동의

06. 설치타입 선택

    ![설치타입설정](fig/f1_6.png)

    설치타입설정

07. 설치위치 선택

    ![설치 위치 설정](fig/f1_7.png)

    설치 위치 설정

08. 설치 옵션 선택

    ![Python Anaconda option선택](fig/f1_8.png)

    Python Anaconda option선택

09. 설치 진행

    ![Python Anaconda 설치중 화면](fig/f1_9.png)

    Python Anaconda 설치중 화면

10. 설치 완료

    ![Python Anaconda 설치완료](fig/f1_11.png)

    Python Anaconda 설치완료

11. 바탕화면에 아나콘다 아이콘 확인

    ![Python Anaconda 아이콘생성](fig/f1_12.png)

    Python Anaconda 아이콘생성


## 1.2 Jupyter Notebook을 이용한 파이썬프로그램 실행

1. Jupyter Notebook 실행

![Jupyter Notebook 실행](fig/f1_13.png)

Jupyter Notebook 실행

2. Jupyter notebook 우측 상단의 **Python3** 를 클릭

![Jupyter Notebook으로 Python3 실행](fig/f1_14.png)

Jupyter Notebook으로 Python3 실행

3. 쥬피터노트북의 프로그램 코드입력 창

![Jupyter Notebook을 통한 파이썬 화면](fig/f1_15.png)

Jupyter Notebook을 통한 파이썬 화면


### 1.2.1 코드 입력해 보기

- 간단한 예제


  - 쥬피터 노트북에 아래 코드를 입력


    ```
    import io
    print("hello world")
    ```

  - 실행은 **\[Run\]** 버튼 또는 \[Ctrl\]+\[Enter\]키를 누름


![Jupyter Notebook 입력 및 실행-1](fig/%EB%85%B8%ED%8A%B8%EB%B6%81_1.png)

Jupyter Notebook 입력 및 실행-1

![Jupyter Notebook 입력 및 실행-2](fig/%EB%85%B8%ED%8A%B8%EB%B6%81_2.png)

Jupyter Notebook 입력 및 실행-2

### 1.2.2 쥬피터 노트북의 단축키

- 주피터 노트북에는 두 가지 모드가 있고 초록색인 경우 입력모드, 파란색일 경우 명령모드임

1. 입력모드에서는 코드를 입력 수정가능
2. 명령모드에서는 프로그램 실행 셀의 추가 삭제 등의 기능이 있음
- 단축키(키보드의 키)를 이용하면 효율적으로 작업할 수 있음

- 모드의 전환
단축키기능\[Enter\]선택 셀의 명령모드에서 입력모드로 전환\[ESC\]선택 셀의 입력모드에서 명령모드로 전환
- 명령모드 (Command Mode)의 단축키
단축키기능\[a\]위로 셀 추가\[b\]아래로 셀 추가\[dd\]선택 셀 삭제\[x\]선택 셀 잘라내기\[c\]선택 셀 복사하기\[p\]선택 셀 아래에 붙여넣기\[Shift\]+\[m\]선택 셀과 아래 셀과 합치기\[o\]실행결과 열기/닫기\[m\]Markdown 입력으로 변경\[y\]Code 입력으로 변경\[Ctrl\]+\[s\] 또는 \[s\]파일 저장
- 입력모드 (Edit Mode)의 단축키
단축키기능\[Enter\]선택 셀의 코드입력모드로 전환\[Ctrl\]+\[a\]선택 셀의 코드 전체 선택\[Ctrl\]+\[z\]선택 셀 내 실행 취소\[Ctrl\]+\[/\]커서 위치 라인 주석처리\[Ctrl\]+\[Enter\]선택 셀 코드 실행\[Shift\]+\[Ctrl\]+\[-\]커서 위치에서 셀 둘로 나누기

![](fig/py_1.png)

### 1.2.3 프로그램코드를 파일로 저장

1. 상단의 **File** 메뉴 클릭

![](fig/f1_16.png)

2. 원하는 파일형식으로 저장

![](fig/f1_17.png)


[Previous page](index.html)[Next page](파이썬의-기초.html)