Python 시작 하기

 

파이썬이란? 

1991년 귀도 반 로섬이 개발

플랫폼 독립적, 인터프리터 방식, 객체지향적, 동적 타이핑 대화형 언어

많은 상용 으용 프로그램에서 스크립트 언어로 채용

과학 기술 컴퓨팅, 공학 분야에서도 널리 이용

  -Pyrex, Psyco, Numpy 등 관련 패키지 이용

 

파이썬의 특징

  • 대화형 인터프리터 언어
  • 동적타이핑(동적인 데이터 타입 결정) 지원
  • 플랫폼 독립적 언어
  • 간단하고 쉬운 문법
  • 높은 가독성
  • 비교적 짧은 개발 시간
  • 고수준 내장 객체 자료형 (List, Dictionary, Tuple 등 자료 구조)
  • 메모리 자동 관리
  • 풍부한 라이브러리
  • 높은 확장성(Glue Language)
  • 유니코드
  • 무료 (파이썬 재단이 관리하는 개방형, 공동체 기반 개발 모델)

 

 

높은 확장성: Glue Language

언어 자신의 기능은 작게 유지

 - 사용자가 언제나 필요로 하는 최소한의 기능만을 제공하도록 설계

속도나 서능이 필요한 기능은 타 언어(C,C++ 등)로 구현,

 - 파이썬에서는 전반적인 뼈대만 구성

 

 

파이썬 활용분야

 

● 시스템 유틸리티

 - 운영체제의 시스템 명령어들을 이용할 수 있는 각종 도구를 갖춤

 

● GUI

 - Tcl/tk를 이용한 UI, wxPython(Windows 인터페이스)

 

● 웹 프로그래밍

- Django, Flask

 

● 데이터베이스 프로그래밍

- SQLite 내장, Oracle, DB2, Sybase, MySQL 등 DB 시스템 인터페이스 제공

 

● 텍스트 처리

 - 뛰어난 문자열 처리, 정규식, XML 처리

 

● 데이터 분석

 - Numpy, Pandas 라이브러리를 활용한 데이터 분석

 - Matplotlib 라이브러리를 활용한 그래프, 또는 2차원 Data Visualization

 - SciPy를 활용한 과학/공학 계산

 

● 병렬 연산

 - IPython을 이용한 병렬 연산

 

● 사물 인터넷

 - 라즈베리 파이를 이용한 사물 인터넷 프로토타이핑

 

 

파이썬 다운로드/설치

https://www.python.org/downloads/

 

Download Python

The official home of the Python Programming Language

www.python.org

 

Read

Eval

Print

Loop

 

 

파이썬 설치 확인

cmd.exe 혹은 powershell에서 Python 버전 확인 (--version 옵션)

 

 

+ 연결하는 방법은 객체 내에 + 연산자가 오버라이딩 되어 있어야 한다.

오류 발생시 캐스팅(형 변환)으로 해결가능(str)

print(str(x)+""+s)

 

sep=',' 기본값 ''(공백) # 출력 객체 사이에 표시할 문자

end='\n' 기본값 '\n'(개행) # 출력의 마지막에 출력할 문자

 

input()함수를 이용, 사용자의 키보드 입력을 받을 수 있다.

 

 

 

 

들여쓰기(Indent)

가장 바깥쪽에 있는 블록의 코드는 1열부터 시작한다.

내부 블록은 같은 거리만큼 들여쓰기 해야 한다.

블록은 들여쓰기로 결정된다

탭과 공백을 함께 쓰는 것은 권장하지 않는다

들여쓰기 간격은 일정하기만 하면 된다 (4 spaces 추천)

 

주석(Comment) : #

여러줄 주석 없음

 

파이썬 가상환경

  • 시스템에 설치한 파이썬은 한 라이브러리에 대해 하나의 버전만 설치 가능
  • 기존 프로젝트를 유지보수하거나 여러 개의 프로젝트를 하나의 시스템에서 개발하고자 한다면 문제가 된다.
  • 이러한 상황을 방지하기 위해, 각 프로젝트를 독립된 가상환경으로 격리

 

파이썬 가상환경의 설정

:pyenv - Version Manager

https://github.com/pyenv/pyenv

 

pyenv/pyenv

Simple Python version management. Contribute to pyenv/pyenv development by creating an account on GitHub.

github.com

가상환경 설정 도구 - venv, virtualenv, anaconda

  • PIP : Python Default Package Manager
  • venv : Python 3.3 이상에 기본 모듈로 탑재된 가상 환경 모듈
  • virtualenv : Python 2 버전부터 사용해 오던 가상 환경 라이브러리
  • conda : Anaconda Python에서 지원하는 가상 환경 모듈

       - 단순히 파이썬 가상 환경 모듈 혹은 라이브러리가 아님

       - PIP 처럼 패키지 매니저로서의 역할

       - Python 이외의 다양한 개발 환경을 지원

 

python -m venv bitenv

bitenv\Scripts\activate.bat

bitenv\Scripts\deactivate.bat # 빠져나오기

 

 

파이썬 IDE 설치 및 사용

PyCharm Community

  • JetBrains에서 만든 파이썬 개발 IDE
  • virtualenv, conda를 이용한 가상환경 구성을 자동 지원, 다양한 개발 편의 기능 지원
  • 기능 제약이 있고, 라이세슨 제한이 있어 상용 sw는 개발 불가

 

Visual Studio Code

  • MS에서 만든 코드 편집기 겸 통합 개발 도구
  • 가볍고 단순, 다양한 기능과 플러그인을 이용한 확장이 용이

 

 

 

산술연산자

/ 나눗셈

// 나눗셈의 몫(정수나누기)

% 나눗셈의 나머지

** 제곱

 

 

복소수

실수부+허수부로 구성

허수부는 j 혹은 J로 표기

 

>>> type(3 - 4j)

<class 'complex'>

>>> (3 - 4j).real # 실수부 반환

3.0

>>> (3 - 4j).imag # 허수부 반환

-4.0

>>> (3 - 4j).conjugate() # 켤레복소수 반환

(3+4j)

 

 

변수

Python에서는 변수를 선언하는 과정이 없다

파이썬은 변수의 타입이 고정되지 않은 동적 타입(dynamically typed) 언어

 

여러 개를 한꺼번에 치환

e, f = 3.5, 5.3

여러 개를 같은 값으로 치환

x = y = z = 10

값 교환(swap)

e, f = 3.5, 5.3

e, f = f, e

print(e, f)

 

변수명 작성 규칙

문자, 숫자 _(언더바)의 조합으로 구성

숫자로 시작할 수 없다

예약어 사용 불가

import keyword

keyword.kwlist

대소문자 구분

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
def arith_open():
    print("==산술연산")
    print(7/3)
    print(7//3)
    print(7%3)
 
    print(7**3)
    print(pow(7,3))
    print(divmod(7,3))
    print("=====================")
    print(divmod(7,3)[0])
    print(divmod(73)[1])
 
 
 
def complex_ex():
    print("===== 복소수")
    print(3+4j)
    print(3 + 4j.real)
    print(3 + 4j.imag)
    print(3 + 4j.conjugate())
 
def assigment_ex():
    a=1
    b=a+1
    print(a,b)
    c,d=3,5
    print(c,d)
    x=y=z=10
 
    print(x,y,z)
 
    c, d = d, c
    print("swap", c, d)
 
    #동적 타이핑
    a=1
    print(a, "is", type(a))
    a = "Ptthon"
    print(a, "is", type(a))
 
    print("a는 str 객체?", isinstance(a, str))
 
    total=0
    a="Python"
    if isinstance(a, (int, float)):
        total += a
 
    print("total = ", total)
 
def var_ex():
    import keyword
    print(keyword.kwlist)
 
    print("break" in keyword.kwlist)
 
def logical_oper():
    a = 20; b = 30
    print(not a < b)
    print(a < b and a != b)
    print(a == b or a != b)
    c = True
 
    print(c, "is", type(c))
    print(isinstance(c, bool))
    print(isinstance(c, int))
 
    print("-----------bool 캐스팅")
    print(bool(10), bool(0))
    print(bool(3.14), bool(0))
    print(bool("Python"), bool(""))
    print(bool([123]), bool([]))
 
if __name__=="__main__":
    #arith_open()
    #print(")))))))))))))))))))))))")
    #complex_ex()
    #var_ex()
    #assigment_ex()
    logical_oper()
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

+ Recent posts