반응형





지금 인턴하고 있는 회사 첫 출근에 과장님께 과제로 받은 것이
자신있는 언어로 사칙연산이 가능한 계산기를 만들고 키보드와 연동하라는 것이었습니다. 
그나마 익숙한 자바로 사칙연산하는 계산기를 만들며 생각난 것이
파이썬으로 하면 정말 간단한 솔루션이 나올것 같은 예감이 들었습니다.
역시나 구글링을 하니 제 예감이 적중했더군요.
50줄도 안되는 계산기입니다...

파이썬에는 eval()이라는 내장 함수가 있습니다.
이 eval() 함수는 인자로 받은 텍스트 데이터를 파이썬 인터프리터가 번역할 수 있는 파이썬 코드로 변환합니다.
GUI는 tkinter 모듈을 이용하면 간단히 만들 수 있군요.

예를 들어 result =eval("1+2*3/4") 이라고 하면 인자에 들어간  텍스트를 파이썬 코드로 변환하여
result에는 1+2*3/4 의 연산 결과인 2.25가 들어가게 되는 것이죠.

정말 획기적이지 않나요??
텍스트 창 안의 내용을 그대로 계산하는 초간단 계산기 였습니다.!!
키보드와 바로 연동되는 것은 아니지만
텍스트 창 안에 수식을 입력하면 바로 계산되어 나왔습니다.

역시 파이썬이 강력한 이유는 유용한 내장함수와 다양한 모듈들 이겠지요!!

코드 출처 : http://lexlove.egloos.com/10763317
#calculator.py
#-*-coding=utf-8-*-
#GUI를 만들어주는 tkinter 모듈을 임포트!
from tkinter import *

#이벤트 처리함수
def enter(btn):
    if btn == 'C':
        ent.delete(0, END)
    elif btn == '=':
        #eval()함수는 텍스트로된 데이터를 바로 파이썬 코드로 변환합니다.대박..
        #그래서 ent라는 곳에 입력된 수식을 바로 계산해 냅니다.
        ans = eval(ent.get())
        ent.delete(0, END)
        ent.insert(0, ans)
    else:
        #C와 =을 제외한 버튼은 그대로 ent에 추가.
        ent.insert(END, btn)

def quit():
    root.destroy()
    root.quit()
#창만들기
root=Tk()
root.title('계산기')

#숫자 입력란 만들기
ent=Entry(root)
ent.insert(0, ' ')
ent.pack(pady=5)

#숫자 버튼 만들기
buttons = ['7410', '852=', '963+', 'C/*-']
for col in buttons:
    frm=Frame(root)
    frm.pack(side=LEFT)
    for row in col :
        btn=Button(frm, text=row, command=(lambda char=row: enter(char)))
        btn.pack(fill=X, padx=5, pady=5)

#프로그램 실행
root.mainloop()
반응형
반응형




PyScripter를 사용해서 공부를 시작하려고 하는데 이녀석이 초반부터 사람 갈 길을 막습니다.

작성할 때 한글을 포함한 문서를 저장하고 다시 불러오면 한글이 다 깨져 버리네요.

 



헉 이게 무슨 음모인가요?
포스팅 할려고 "한글"이라 하니 "?쒯?" 이라 뱉어 주시는 PyScripter님. 유머감각도 넘치셔라;;;
ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ




수업 시간에 배운 방법은 File encoding comment를 적어주는 방법이었습니다. 아래 처럼 하면 되죠.

[Edit] - [Insert Template] 을 선택해서 File encoding comment를 추가하는 것입니다.  직접 타이핑 해도 되구요.




이렇게 하면 문서를 닫고 다시 불러와도 한글이 깨지지 않습니다. 하지만 이 방법은 솔직히 좀 불편하더군요. 추가해줘야하니깐요.
(물론 아예 처음부터 추가되게 하는 방법이 있겠지만요.)

그래서 열심히 PyScripter의 메뉴를 뒤져 봤습니다!! 
안 되면 되게하라!!

역시나 친절히도 파일 포멧을 설정할 수 있는 부분이 바로 근처에 있더군요.
영어권에서 사용하는 녀석이라 파일 포멧이 ANSI로 되어 있었습니다. 
그래서 이걸 과감히 UTF-8로 바꿔 줬습니다.


다시 문서를 저장하고 불러오니 한글이 전혀 깨지지 않는군요.^^
이제 해결 했으니 다시 열공모드로 고고싱!!

아아.. 그런데..
뒤늦게 문제점 하나를 발견했습니다.ㅠㅠ
파일마다 새로 file format을 정해줘야하네요....








반응형
반응형


Python을 설치하면 기본적으로 파이썬 셸과 IDLE이 설치됩니다.
하지만 윈도우에서 텍스트 에디터 또는 이클립스 등 다른 개발환경에 익숙해져 버린 저는 조금 어색하기만 합니다.

그래서 수소문하다보니 PyScripter라는 무료 IDE(통합개발환경:Integrated development environment)이 있더군요^^ 아싸!

어떤 언어를 배우기 위해서 환경을 꾸리는 일은 너무도 당연한 일이라고 생각해서 지나칠 수 있지만
대부분의 책머리에 이런 환경을 꾸리는 방법을 설명하듯이 저도 시작합니다!!

PyScripter 설치하기!!

먼저 PyScripter를 다운 받기 위해서 http://code.google.com/p/pyscripter/ 에 접속합니다. 
구글에서 PyScripter를 검색하셔도 링크가 나옵니다.



상단 메뉴의 Downloads를 클릭하기면 PyScripter 설치 파일을 다운로드 할 수 있습니다.



압축 파일 하나와 설치 파일 두개가 보일 겁니다. 자신의 컴퓨터 환경에 맞는 버전을 다운 받으시면 됩니다.
(저는 64bit 윈도우를 사용하기 때문에 64용 설치 파일을 다운 받았습니다.)



이제 다운로드 받은 파일을 실행합니다!
인터넷 익스플로러의 SmartScreen 필터 기능을 사용하신다면 설치 파일을 실행시 경고 메시지가 뜰 수 있습니다.
이 때  [작업] 버튼을 눌러 프로그램을 강제로 실행시켜 주시면 설치가 진행됩니다.



지금부터는 너무나 쉽습니다. 곰플레이어 설치하듯이 네이트온 설치하듯이 넘어가주시면 됩니다.



우선 설치할 폴더 경로를 확인하고 다음으로 넘어갑니다.



시작 메뉴에 등록할 이름을 지정하고 다음으로 넘어갑니다.



설치할 PyScripter에 대한 정보를 확인하고 다음으로 넘어갑니다.
제가 받은 PyScripter는 최소한 Python2.4 버전 이상은 설치 돼있어야 한다고 적혀있네요.



다음 바탕화면과 빠른실행메뉴에 추가적으로 아이콘을 생성할지 선택하고,
탐색기의 context menu에 "Edit with PyScripter"라는 항목을 넣을지 선택합니다.(마우스 우클릭 시 나오는 메뉴에요.)



실제 설치가 되기전 마지막으로 선택 사항들을 확인하고 Install 버튼을 클릭!!!!



설치는 순식간에 끝납니다.(캡쳐하기조차 힘들었네요;;;)



설치가 끝나고 또 PyScripter에 대한 정보가 출력됩니다 .블라블라~~ @ㅁ@;;



설치가 끝났습니다 PyScripter를 바로 실행 하시려면 Launch PyScripter를 체크하고 Finish를 눌러줍니다.



짜잔~~ 오오 그래도 뭐가 편집기도 있고 탐색기도 있고 파이썬 인터프리터도 함께 뜨는 모양새 있는 파이썬 개발 환경이 설치 됬습니다. 이제 공부 열심히 할 일만 남았네요 에공. 화이팅!!

 

 

 

 

 

 

 

반응형
반응형

제가 자바에서 실수형 그러니간 double 형으로 변수를 정하고 0.5라는 결과는 기대하며 아래와 같이 작성했습니다.

double num = 1/2;

이런 식으로 해서 num을 콘솔에 출력해보니 에잉?? 게 뭡니까??? 0.0이 출력되네요 ㅠㅠ




제가 실수 한게 무엇일까요??
갑자기 옛날에 자바를 처음 배울때 읽었던 한 문장이 생각 났습니다.
자바는 형검사를 엄격히 한다? 물론 관련 없는 생각이었을 수도 있지만 이 문장이 생각나더군요

아무튼 제가 double 형(실수)으로 num이라는 변수를 선언하기는 했지만 그 속에 있는 오퍼레이터 /(나누기)는 1이라는 정수와 2라는 정수를 연산한 것입니다.
즉 정수와 정수를 연산했기 때문에 결과도 정수가 나와야 했던 것입니다. 그래서 결과 값에서 0에 가까운 정수를 결과로 취하게 됩니다.
즉 3/2를 하면 1.0, 5/2를 하면 2.0이 된다는 말이죠.

자바에서 이 문제를 해결하는 방법은 간단합니다. 오퍼레이터 /를 기준으로 양옆의 데이터 중 하나라도 실수형 데이터라는 것을 알려주면 됩니다.
아래 처럼 말이죠.





제가 요즘 파이썬을 공부하느라 데이터 타입에 무심해진건가 하는 생각을 하게 됐습니다.

하지만 제가 지금 고민 하는 것은 분명히 학교에서 배우기를 '정수 나누기 정수는 실수이다' 라고 배웠습니다.
즉 파이썬은 이 내용 그대로를 출력으로 제공하지만 대부분의 언어는 아니라는 사실이죠.

학교의 어떤 교수님께 물었더니 단호히 말씀하십니다.
 "전 파이썬을 싫어해요. 그건 스크립트 언어일 뿐이고, 정수와 정수를 계산한 결과가 실수로 나오는 그건 잘못된 것이에요."

현업에 계신 어떤 전문가분께 물었더니 이렇게 말씀하십니다.
"옛날에는 정수 나누기 정수가 정수라고 해서 크게 문제 될 것이 없었지요. 하지만 '빅데이터'시대에서 데이터 마이닝을 위해서는 파이썬의 방식이 더 좋다고 생각합니다."

예전에 읽었던 컴퓨터에 관한 책에서 본 한마디가 생각납니다.
"인간과 더 가까이!"
컴퓨터의 최종 목적이 인간과 더 가까워지는 것이라고 하더군요. 그렇다면 컴퓨터가 인간과 더 유사하게 동작하기 위해서 이런 사소한 문제부터 해결되어야 하는 것 아닐까요?

중학생에게 물어봐도 1/2은 0.5라고 대답하지 0.0이라고 답하지는 않을테니까요.

반응형
반응형


파이썬(Python)에 대한 몇몇 글을 쓴 적이 있는데 정작 파이썬을 설치하는 방법은 소개한 적이 없네요.
이제 막 파이썬을 시작하시는 분들을 위해서 파이썬 설치에 대해서 간략히 소개하겠습니다^^
저는 Python 3.2.2 버전으로 공부를 하고 있으므로 이 버전의 설치에 대해서 쓰도록 하겠습니다.

우선 파이썬이라는 언어는 공개되어 있고 무료입니다.
즉 필요하다면 다운받아서 사용하면 된다는 것이죠.


먼저 http://www.python.org에 접속합니다.
구글이나 네이버등 검색 사이트에서 'python' 또는 '파이썬'으로 검색하셔도 최상위에 검색 결과가 나올겁니다.



페이지 왼쪽에 몇가지 메뉴가 보입니다. 이중에 DOWNLOAD를 클릭하세요!



Download Python 페이지에서 스크롤을 조금만 내리시면 Python 3.2.2 에대한 여러가지 배포판 링크가 보입니다.
여러분의 컴퓨터 환경에 맞는 bit와 OS를 선택해서 다운 받습니다. 
저는 Windows 64bit 환경에서 사용할 것이므로 Python 3.2.2 Windows X86_64 MSI Installer를 다운 받았습니다.



다운로드가 완료되면 설치 파일을 실행 합니다.



윈도우에서의 설치는 우리가 흔히 알집이나 곰플레이어를 설치할 때처럼 편하게 진행됩니다.
먼저 윈도우 사용자 중 누가 파이썬을 사용할지에 대한 선택부터 시작됩니다. 저는 제 컴퓨터를 혼자 쓰므로 Install for all users를 선택했습니다. 혹시 여러 사용자가 같이 사용하는 컴퓨터에서 혼자 사용하시려면 Install just for me를 선택하시면 됩니다.



그 다음 Python을 설치할 폴더를 정해줍니다. Python 3.2.2의 기본 경로는 C:\Python32\로 지정되어 있군요.



마지막으로 선택사항에 대해 물어보는데요 다음으로 넘어가시면 되겠습니다. 각 항목을 선택하면 아래 상자에 항목에 대한 설명이 나옵니다. 참고하세요.



설치가 진행됩니다.
진행 중 아래와 같이 사용자 계정 컨트롤 메시지가 나온다면 반드시 '예'를 클릭 하셔서 설치가 진행되도록 해주세요. '아니오'를 클릭하시면 당연히 설치가 안됩니다.



설치가 완료되었습니다. 이제 파이썬을 사용할 수 있습니다.

 

시작 메뉴에서 Python 3.2라는 폴더가 등록 되었군요.



이대로 파이썬을 사용할 수도 있지만 좀 더 편리하고 원활한 사용을 위해서 환경 변수 Path에 Python이 설치된 경로를 추가해 줍니다.
[제어판] - [시스템 및 보안] - [시스템] 에서 왼쪽 메뉴의 [고급 시스템 설정] 을 선택합니다.



시스템 속성 창이 뜹니다. 그러면 고급 탭을 선택하고 아래의 환경 변수를 선택합니다.


환경 변수 창에서 시스템 변수 Path를 찾아서 선택한 후 편집을 클릭합니다.


변수 값에 다른 값들이 있다면 지우지 마시고 그 변수의 마지막에 ;(세미콜론)을 적으시고 그 다음에 Python의 설치된 경로명을 적어줍니다.


이렇게 환경 변수 Path를 지정해 주시면 사용자가 어떤 위치에서 python을 실행 시키더라도 Python 설치 경로에 있는 Python.exe가 실행 됩니다.



이렇게 파이썬을 공부하기 위한 첫번째 준비! Python 설치하기가 끝났습니다^^
다같이 Python 세계에 빠져 봅시다!
반응형
반응형

파이썬에서 리스트는 값들의 나열로 여러 종류의 값을 담을 수 있고 문자열 처럼 0부터 시작하는 인덱스를 가지고 있어서 슬라이싱도 가능합니다.



[ ] 를 이용해서 리스트를 만듭니다.





append() 메서드를 사용해 기존 리스트에 값을 추가할 수 있습니다. 이 때 값은 리스트의 맨 뒤에 추가됩니다.
insert() 메서드를 사용하면 append()와 다르게 리스트의 원하는 위치에 값을 추가할 수 있습니다. 이 때 인자 값은 리스트의 인덱스입니다.
extend() 메서드로는 튜플이나 리스트 같은 여러 값을 한번에 삽입할 수 있습니다. 이 때도 append() 처럼 맨 뒤에 추가됩니다.




리스트에서는 + 연산자를 지원하는데 이 것을 사용할 때에는 튜플이나 리스트 처럼 반복되는 값을 넣어야 합니다. 만약에 문자열을 넣을 경우에는 문자열의 문자 하나하나가 슬라이싱되서 리스트에 들어가게됩니다.




index() 메서드를 사용해서 특정 값의 인덱스를 찾을 수 있습니다. 이 때 index()는 처음 찾은 값만을 반환 합니다. 만약 리스트의 인덱스 0에 '슬기'가 있고 5에도 '슬기'가 있으면 0만을 반환합니다. 그래서 index()의 두 번째 인자에 시작점을 세 번째 인자에 종료점을 지정해 줄 수있으며 범위 안에 특정 값이 없을 경우 리스트 내에 그 값이 없다는 에러를 출력합니다.




pop() 메서드로 리스트에서 값을 뽑아낼 수 있습니다. 인자가 없을 경우 뒤에서부터 차례로 값을 뽑고, 인자가 있을 경우 해당 위치의 값이 뽑힙니다. 뽑힌다고 표현한 이유는 pop된 값은 리스트에서 없어지기 때문입니다.




count() 메서드는 해당 값이 리스트 안에 몇개 있는지를 반환합니다.




remove() 메서드는 말 그대로 해당 값을 삭제합니다. 동일한 값이 있을 경우에는 앞 쪽의 값을 삭제합니다.




sort() 메서드와 reverse() 메서드로 리스트를 정렬할 수 있습니다. sort()는 순방향, reverse()는 역방향 입니다.
이 두 메서드는 정말 편리한 메서드라느 생각이 드네요 ㅎㅎ




그리고 sort()의 key값을 정해서 자신이 원하는 방식으로 리스트를 정렬할 수 있습니다.
아래는 단어의 마지막 문자를 비교해서 정렬하는 것을 보여주는 코드입니다.
단어의 마지막 문자를 반환하는 함수 sorttest()를 정의하고 sort()메서드의 key로 지정합니다.



단어의 마지막 문자를 기준으로 오름 차순으로 정렬된 것을 볼수 있습니다.

reverse를 True로 하면 역방향도 가능합니다.

 

반응형
반응형

파이썬에서는 영어는 물론 한글도 문제없이 화면에 출력됩니다. 하지만 이런 출력이 내 컴퓨터뿐 아니라 다른 사람의 컴퓨터 특히 다른 언어권과 운영체제에서도 동일하다고는 확언할 수 없습니다.

세계 각국의 다양한 문자 표현하기 위한 표현 방식을 인코딩(Encoding)이라고 합니다.

각각의 언어권마다 서로 다른 인코딩을 사용한다면 프로그램을 다른 나라 사람도 사용하게 하려면 엄청 애를 먹을 겁니다. 그래서 세계의 모든 문자를 한 방식으로 표현할 수 있는 유니코드(Unicode)를 사용합니다.



파이썬 3.x 에서는 일반 문자열이 기본적으로 유니코드입니다. 즉 프로그램에서 글씨가 깨질 걱정을 할 필요가 없는 것입니다. 유니코드를 제외한 나머지 인코딩된 문자는 bytes로 표현됩니다.
그리고 문자를 특정 코드로 인코딩하고 싶을 때는 encode()를 사용하고




어떤 문자의 유니코드 값을 알고 싶을 떄는 ord()를 사용하고




어떤 유니코드 값에 해당하는 문자를 알고 싶을 때는 chr()을 사용합니다.





현재 시스템의 인코딩이 뭔지 알고 싶을 때는 아래와 같이 확일 할 수 있습니다.

반응형
반응형

파이썬(python)에서는 몇 가지 문자열 연산자를 지원합니다.
 
' + ' 는 문자열을 병합합니다.
' + ' 는 문자열 상수끼리에서는 생략할 수 있습니다.
 
' * '는 문자열을 반복 시킵니니다.

확인해 보면 아래와 같습니다.

 



그리고 파이썬에서는 문자열은 a[x] 형태로 인덱싱 됩니다. 제일 첫 문자는 0부터 시작합니다.
하지만 문자열 인덱싱을 이용한 문자열 변경은 허용되지 않습니다.





인덱싱을 사용해서 특정 위치의 한 문자 뿐만 아니라 문자열을 꺼낼 수도 있는데 이를 슬라이싱(slicing)이라고 합니다. 문자열 변수 뒤에 [시작위치:끝위치]를 분여서 원하는 문자열을 꺼냅니다.

시작 위치는 0을 문자열 첫 문자의 바깥쪽(왼쪽)으로 시작해서 한칸씩 이동합니다. 'kkoseul'을 예로 들면
0 k 1 k 2 o 3 s 4 e 5 u 6 l 7
이 됩니다.

만약에 시작 위치가 음수 인 경우는 문자열의 끝에서 부터 세어갑니다.
(-7) k (-6) k (-5) o (-4) s (-3) e (-2) u (-1) l

그리고 a[:2]나 a[-4:] 처럼 위치를 생략한 경우 각각 문자열의 처음이나 끝으로 처리합니다.



title에 'kkoseul'을 넣고 슬라이싱을 해보면 다음과 같은 결과가 나옵니다.





그리고 :를 이용해 인덱스를 증가시킬 수를 정할 수 있습니다. a[::2] 처럼 입렵하면 문자열의 처음부터 2칸 씩넘어서 문자를 출력합니다. 그리고 이 증가 인자가 생략되면 1씩 증가시킵니다.





그리고 문자열이나 수치들 사이의 변환은 각 타입 클래스의 생선자를 사용합니다.
아래를 보면 각가의 타입의 변한것을 확인할 수 있습니다.
출력을 확인해 보니 정수 1024로 입력한 a는 1024.0으로, 문자열 "500"으로 입력한 b는 정수 500으로, 실수 1.414로 입력한 c는 문자열 '1.414'로 출력되네요^^



이렇게 정리를 하다보니 파이썬은 문자열을 처리하는 일이나 각 자료의 타입을 변환하기에 제가 아는 다른 언어에 비해 편리하다는 생각을 하게 되네요. 앞으로 계속될 파이썬 공부가 기대됩니다^^




반응형
반응형

 


파이썬에서 변수들은 해당 객체의 주소를 가지고 있습니다.
예를 들어 a=1이라고 하면 a가 1이라는 값을 가지는 것이 아니라 1이라는 객체가 생성되고 이 객체의 주소가 변수에 저장되는 것입니다.

객체의 고유한 id 값을 반환하는 id() 함수를 사용해서 확인해 보겠습니다.

리스트로 만든 a는 리스트가 있는 주소를 기억 하고 b 역시 이 주소를 복사하기 때문에 리스트 안의 내용을 수정하면 b를 호출해도 수정된 내용이 표시됩니다. 새로운 객체를 생성한 것이 아니라 객체 내의 a[0] 내용만 바꿨으므로 객체의 id역시 처음과 똑같이 유지 되는군요.

한마디로 말하자면 a와 b는 같은 객체를 공유하고있는 것입니다.



하지만 integer형으로 a와 b를 만들었을 때는 조금 다른 결과가 나오네요. a에 다른 값을 넣으니 a의 id가 바뀐 것을 확인할 수 있습니다. 아마도 이런 타입에서는 변수의 값이 바뀌면 새로운 id로 객체가 생성되나 봅니다. 정확한 속 사정을 아시는 분은 코멘트 좀 부탁드려요~~!




혹시나 해서 자바에서도 제 나름 비슷하게 따라 해봤는데 유사한 결과가 나오네요.






리스트의 경우에 a와 b가 같은 객체를 공유하지 않게하려면 아래와 같이 [:]을 써서 복사하면 됩니다.
복사 후에 id를 확인해 보면 서로 다른 id를 가진 것을 확인할 수 있습니다. a[0]만 수정했을 때 당연히 a와 b를 호출하면 서로 다른 값이 나옵니다.





리스트 이외의 경우는 copy 모듈을 사용합니다. copy 모듈의 copy()함수는 주소가 복사되는 얕은 복사(shallow copy)를 하며, deepcopy()함수는 객체를 공유하지 않는 깊은 복사(deep copy)를 합니다.



다시 한번 자세히 비교해 보면 다음과 같습니다.
마지막 줄에 리스트 각각의 id는 다르지만 그 리스트의 1번 인덱스의 id를 비교해 보면 a[1]와 cp[1]은 같은 id를 가지고 있는 것을 확인 할 수 있습니다. 분명히 copy()가 얕은 복사라고 했는데 a와 cp의 id가 서로 다르게 나와서 처음에 많이 헷갈렸습니다.


프로그래밍할 때 얕은 복사와 깊은 복사에 유의해서 사용해야겠네요^^

 


반응형
반응형

파이썬에서 문자열은 어떻게 나타낼까요?

파이썬에서는 인용부호인 ''" "로 묶어서 문자열을 표현합니다. '로 시작했다면 '로 끝나고 "로 시작했다면 "로 끝나야겠지요.

 

그리고 다량의 문자열을 넣기 위해 """ 이나 '''을 사용할 수 있습니다. 이 경우는 줄바꿈이나 탭도 그대로 적용됩니다.



"""이나 '''을 사용하지 않고 줄바꿈이나 탭 등을 표현하고 싶을 때는 몇몇 다른 언어들과 마찬가지로 이스케이프 문자(Escape sequence)를 이용합니다.

\n : line feed 줄바꿈
\t : tab
\r : carriage return
\0 : null
\\ : back slash (한글 글씨체에서는 \가 되겠지요?)
\' : single quotation mark(단일 인용 부호)
\" : double quotation mark(다중 인용 부호)


그리고 문자열 앞에 r 을 붙여서 raw문자열을 만들 우 있습니다. 이 문자열에서는 이스케이프 문자가 적용되지 않고 인용 부호 안의 문자가 그대로 출력됩니다.


반응형
반응형

파이썬에서 수치를 가공하기 위한 연산자는 어떤 것들이 있는지 알아보죠.

우선 치환연산자 또는 대입 연산자라고 불리는 = 이 있고, 사칙 연산을 위한 +, -, *, / 가 있습니다 *는 곱하기고, /는 나누기가 되겠지요.그리고 나머지를 구하기 위한 %연산자와 거듭제곱을 표현하기 위한 ** 연산자가 있습니다. 마지막으로 나눈 결과의 정수부분만을 취하는 // 연산자도 있습니다.

=      +      -      *      /     %     **     // 


각각 어떤 출력을 하는지 확인해 보면 아래와 같군요.



그럼 간단히 원의 넓이와 삼각형의 넓이를 구해볼까요?
우리가 알고 있는 수학 공식을 그대로 써주면 됩니다.

반응형
반응형

이번 포스트에서는 파이썬의 자료형(data type)중 수치에 대해서 알아보겠습니다.

수치형은 숫자를 나타내는 자료형입니다. 종류는 int, long, float, complex 등이 있습니다.
단, 파이썬 2.x 버전에서는 long 형을 제공했지만 파이썬 3.x 버전에서는 long형이 없어지고 모두 int형으로 처리됩니다.

입력한 각 수치의 수치형을 알아보기 위해서 type() 이라는 함수를 사용할 겁니다. type() 함수는 인자로 준 자료형을 반환하는 함수입니다.

int 는 정수(integer)이며, 정수를 입력하면 10진수 정수로 처리합니다.
float 은 정수를 제외한 실수 를 입력하면 10진수 실수로 처리합니다. 소수하고 생각하시면 편할 것 같네요. 그리고 e를 써서 지수형으로 표현할 수 있습니다.




■ 정수 앞에 0b 를 붙이면 2진수, 0o를 붙이면 8진수, 0x를 붙이면 16진수로 처리합니다.



■ 10진수를 입력 받아서 다른 수체계로 변환해주는 함수도 있습니다. 단, 이때 출력되는 결과는 수치형이 아닌 문자열입니다.



■ 파이썬에서는 실수보다 넓은 범위인 복소수를 나타내고 사용할 수 있습니다. 학교에서 배웠던 복소수의 모양 그대로 실수부와 허수부로 입력 해주면 complex 형으로 처리합니다.



imag는 허수(imaginary number)를 나타내고 real은 실수(real number)를 나타냅니다. 그리고 conjugate() 메서드로 켤레복소수(conjugate complex number)를 구할 수 있습니다.
반응형
반응형

 

■ 프로그램이 연산을 수행하기 위해서 값들은 임시로 저장하거나 영구적으로 저장할 곳이 필요한데 이런 저장소를 변수(variable)라고 하고 이런 저장소에 붙인 이름을 변수명이라고 합니다. 변수는 유형에 따라 서로 다른 자료형(type)을 가집니다. 우선 파이썬(Python)에서는 어떤 변수명을 사용할 수 있는지 알아보겠습니다.

■ 파이썬(Python) 에서는 변수(variable)의 이름으로 문자숫자 그리고 밑줄(_)을 사용할 수 있습니다. 
단, 숫자는 변수 이름의 제일 처음에 나올 수 없습니다.

예를 들면  n, number, num3, num_4 , _value 등의 형태는 사용할 수 있지만 2_numberhi~, hello! 등과 같이 숫자가 앞에 있거나 특수 문자가 포함된 변수 명은 사용할 수 없습니다.



사용 가능한 변수명을 입력하면 변수가 정의되지 않았다는 NameError가 뜨는데 사용할 수 없는 변수명을 입력한 경우에는 구문에 맞지 않다는 SyntaxError가 발생하는군요.


 
■ 그리고 파이썬(Python)은 대소문자를 구분하기 때문에 변수를 만들거나 사용할 때 주의해야 합니다.




변수 각각에 값을 대입해서 확인해 보니 대소문자를 구분하는 것을 확인 할 수 있습니다.




■ 또 같은 파이썬(Python)의 예약어는 변수명으로 사용할 수 없습니다.
파이썬의 예약어는 다음과 같습니다.

and,  as,  assert,  break,  class,  continue,  def,  del,  elif,  else,  except,  is,  finally,  for, from,  global,  if,  import,  in,  lambda,  nonlocal,  not,  or,  pass,  raise,  return,  try,  while,  with, yield


예약어 중에 if를 변수 명으로 사용하니 SyntaxError가 나는군요.


■ 마지막으로 보통 변수에 값을 대입할 때 대입연산자(=)를 사용하는데 파이썬에서는 튜플(tuple)이나 리스트(list)를 사용하기도 합니다.


각각의 순서에 따라 변수에 값이 대입된 것을 확인할 수 있었습니다.

리스트는 []로 묶어서 표현하는 값들의 나열로 순서가 있으며 0부터 시작하는 인덱스를 가지고 있습니다. 튜플은 리스트와 유사하나 ()로 묶어서 표현하며 읽기전용 입니다.
반응형

+ Recent posts