반응형

안녕하세요 봉자씨입니다.

파이썬에서 숫자를  많이 다룹니다. 

그래서 오늘은 많이 사용하는 그 숫자에 대해서 사용시에 알아야 할 것들을 한번 같이 정리해 보겠습니다.

 

1. 연산시에 알아 야 하는 것들

기본적인 +, -는 더하기와 빼기를 의미합니다.

그리고 * 는 곱하기를 /는 나는기를 의미하죠.

아래의 것들은 사용하다 보면 햇갈리는 연산자 입니다.

9 / 2  # 결과 4.5 (부동소수점 나누기)
9 //2  # 결과 4 (정수 나누기(소수점 이하 버림)를 의미)
9 %2 #
결과 1 (나머지를 구함)
9
** # 결과 81 (9의 2승을 의미)

파이썬 콘솔로 아래와 같이 확인을 해보세요.

 

2. 진수에 대해서 알아야 하는 것들

파이썬에 진수에 대해서 알야아 하는 것을 정리해 봅니다. 

파이썬에도 역시나 다른 언어와 같이 2진수 8진수 16진수가 존재합니다.

2진수는 0과 1로만 이루어진 수를, 

8진수는 0~7로만 이루어진 수를,

16진수는 0~9, A, B, C, D, E 로 이루어진 수죠.

그리고 이를 파이썬에서도 다른 언어와 같이 아래와 같이 표현을 하게 됩니다.

2진수를 표현 할땐 앞에 0b or OB 붙여 줍니다. # 0b101010 (2진수) # 42  
8진수를 표현 할땐 앞에 0o or OO  붙여 줍니다.# 0o52 (8진수)
16진수를 표현 할땐 앞에 0x or 0X 붙여 줍니다.# 0x2a (16진수)

그럼 이것도 역시 한번 파이썬 콘솔로 테스트 해보겠습니다.

아래의 테스트는 42가 맞냐고 비교를 해서 보여줬습니다. 그냥 입력을 하게 되면("0b101010") 42가 출력이 되니 그것도 해보세요.

3. 형변환에 대해서 알아야 하는 것들

파이썬에서의 숫자로 형 변환을 했을 경우에 대해서 알아 보겠습니다.

즉, 다른 형태의 데이터를 숫자로 변환 했을 때에 알아야 하는 것에 대해서 알아보겠습니다.

먼저 파이썬3를 기준으로 했을 경우 정수형(integer) 실수형(floating point number)이 존재합니다.

정수형과 실수형의 구분은 파이썬에서는 변수 선언시 타입을 별도로 선언하지 않기에 값에 소숫점이 없다면 정수형, 있다면 실수형입니다.

다른 형태의 데이터를 정수형으로 형변환 할때는 int()라는 것을 사용합니다.

그렇게 되면 아래와 같이 형이 변환이 됩니다.

int(True)   => 1  (Boolean형의 데이터를 정수로 형변환 했을 경우 True는 1 False는 0이 됩니다.)
int(9.8)     => 9 (실수형을 정수형으로 형변환 시키게 되면 소수점을 잃게 됩니다.)
int(1.0e4)  =>10000(지수 형식의 표현법도 정수형으로 형변환 할 수 있습니다.)
int(‘10’)     =>10(문자열을 정수형으로 형변환 가능합니다.)
int(‘9.8’)    =>error(
소수점 혹은 지수 포함 문자열 처리 불가합니다.)

추가적으로 아래의 형변환 형태는 기억해주세요

1.0+5       =>6.0(정수형과 실수형을 더하게 되면 결과는 실수형이 됩니다. 5가 실수형으로 형변환이 자동으로 이루어 집니다.)
False+6.0    =>6.0(False랑 6을 더하게 되면 False가 자동으로 실수 형변환이 이루어 지며, 0으로 바뀌어 더하면 6이 됩니다.)

콘솔에서 테스트 하면 아래와 같습니다.

4. long이 사라진 python3에서 int 크기는?(python3에서는 long은 없다!)

파이썬 2에서는 정수형 데이터 타입이 intlong 두 가지가 있었는데, Int크기는 32bit,  long 64bit 데이터형입니다.

int 타입 변수의 값이 표현 범위를 넘어서게 되면 자동으로 long으로 타입으로 변경되었습니다.

그런데!

파이썬 3에서는 long 타입이 없어지고 int 타입만 남게 되었습니다.

그래서 아무리 큰 수를 넣어도 Inteager overflow가 발생하지 않습니다. 

Python3에서는 Googol도 닮을 수 있을 정도로 큰 수를 넣을수 있습니다.

구골? 구골이란 10에 100승을 의미합니다.

10**100 = 구골!

테스트를 해보면, googol이란 변수에 10**100을 넣었습니다.

잘 표현이 되는 것을 확인할 수 있습니다. 그리고 이를 출력해 봐도 잘 나오는 것을 확인 할 수 있습니다.googol*googol

파이썬에 type이라는 함수가 있는 해당 함수로 변수의 타입을 확인 할 수 있습니다. 타입을 확인해 보니 int형 임을 확인 할 수 있습니다.

 

위의 테스트를 파이썬2에서 테스트를 해보면 아래와 같이 

long형으로 나오는 것을 확인 할 수 있습니다.

파이썬에서의 숫자를 다루면서 이 정도 알고 계시면 됩니다.

감사합니다. 

반응형

'파이썬 > 파이썬 기초 강의' 카테고리의 다른 글

4. 파이썬 숫자, 문자열 그리고 변수  (0) 2021.01.05
3.2 파이썬 Hello Python  (0) 2021.01.05
3.1 파이썬 설치 하기  (0) 2021.01.04
3. 파이썬 시작하기!  (0) 2021.01.04
2. 그래서 왜 파이썬?  (0) 2021.01.04
반응형

안녕하세요 봉자씨입니다.

파이썬에서 데이터의 종류가 무엇이 있는지 그리고 각 데이터들은 어떻게 다른지에 대해서 한번 알아 보도록 하겠습니다.

데이터의 종류와 이를 다루기 위해서는 아래와 같은 단어에 대해서 꼭 알고 넘어가야 합니다.

파이썬을 공부하다 보면 자주 등장하는 3가지에 대해서 이야기 해보겠습니다.

1. 변수
2. 이름
3. 객체

먼저 변수에 대해서 알아 보겠습니다.

변수는 변하는 수 입니다. 그래서 다른 값을 가질 수 있습니다. 이와 다른 반대의 개념으로 상수가 있습니다. 상수의 경우는 변하지 않는 수를 이야기 합니다. ex) 1, 2, 3,111 등 쉽게 숫자를 생각하시면됩니다.

그런 변수는 할당이라고 하는 단어를 자주 보게 됩니다. 즉 "a라는 변수에 77을 할당한다"라고 하면  "a=77" 로 프로그래밍하면 됩니다.

여기서 할당이라는 이야기는 복사의 의미가 아니라 해당 수에 이름표를 붙인다라고 생각하심 됩니다.

'

 


이름? 이름에 대해서 알아보겠습니다.

파이썬에서 변수를 선언하고 변수를 사용할 수 있습니다 .그런데 이런 변수를 아무것이나 사용할 수 있는건 아닙니다. 사용할 수 없는 이름이 있습니다. 그럼 그런 이름이 무엇일가요.

아래와 같은 이름을 예약어(또는 파이썬의 키워드)라고 해서 사용 할 수 없는 이름입니다 .왜? 파이썬에서 이거 써요~

추가적으로 아래의 규칙을 지켜 줘야 합니다.

문자부터 시작해야 하며 숫자부터 시작하면 안 됩니다.

특수 문자(+, -, *, /, $, @, &, % 등)는 사용할 수 없습니다.

영문 문자와 숫자를 사용할 수 있지만 대소문자는 구분합니다.


객체에 대해서 알아보겠습니다.

객체라는 말은 파이썬을 하게 되면 자주 듣게 됩니다. 

객체에서 꼭 알아야 할 말은 파이썬의 모든 것은 객체로 구현되어 있다.

객체는 어떤 것이라도 변수에 담을 수있다.

결국 모든 것이 객체이니 어떤 것도 변수에 담을 수 있다.

 

 

위와 같이 파이썬의 데이터를 다루기 전, 꼭 알아야 하는 개념 3가지 변수, 이름, 객체에 대해서 알아보았습니다.

조금 어려울 수도 있습니다. 하지만 나중에 다시 와서 해당 글을 읽어보시면 아....라고 생각할 수 있을 것입니다.

그럼 다음 강의에서는 이제 진짜 데이터에 대해서 알아볼게요.

감사합니다.

반응형

'파이썬 > 파이썬 기초 강의' 카테고리의 다른 글

4.1 파이썬 - 숫자  (0) 2021.01.06
3.2 파이썬 Hello Python  (0) 2021.01.05
3.1 파이썬 설치 하기  (0) 2021.01.04
3. 파이썬 시작하기!  (0) 2021.01.04
2. 그래서 왜 파이썬?  (0) 2021.01.04
반응형

안녕하세요 봉자씨입니다.

설치가 다 완료 되셨나요.

그럼 모든 언어의 시작이라고 불리우는 "Hello world" 대신 파이썬이니까.. "Hello Python"을 한번 출력해 보겠습니다.

 

헬로우 파이썬을 3가지 방법으로 한번 해보겠습니다.

 

1. Command 창의 환경에서 출력해 보기

간단하게 Command창을 열고 python3를 입력합니다.

그럼 아래와 같이  >>> 요런 표시가 보이게 됩니다.

그 곳에 print("Hello Pytoh")을 입력하면 아래와 같이 처음 짠 파이썬 프로그램이 됩니다. 

2. 파이참에서 프로젝트 생성후 해당 프로젝트에 Python파일 생성 후 출력해보기!(.py파일 생성 후 파일로 실행하기)

new project를 생성하여 진행하시면 됩니다.

저는 StartPython이라는 프로젝트를 만들어서 한번 작업을 해보도록 하겠습니다.

위와 같이 만들면 아래와 같이 왼쪽에 프로젝트 생성이 되는 것을 확인 할 수 있습니다.

프로젝트가 생성된 것을 확인 할 수 있습니다.

프로젝트를 클릭하고 마우스 오른쪽을 클릭합니다. 그럼 아래와 같이 창이 열리고 창에서 New를 선택해서 새로운 파이썬 파일을 만들어 봅니다. 파일 명은 Hello로 하도록하겠습니다.

그럼 아래와 같이 파일이 생기는 것을 확인 할수 있습니다.

Hello.py(파이썬을 만들면 .py라는 확장자로 파일이 생기게 됩니다. 그리고 이 파일에 프로그램을 하고 해당 파일을 실행 할 수 있게됩니다.)을 열고 나서 이제 해당 파일에 print("Hello Python")를 입력합니다. 그럼 아래와 같이 입력이 되죠.

그런데 이렇게 프로그램만 했다고 실행이 되는 것이 아닙니다.

이제 이 프로그램을 한번 실행해 보겠습니다.

상단 메뉴에 가서 Run에서 Run을 찾아서 클릭해 보세요 

결과가 출력이 되게 됩니다.

 

아래 부분에 Hello Python 출력되는 것을 볼 수 있습니다. 이것은 나중에 .py를 만들고 실행하는 행위를 대신해 주는 것입니다.

Command창에서 Hello.py파일이 있는 위치에 가서 아래와 같이 실행하는 것과 같습니다.

python3 Hello.py

 

3. 파이참에서 1번과 같이 command창에서 출력해 보기

파이참에서는 기본적으로 Python Console를 제공해 줍니다.

하단 부분의 탭을 클릭하여 아래와 같이 입력 하면 결과를 확인 할 수 있습니다.

 

 

이제 파이썬의 시작을 위한 첫 발을 내딪었습니다.

그럼 다음 강의에서 뵐게요.

감사합니다.

 

반응형

'파이썬 > 파이썬 기초 강의' 카테고리의 다른 글

4.1 파이썬 - 숫자  (0) 2021.01.06
4. 파이썬 숫자, 문자열 그리고 변수  (0) 2021.01.05
3.1 파이썬 설치 하기  (0) 2021.01.04
3. 파이썬 시작하기!  (0) 2021.01.04
2. 그래서 왜 파이썬?  (0) 2021.01.04
반응형

안녕하세요 봉자씨입니다.

파이썬을 이제 파이썬에 대해서 이런 저런 이야기를 그만하고

파이썬을 설치해 보도록 하겠습니다.

파이썬을 설치하기 위해서는 아래의 사이트 방문을 합니다.

 

www.python.org/downloads/

 

Download Python

The official home of the Python Programming Language

www.python.org

 

사이트에 방문하여 노란 박스의 부분에 다운로드를 클릭해서 다운로드 받으시고 설치하시면 됩니다. 

이렇게 되면 파이썬 최신 버전을 설치하시게 됩니다.

(다운로드 받은 파일을 실행하여 설치하시면 되요!)

 

이제 설치가 잘 되었나 확인을 한번 해보겠습니다.

설치가 완료되었다면 command창을 열어서 한번 확인을 해보겠습니다.

아래와 같이 창을 열고 아래와 같이 입력하세요

python --version

만약 버전이 2.7로 나온다면 python3라고 하고 --version을 확인해 보세요

그럼 우리가 설치한 버전을 확인 할 수 있습니다.

최신 버전인 3.9.1이 나오면 설치가 제대로 된 것입니다.

 

그리고 나서 이제 python3 라고 입력해보세요.

이제 python3를 개발 할 수가 있습니다.

 

그러나.....

위와 같은 환경에서 파이썬을 개발하기란 정말 어렵습니다.

개발 할때 디버깅도 해야하고 이런 저런 코드의 양도 늘어나게 되면 정말 개발하기 힘이 듭니다.

그래서 이런 개발을 좀 더 좋은 환경에서 할 수 있도록 제공해 주는 툴이 있습니다.

이름하여 IDE 있습니다.

통합 개발 환경(統合開発環境, Integrated Development Environment, IDE) 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어

 

그런 IDE에는 여러가지가 있습니다. 파이썬 개발을 지원하는 IDE는 아래와 같이 많습니다.

 

그럼 우리는 어떤 것을 설치하고 공부를 해야 할 가요.

솔직히 아무것이나 선택하셔서 하시면 됩니다. 호불호가 있을 뿐입니다.

하지만 파이참을 추천드립니다. 파이참의 경우 파이썬 코딩을 위한 여러가지 기능을 참 편리하게 제공합니다.

 

아래의 주소로 접속하시어 다운로드 받으시면 됩니다.

커뮤니티 버전(Free) 버전을 받아서 설치하시며 됩니다.

 

PyCharm설치(Community #개발용)

Window https://www.jetbrains.com/ko-kr/pycharm/download/#section=windows

Mac https://www.jetbrains.com/ko-kr/pycharm/download/#section=mac

 

여기까지 하시면 파이썬 학습을 위한 학습 도구들은 모두 설치하신 겁니다.

그럼 다음 강의에서 뵙겠습니다. 

 

아래의 글은 파이참을 선택하는 이유이니 참고해 주세요

https://bongjacy.tistory.com/entry/파이썬3-시작하기python-버전-선택과-디버깅-툴의-선택?category=1128906

 

반응형

'파이썬 > 파이썬 기초 강의' 카테고리의 다른 글

4. 파이썬 숫자, 문자열 그리고 변수  (0) 2021.01.05
3.2 파이썬 Hello Python  (0) 2021.01.05
3. 파이썬 시작하기!  (0) 2021.01.04
2. 그래서 왜 파이썬?  (0) 2021.01.04
1. Python이란 무엇인가요?  (0) 2021.01.04
반응형

안녕하세요 봉자씨입니다.

이 전에 파이썬을 왜 공부해야하고 파이썬으로 무엇을 해야 하는지에 대해서 알아 보았습니다.

그럼 이제 파이썬을 진짜로 공부해 보도록 하겠습니다.

 

파이썬은 인터프린터 언어라는 말이 있던데 무슨 말이죠?

파이썬이 인터프린터 언어다라는 말을 듣게 되고 이게 무슨 말인가 싶습니다.

프로그래밍 언어는 꼭 그렇진 않지만 두가지 부류로 나뉜다고 생각하시면 됩니다.

 

(아래의 내용은 초보용 해석이니 참고)

한방에 프로그램한 소스 코드를 읽어서 기계어로 변환하여 이를 실행하는 컴파일 언어와

프로그램한 소스 코드를 한줄 한줄 실시간으로 읽어서 실행하는 인터 프린터 언어가 있습니다.

 

이 중에 파이썬 언어는 인터프린터 언어에 해당합니다. 

원시 코드 (프로그래머가 작성한 소스코드) 기계어로 변환하는 과정 없습니다.

한줄 한줄 해석하여 바로 명령어를 실행 R, Python, Ruby와 같은 언어들이 대표적입니다.

Runtime 상황에서는 한 줄씩 실시간으로 읽어서 실행하기 때문에 컴파일 언어에 비해 속도가 느립니다.
실행속도는 느리지만 코드 변경시 빌드 과정없이 바로 실행이 가능하다는 장점이 있습니다.

 

파이썬 하다 보면 이런 이야기가 나옵니다. 

Cpython? pypy? 대체 무슨 말이죠?

현재의 파이썬에서는 표준 파이썬 구현체인 CPython의 인터프리터를 사용하고 안정적으로 지원하고 있습니다.

PyPy의 경우 JIT 컴파일 및 메모리 사용량 감소와 같은 것이 코드의 속도를 크게 향상 시켰습니다.

근데 지금 Cpython 사용해요? why 안써? PyPy?

 - 파이썬 3 호환성 부족

 - 확장 지원 부족

 - 접착제 코드로 적합하지 않음

 - 속도가 전부는 아니다

 

음 파이썬 3???

이 전 글을 처음부터 보신 분은 이해하시 겠지만 처음 이 글을 보신 분은

대체 파이썬이면 파이썬이지 파이썬3가 무엇인지에 대해서 이해가 안가시는 분이 대다수라고 생각이 듭니다.

 

간단히 파이썬을 이야기하면 버전에 따라서 파이썬2와 파이썬3로 나눌 수 있습니다.

이를 한마디로 다시 정리하면

Python2는 과거이고, Python3는 미래이다.

귀도 반 로섬과 관계자는 고치기 힘든 것들을 함께 개선 하기로 결정. 이를 Python3라고 부르기로 하였습니다.

현재 파이썬 2.7의 버전은 2.7.17입니다. 20201월에 2.7.18 버전의 코드 프리징(더이상 지원 안함)이 진행되고,

4월에는 2.x의 최종 버전인 2.7.18이 출시됩니다. 이후로는 더이상 업데이트가 이뤄지지 않습니다.

또한 중요한 것은 파이썬2와 파이썬3는 호환이 되지 않으니 꼭 알고 계세요.

 

그럼 파이썬2와 파이썬3의 차이가 무엇인가요?

Python 2.7

Python 3.4

비교

>>> 3 / 2
1

>>> 3 / 2
1.5

나누기에 파이썬3는 소수점으로 표현
파이썬2는 정수로 표현

Print “Hello” #statement

Print(“hello) #function

print("hello")
출력 할때에 괄호가 있음 파이썬 3

print( type('hello’) ) # <type 'str’>

print( type(u'hello') ) # <type 'unicode'>

print( type('hello') ) # <class 'str’>

print( type(u'hello') ) # <class 'str'>

  • 파이썬 3 의 문자타입
    - bytes : raw 8 bit
    - str : unicode 문자
  • 파이썬 2의 문자타입
    - str : raw 8 bit
    -unicode : unicode 문자

print( 2**30 ) # 1073741824

print( type(2**30) ) # <type 'int'>

print( 2**100 )

 # 1267650600228229401496703205376

print( type(2**100) ) # <type 'long'>

print( 2**30 ) # 1073741824

print( type(2**30) ) # <class 'int'>

print( 2**100 )

# 1267650600228229401496703205376 

print( type(2**100) ) # <class 'int'>

파이썬2에서 존재하던 long은 사라지고 이제 파이썬3엔 int 뿐입니다.

 

그럼 왜 파이썬2와 파이썬3의 차이를 알아야 하나요?

우리는 이제 최신 버전의 파이썬3로 학습을 할 것입니다.

그런데 굳이 파이썬2에 대한 차이점을 알아야 하는 이유가 무엇일가요?

이유는 딱 한가지 입니다.

우리가 인터넷 상에서 파이썬 소스 코드도 찾아보고 참고도 하는 경우가 많을 것이고

그렇게 해야 파이썬의 실력이 무럭무럭 자라납니다. 

그런데 이 과정에서 내가 보는 코드가 파이썬2 인데도 불구하고

파이썬3 환경에서 실행을 하고 안돌아 가고 문제가 되는 경우가 발생 할 수 있습니다.

 

이런 경우를 위해서 우리는 굳이 파이썬2와 파이썬3의 차이점을 알아야 하고

이를 통해서 파이썬2 소스와 파이썬3의 소스를 구별 할 수 있어야 합니다.

 

반응형
반응형

안녕하세요 봉자씨입니다.

파이썬을 당장 공부하려고 하는데 왜 파이썬을 배워야 하는지에 대해서 필요성을 잘 모르는 경우가 많습니다.

java, c, javasript, vuejs 등 수많은 언어가 있습니다.

이런 많은 언어 중에 왜 파이썬인가에 대해서 간단하게 알아보도록 하겠습니다.

 

그래서 파이썬을 왜 배워야 하나요?

첫번째, 다른 프로그래밍 언어에 비해서 문법이 쉽기 때문에 배우기 쉬움

이것이 다른 언어에 비해서 큰 장점으로 그만큼 누구나 배울 수 있다는 뜻이고,

컴퓨터의 활용도가 그만큼 높아진다는 의미

컴퓨터 언어를 배워 보지 못한 사람들도 쉽게 배울 수 있는 언어가 파이썬이라고 보면 됨.

 

두번째, 파이썬은 인간다운 프로그래밍 언어

다른 어셈블리어(기계에 프로그래밍하는 가장 기계에 가까운 언어라고 보시면 됩니다.) 나 C언어, C++, JAVA 등등은 언어의 발전을 통해서

컴퓨터에 사람이 접근이 쉽도록 만들어지기는 했지만, 여전히 컴퓨터에 더 가까운 형태에 언어(그래서 사람이 보기 힘들죠)

그러나 파이썬은 인간이 이해하기 쉬운 형태의 문법을 지니기 때문에 가독성이 좋

 

세번째, 파이썬은 간결하여, 개발속도가 빠름

문법이 대체로 간결하여 읽기 쉽고, 쓰기도 쉬움

따라서 프로그램 개발속도도 다른 언어에 비해 빠

 

네번째, 파이썬은 다양한 분야에서 활용이 가능

웹 개발 뿐만 아니라 데이터 분석, 머신러닝, 그래픽, 학술 연구 여러분야에서 활용도가 높고,생산성이 높음

데이터 수집 및 분석 면으로 보면 대부분 사람들이 파이썬을 배울 필요가 있는 이유이기도 합니다.

요즘은 데이터 분석이나 머신러닝 그리고 웹 개발을 위해서 파이썬을 많이 배운답니다.

 

그럼 이렇게 쉽고 편하고 빠르고 다양하게 쓴다는 언어 파이썬으로 무엇을 할 수 있을 가요?

우리가 당장 파이썬을 배우는 이유를 차치하더라도 이 것을 배워두게 되면

아래와 같은 것들을 할 수 있어요

 

그래서 파이썬으로 무엇이 가능한데요? 

시스템 유틸리티 제작

파이썬은 운영체제(윈도우, 리눅스 등)의 시스템 명령어를 사용할 수 있는 각종 도구를 갖추고 있기 때문에

이를 바탕으로 갖가지 시스템 유틸리티를 만드는 데 유리합니다.

예를 들어서 파이썬 프로그램으로 피씨도 끄고 피씨에 있는 여러가지 기능들을 조작 할 수 있답니다.

 

GUI 프로그래밍

Tkinter를 사용하면 단 5줄의 소스 코드만으로 윈도우 창을 띄울 수 있습니다.

예를 들어서 화면을 만들어 무엇인가를 입력 받는 프로그램을 만들 수 있습니다. 쉽게!

 

C/C++와의 결합

C C++로 만든 프로그램을 파이썬에서 사용할 수 있으며, 파이썬으로 만든 프로그램 역시 C C++에서 사용할 수 있습니다.

컴퓨터를 옛날에 처음 배우면 C언어를 배우고 이는 컴퓨터 언어의 기초를 다지기 좋은 언어이기도 합니다. 

이 언어는 조금 어려운 느낌이 있는 언어이기도 합니다. 이 언어는 컴퓨터에 가까운 언어라 하여 여러가지 강력한 코딩이 가능한데요.

이런 언어와의 결합도가 파이썬은 뛰어 납니다! 서로 호환 가능!

 

웹 프로그래밍

파이썬은 웹 프로그램을 만들기에 매우 적합한 도구이며, 실제로 파이썬으로 제작한 웹 사이트는 셀 수 없을 정도로 많습니다.

파이썬 단 3줄로 웹 서버를 만들 수 있습니다. (웹 프로그램을 돌리기 위해서는 웹 서버라는 것이 필요합니다.)

 

수치 연산 프로그래밍

파이썬은 수치 연산 프로그래밍에 적합한 언어는 아니지만 C로 작성된 NumPy라는 수치 연산 모듈을 통해서

수치 연산을 빠르게 할 수 있다. 나중에 파이썬을 데이터 분석용으로 사용하신다면 NumPy의 강력함을 이해 하실수 있습니다.

 

데이터베이스 프로그래밍

Oracle, MySQL, PostgreSQL 등의 데이터베이스에 접근하기 위한 도구를 제공한다.

응용 프로그램을 만들 경우 항상 DB는 동반이 되는데 이때 이를 컨트롤 할때 파이썬으로 쉽게 접근 하도록 도구를 제공해 줍니다.

다른 언어 사용없이 파이썬 만으로도 쉽게 접속이 가능하니 참 편합니다.

 

데이터 분석, 사물 인터넷

데이터 분석에 특화된 ‘R’이라는 언어를 아직 많이 사용하고 있지만, Pandas 등장이후로 파이썬 사용이 늘고 있습니다.

사물 인터넷 분야에서도 파이썬은 활용도가 높습니다. Raspberry Pi는 리눅스 기반의 아주 작은 컴퓨터인데 홈시어터나

아주 작은 게임기 만들수 있는데 파이썬은 이 라즈베리파이를 제어하는 도구로 사용됩니다.

 

그럼 파이썬은 다돼? 아니요 좀 어렵 거나 굳이 파이썬을 선택하지 말아야 하는 경우도 있습니다.

아래의 경우를 보시면 됩니다.

파이썬으로 쪼매 힘든 것들

시스템과 밀접한 프로그래밍 영역

파이썬으로 리눅스 같은 운영체제, 엄청난 횟수의 반복과 연산이 필요한 프로그램

또는 데이터 압축 알고리즘 개발 프로그램 등을 만드는 것은 어려움

즉 대단히 빠른 속도를 요구하거나 하드웨어를 직접 건드려야 하는 프로그램에는 어울리지 않다고 보면 됩니다.

그런 경우는 아래의 언어를 사용하는 것이 일반적입니다.

=>C언어 또는 C++로 개발

 

모바일 프로그래밍

파이썬은 구글이 가장 많이 애용하는 언어이지만 파이썬으로 안드로이드 앱 개발은 아직 어렵습니다.

안드로이드에서 파이썬으로 만든 프로그램이 실행 지원하나 이것만으로 앱을 만들기에는 아직 역부족이죠.

아이폰 앱을 개발하는 것 역시 파이썬으로 할 수 없는 것은 마찬가지라고 보시면 됩니다.

=>안드로이드 #자바 #코틀린

=>아이폰 #Object C #Swift

 

 

생각나는 대로 적어 보았습니다.

하지만 파이썬은 이런 장단점은 있지만 언급 드린 것 이외에도 수 많은 것들을 할 수 있습니다

이 것을 반증하듯 파이썬의 언어 순위(프로그램 언어 인기도 순위)는 쑥쑥 급성장 하고 있습니다.

그만큼 믿고 공부하기에 참 좋은 언어입니다.

그럼 다음 강의에서 뵙겠습니다.

 

참고로 아래의 표는 언어 순위니 참고하세요(무려 2위!!!!!)

반응형
반응형

안녕하세요 봉자씨입니다.

파이썬을 공부하기 전에 파이썬이 어떻게 만들어 졌는지 한번 알아 보겠습니다.

(굳이? 네 이런 스토리를 알고 있으면 언어에 대한 애정이 생깁니다. 뇌피셜이지만..)

 

누가 만들었지?

파이썬은 아래의 아저씨가 만들었습니다. 

구글에서 일하고 드롭박스에서 일한 귀도 반 로섬 아저씨가 만들었습니다.

 

 

어쩌다가 이 아저씨가 파이썬을 만들 걸가요?

1989년 크리스마스가 있던 주에 자신이 출근하던 연구실의 문이 닫혀 있어서 취미삼아 파이썬 만들었다고 합니다.

파이썬이라는 이름은 귀도가 즐겨 봤던 코미디 프로그램인 몬티 파이썬의 날아다니는 써커스 <Monty Python's Flying Circus>에서

이름을 지었다고 합니다.

 

파이썬의 로고 및 아이콘이 뱀 모양인 이유는 python의 원래 뜻이 비단뱀이었기 때문이라고 합니다.

파이썬 수업 전에 파이썬의 탄생에 대해서 간단하게 재미 삼아 알아 봤습니다.

그럼 다음 강의에서 뵙겠습니다.

 

파이썬 언어엔 철학이 있다?'

파이썬은 아래와 같은 철학을 가졌습니다. 나중에 여러 분이 파이썬을 설치하게 되면

그때에 import this라는 명령어를 한번 쳐보세요.

그럼 아래와 같은 파이썬의 철학을 이야기해주는 시와 같은 문구를 보실 수 있습니다.

 

아름다운게 추한 것보다 낫다.

Beautiful is better than ugly

명시적인 것이 암시적인 것 보다 낫다.

Explicit is better than implicit

단순함이 복잡함보다 낫다.

Simple is better than complex

복잡함이 난해한 것보다 낫다.

Complex is better than complicated

가독성은 중요하다.

Readability counts

...

 

실제 캡쳐 화면입니다.

반응형
반응형

 

 

 

안녕하세요 봉자씨입니다.

 

파이썬3에서 주피터 노트북을 설치하면서 에러가 발생하는 부분이 있어서 혹시나 해서 공유드립니다.

아래와 같이 설치를 시도 했습니다.

bongjacy:~ bongdary$ pip3 install jupyter

 

문제 없이 설치 되는 듯합니다.

그런데 실행을 하니 실행이 안되고 아래와 같은 에러가 표시가 됩니다.

 

명령어를 실행합니다.

bongjacy:~ bongdary$ jupyter notebook

 

에러가 발생했습니다.

Traceback (most recent call last):

  File "/Library/Frameworks/Python.framework/Versions/3.5/bin/jupyter-notebook", line 5, in <module>

    from notebook.notebookapp import main

  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/notebook/__init__.py", line 25, in <module>

    from .nbextensions import install_nbextension

  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/notebook/nbextensions.py", line 605, in <module>

    from .extensions import (

  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/notebook/extensions.py", line 8, in <module>

    from tornado.log import LogFormatter

  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/tornado/log.py", line 34, in <module>

    from tornado.escape import _unicode

  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/tornado/escape.py", line 27, in <module>

    from tornado.util import unicode_type

  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/tornado/util.py", line 21, in <module>

    from typing import (

ImportError: cannot import name 'Type'

 

무슨 에러인지 확인을 이것 저것해봤습니다.

 

it's because of the version of tornado and python 3.

 

결국 tornado 이것을 어떻게 하면 해결이 난다는 것입니다.

그래서 아래와 같이 처리를 하니 잘 실행이됩니다.

 

pip install tornado==5.1.1

 

위와 같이 실행 후의 결과입니다.

bongjacy:~ bongdary$ jupyter notebook

 

[I 14:11:56.273 NotebookApp] Writing notebook server cookie secret to /Users/bongdary/Library/Jupyter/runtime/notebook_cookie_secret

[I 14:11:57.056 NotebookApp] Serving notebooks from local directory: /Users/bongdary

[I 14:11:57.056 NotebookApp] The Jupyter Notebook is running at:

[I 14:11:57.056 NotebookApp] http://localhost:8888/?token=60742b84f859e15052573a9370ab2afe36cb35c8eb66e2a1

[I 14:11:57.056 NotebookApp]  or http://127.0.0.1:8888/?token=60742b84f859e15052573a9370ab2afe36cb35c8eb66e2a1

[I 14:11:57.056 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

[C 14:11:57.060 NotebookApp] 

    

    To access the notebook, open this file in a browser:

        file:///Users/bongdary/Library/Jupyter/runtime/nbserver-39323-open.html

    Or copy and paste one of these URLs:

        http://localhost:8888/?token=60742b84f859e15052573a9370ab2afe36cb35c8eb66e2a1

     or http://127.0.0.1:8888/?token=60742b84f859e15052573a9370ab2afe36cb35c8eb66e2a1

 

화면이 아래와 같이 잘 열리는 것을 확인 했습니다.

 

반응형
반응형

 

 

 

안녕하세요 봉자씨입니다

 

파이썬3에 대해서 강의를 시작하려고 합니다.

해당 강의는 파이썬의 기초라고 생각하시면서 들으시면 되겠습니다.

 

파이썬을 시작하기 전에 우리가 생각해야하는 것이 있습니다. 

 

1 .파이썬2? 파이썬3? 과연 어떤걸 어떻게 시작해야하나요?
2. 우린 어떤 툴을 사용해서 개발을 해야 할가요?

 

 

그럼 위에 질문에 대해서 답변하고 시작하도록 하겠습니다.

 

1 .파이썬2? 파이썬3? 과연 어떤걸 어떻게 시작해야하나요? 파이썬3

파이썬3를 사용해야 합니다.

왜 파이썬3를 써야하나요? 
어쩔수 없습니다. 현재 파이썬 2.7의 버전은 2.7.17입니다. 2020년 1월에 2.7.18 버전의 코드 프리징이 진행되고, 4월에는 2.x의 최종 버전인 2.7.18이 출시됩니다. 이후로는 더이상 업데이트가 이뤄지지 않습니다.
추가적으로 알아야 할 내용! 파이썬2와 파이썬3는 호환이 되지 않으니 꼭 알고 계세요.

 

2. 우리는 어떤 툴을 사용해서 개발을 해야 할가요? 파이참(Pycharm)

파이썬 개발을 위한 툴 선택!

개인적인 것이라 추천은 드리나 사람에 따라 다르니 참고해 주셨으면 합니다. 개발을 진행하면서 여러가지의 툴을 사용해 봤습니다. VSCode, 아나콘다, 주피터 노트북, 파이참 이런 툴들을 써서 코딩을 해보았습니다. 간단하게 실습하는 정도면 또는 데이터 분석용이라면 주피터 노트북을 추천 드립니다. 사용도 간단하니 깔끔하게 코딩도 가능합니다. 허나 테스트용이 아니라 프로그램을 짜신다면 파이참(PyCharm)을 추천드립니다. 파이참을 써야하는 이유는 정말 많은 것같은데 간단하게 몇가지만 말씀드리겠습니다.

파이참을 추천하는 이유!
1. PyCharm은 무료입니다. 그리고 유료 버전도 있긴한데 일반적으로 무료 버전으로도 충분합니다.
2. 사용하면서 여러 파이썬 버전을 선택하여 사용할 수 있습니다. (그럴 일이 없는게 좋으나 참고 또는 실행이 필요할 수 있죠)
3. 패키지 설치가 정말 쉽습니다. 패키지가 설치 되어 있지 않다면 빨간줄이 쳐지는데 거기서 쉽게 설치됩니다.(일반적으론 PIP를 사용하지만 그보다 더 쉬워요)
4. 코드 실행이 간단합니다. 전체 프로그램을 실행하거나 간단한 테스트도 할 수 있습니다.
5. 파일 관리가 쉽고 함수 역시 보기 쉽게 정리가 됩니다.
5. 디버깅 기능이 좋으며, Pandas 데이터 프레임(모르시면 패스)도 엑셀처럼 보여줍니다.

 

 

 

반응형

'파이썬 > 파이썬 기초 강의' 카테고리의 다른 글

3.2 파이썬 Hello Python  (0) 2021.01.05
3.1 파이썬 설치 하기  (0) 2021.01.04
3. 파이썬 시작하기!  (0) 2021.01.04
2. 그래서 왜 파이썬?  (0) 2021.01.04
1. Python이란 무엇인가요?  (0) 2021.01.04
반응형

 

 

 

안녕하세요 봉자씨입니다

 

python으로 프로그램을 짜서 nohup으로 해서 백그라운드 작업을 실행했습니다.

그런데 잘 돌아 가던 프로그램이 상대 서버에 의해서 강제 킬 다하는 경우가 발생했습니다.

그럼 이 상황에서 어떻게 할까...

고민을 하다가 결국 이 방법을 사용하게 되었습니다.

죽이면 다시 살리고 죽이면 다시 살리는 일명 좀비로 살려서 계속 돌리는...

바로  방법.

 

만약에 프로세스가 돌고 있다면 다시 실행하지 않습니다.

그러나...

프로세스가 죽었거나 돌고 있지 않는다면 프로세스를 다시 돌리게 하였습니다.

 

아래와 같이 실행하시면 됩니다.

 

일단 기존 방식은 아래와 같습니다.

 

[root@ths SlackApp]# nohup python AppReviewer.py > AppReviewerLog &

설명 : AppReviewer라는 파이썬 파일을 백그라운드에서 돌리되 AppReviewerLog

         해당 파일로 로그가 쌓이도록 했습니다.

그러나 아래와 같은 로그로 프로그램이 죽어버렸습니다.

urllib.error.URLError: <urlopen error EOF occurred in violation of protocol (_ssl.c:847)>

 

그래서 아래와 같이 다시 돌리게 되었습니다.

해당 프로세스를 crontab에 등록해서 관리합니다.

그러기 위해서 아래와 같은 과정이 필요합니다.

 

먼저 해당 명령어를 입력합니다.

crontab -e

크론탭에 등록된 프로세스가 쭉나올 겁니다. 그럼 아래와 같이 명령어를 추가합니다.

 

*/5 * * * * pgrep -f AppReviewer.py || nohup python /pyApp/SlackApp/AppReviewer.py > AppReviewerLog

 

이제부터 5분만에 한번씩 프로세스를 확인합니다.

그리고 프로세스가 죽었으면? 다시 실행합니다.

프로세스가 살아서 도록 있다면? 스킵합니다.

 

이렇게 된다면 프로세스가 죽어도 다시 도는 프로세스가 완성이 됩니다.

 

 

 

 
반응형