파이썬 4일차

Programing/Python 2012. 5. 11. 16:32 |

- 함수

 

>>> def 함수명 ( 인자 )

 

파이썬은 함수선언 할 때 꼭 def을 붙혀 주면된다.

 

 

- 인자 여러가지 받을 방법

def 함수이름(*입력변수):
   
<수행할 문장>
   
...

 

입력변수 앞에 *을 붙혀주면 만사 오키~~

 

def jaeho(*test):
    u = 0
    for i in test:
        print (i + u)
        u = i + u

 

jaeho(5,3,4,5)

5
8
12
17

 

 

>>> def sum_mul(choice, *args):
...     if choice == "sum":
...         result = 0
...         for i in args:
...             result = result + i
...     elif choice == "mul":
...         result = 1
...         for i in args:
...             result = result * i
...     return result
...
>>>

 

>>> result = sum_mul('sum', 1,2,3,4,5)
>>> print result

15
>>> result = sum_mul('mul', 1,2,3,4,5)
>>> print result
120

 

리턴값을 여러개 받는 방법

 

>>> def ab( i,o):
...     return i + o, o * i, i * i, o *o
...
>>> ab(2,5)
(7, 10, 4, 25)
>>> a,b,c,d = ab(3,6)
>>> a
9
>>> b
18
>>> c
9
>>> d
36
>>>

 

 

 

 

함수 내에서 선언된 변수의 효력 범위

 

함수안에서 사용할 변수의 이름을 함수 밖에서 사용한 이름과 동일하게 사용한다면 어떻게 될까? 이런 궁금증이 떠올랐던 독자라면 이곳에서 확실하게 알 수 있을 것이다.


아래의 예를 보자.

a = 1 
def vartest(a): 
    a = a +1 

vartest(a) 
print a

먼저 a라는 변수를 생성하고 1을 대입한다. 그리고 입력으로 들어온 값을 1만큼 더해주고 리턴값은 돌려주지 않는 vartest 함수에 입력 값으로 a를 주었다. 그 다음에 a의 값을 출력하게 하였다. 당연히 vartest에서 a를 1만큼 더했으니까 2가 출력되어야 할 것 같지만 프로그램 소스를 작성해서 실행시켜 보면 결과 값이 1이 나온다.

 

그 이유는 함수안에서 새로 만들어진 변수는 함수안에서만 쓰여지는 변수이기 때문이다. 즉 def vartest(a)처럼 하면 이때 입력 인수를 뜻하는 변수 a는 함수안에서만 쓰이는 변수이지 함수 밖의 변수 a가 아니라는 말이다.


위에서 변수이름을 a 로한 vartest함수는 다음처럼 변수이름을 b로한 vartest와 완전히 동일한 것이다.

def vartest(b): 
    b = b + 1

즉 함수에서 쓰이는 변수는 함수 밖의 변수이름들과는 전혀 상관 없다는 말이다. 따라서 위에서 보았던 vartest의 a는 1이란 값을 입력으로 받아서 1만큼 더해주어 a가 2가 되지만 그것은 함수 내의 a를 뜻하는 것이지 함수 밖의 변수 a와는 전혀 다르다는 말이다.


다음의 예를 보면 더욱 정확하게 이해할 수 있을 것이다.

def vartest(a): 
    a = a + 1 

vartest(3) 
print a

위의 프로그램 소스를 에디터로 작성해서 실행시키면 어떻게 될까? 에러가 날 것이라 생각한 독자는 모든 것을 이해한 독자이다. vartest(3)을 수행하면 vartest라는 함수내에서 a는 4가 되지만 함수를 끝내고 난뒤에 print a라는 문장은 에러가 나게 된다. 그 이유는 a라는 변수는 어디에도 찾아 볼 수가 없기 때문이다. 다시 말하지만 함수 내에서 쓰이는 변수는 함수내에서 쓰일 뿐이지 함수 밖에서 사용될 수 있는 것이 아니다. 이것에 대해서 이해하는 것은 매우 중요하다.


그렇다면 vartest라는 함수를 이용해서 함수 외부의 a를 1만큼 증가시킬 수 있는 방법은 없을까? 라는 의문이 떠오르게 된다. 두 가지 해결 방법이 있을 수 있다.


첫 번째 방법

a = 1 
def vartest(a): 
    a = a +1 
    return a 

a = vartest(a) 
print a

첫 번째 방법은 return을 이용하는 방법이다. vartest함수는 입력으로 들어온 값을 1만큼 더한 값을 돌려준다. 따라서 a = vartest(a)처럼 하면 a가 vartest함수의 리턴값으로 바뀌게 되는 것이다. 여기서도 물론 vartest함수 안의 a변수는 함수 밖의 a와는 다른 것이다.


두 번째 방법

a = 1 
def vartest(): 
    global a 
    a = a+1 

vartest() 
print a

두 번째 방법은 global이라는 명령어를 이용하는 방법이다. 위의 예에서 보듯이 vartest안의 global a라는 문장은 함수 안에서 함수 밖의 a변수를 직접 사용하겠다는 말이다. 보통 프로그래밍을 할 때 global이라는 것은 쓰지 않는 것이 좋다. 왜냐하면 함수는 독립적으로 존재하는 것이 좋기 때문이다. 외부 변수에 종속적인 함수는 그다지 좋은 함수가 아니다. 독자는 가급적 이 global을 쓰는 방식을 피해야 할 것이다. 따라서 당연히 두 번째 방법보다는 첫 번째 방법이 좋다.

 

 

'Programing > Python' 카테고리의 다른 글

파이썬 5일차 - 2  (0) 2012.05.14
파이썬 5일차 - 1  (0) 2012.05.14
파이썬 3일차  (0) 2012.05.09
파이썬 2일차 - 1  (0) 2012.05.09
파이썬 2일차 - 2  (0) 2012.05.08
Posted by 부우산사나이
:

파이썬 3일차

Programing/Python 2012. 5. 9. 18:34 |

공부 참조 싸이트 : http://codejob.co.kr/docs/view/2/

 

[1] if문

and, or, not

c++ 생각하면

and 는 &&

or   는 ||

not 는 !

이렇게 생각하면 된다.

 

 

x in s, x not in s


>>> 1 in [1, 2, 3]
True
>>> 1 not in [1, 2, 3]
False
다중 조건 문은 elif 로 사용된다.
>>> pocket = ['paper', 'handphone']
>>> watch = 1
>>> if 'money' in pocket:
...      print "택시를 타고가라"
... elif watch: 
... print "택시를 타고가라" ... else: ... print "걸어가라" ... 택시를 타고가라
 
 

pass의 사용


가끔 조건문을 판단하고 참 거짓에 따라 행동을 정의 할 때 아무런 일도 하지 않게끔 설정을 하고 싶을 때가 생기게 된다. 다음의 예를 보자.

 

"지갑에 돈이 있으면 가만히 있고 지갑에 돈이 없으면 시계를 끌러라“  


위의 예를 pass를 적용해서 구현해 보자.

>>> pocket = ['paper', 'money', 'handphone']
>>> if 'money' in pocket:
...     pass 
... else: ... print "시계를 끌른다" ...

pocket이라는 리스트 안에 'money'란 문자열이 있기 때문에 if문 다음문장인 pass가 수행되었고 아무런 결과값도 보여주지 않는 것을 확인 할 수 있다.

 
 

[2] while문

while문은 C++문법과 다른게 없어서 그냥 넘어간다.

 

 

[3] for문

for문의 기본구조


for 문의 기본적인 구조는 다음과 같다.

for 변수 in 리스트(또는 터플, 문자열):
    <수행할 문장1>
    <수행할 문장2>

 

>>> jaeho_for_List = ['f','u','a']

>>> for i in jaeho_for_List:

...    print i

...

f

u

a

 

C++에서 for each 문하고 비슷하다고 생각하면 이해가 된다.

 

 

range함수

 

>>> a = range(10) >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]  

>>> a = range(1, 11) >>> a [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 

 

 

다양한 for문의 사용

>>> a = [(1,2), (3,4), (5,6)] 
>>> for (first, last) in a: 
. . .     print first + last 
. . . 
3 
7 
11

 

>>> for i in range(2,10): ... for j in range(1, 10): ... print i*j, ... print '\n' ... 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81

'Programing > Python' 카테고리의 다른 글

파이썬 5일차 - 1  (0) 2012.05.14
파이썬 4일차  (0) 2012.05.11
파이썬 2일차 - 1  (0) 2012.05.09
파이썬 2일차 - 2  (0) 2012.05.08
파이썬을 쉽게 사용하는 PyScripter 설치하기  (0) 2012.05.07
Posted by 부우산사나이
:

공부 참조 싸이트 : http://codejob.co.kr/docs/view/2/

 

 

[3] 리스트 (List)

여러 가지 리스트의 생김새를 살펴보면 다음과 같다.

>>> a = []
>>> b = [1, 2, 3]
>>> c = ['Life', 'is', 'too', 'short']
>>> d = [1, 2, 'Life', 'is']
>>> e = [1, 2, ['Life', 'is']]

a 처럼 리스트는 아무 것도 포함하지 않는 빈 리스트([])일 수도 있고 b처럼 숫자를 그 요소 값으로 가질 수도 있고, c처럼 문자열을 요소값으로 가질 수 있고 d처럼 숫자와 문자열을 함께 요소값으로 가질 수 있으며 또한 e처럼 리스트 자체를 그 요소 값으로 가질 수 도 있다. 즉, 리스트 내에는 어떠한 자료형도 포함시킬 수 있다.

 

>>> a = [1, 2, 3, ['a', 'b', 'c']]

>>> a[0]
1
>>> a[-1]
['a', 'b', 'c']
>>> a[3]
['a', 'b', 'c']

 

이차원으로 생각하면 편할듯!!

>>> a[-1][1]
'b'
>>> a[-1][2]
'c'

 

>>> a = [1, 2, ['a', 'b', ['Life', 'is']]]

삼차원으로 생각하면 편할듯!!

>>> a[2][2][0]
'Life'

 

 

리스트의 슬라이싱

>>> a = [1, 2, 3, 4, 5]
>>> a[0:2]
[1, 2]

어제 했던 문자열의 슬라이싱하고 사용방법이 똑같다.

 

 

리스트를 더하고(+) 반복하기(*)

 

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a + b
[1, 2, 3, 4, 5, 6]

>>> a = [1, 2, 3]
>>> a * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]

 

리스트의 수정 변경과 삭제

수정

>>> a = [1, 2, 3]
>>> a[2] = 4
>>> a
[1, 2, 4]

 

>>> a[1:2]
[2]
>>> a[1:2] = ['a', 'b', 'c']
>>> a
[1, 'a', 'b', 'c', 4]

 

삭제

a[1, 'a', 'b', 'c', 4]

>>> a[1:3] = []
>>> a
[1, 'c', 4]

>>> a
[1, 'c', 4]
>>> del a[1]
>>> a
[1, 4]

 

>>> a[0] = []

>>> a[0]

[]

이렇게 배열 하나만에 [] 넣어주면 빈공간이 들어가게된다.

삭제가 안되고 삭제 할려고하면

>>>  a[0:1] = []

이 문법을 써야한다. 이게 헷갈리니 그냥

>>> del a[0]

이 문법을 사용하게 속 편할거 같다.

 

 

[참고] 초보가 범하기 쉬운 리스트 연산 오류
우선 다음과 같은 예를 먼저 만들어보자.
>>> a = [1, 2, 3]
>>> a[2] + "hi"
Traceback (innermost last):
File "", line 1, in ?
a[2] + "hi"
TypeError: number coercion failed
TypeError 에러가 발생했다. 에러의 원인은 무엇일까?

a[2]는 3이라는 정수인데 "hi"는 문자열이다.
두 값(정수와 문자열)을 더한다는 것은 상식적으로 맞지 않는 방법이다. 
그래서 Type 에러가 발생하는 것이다. 숫자와 문자열을 더할 수는 없다.

만약 숫자와 문자열을 더해서 '3hi'처럼 만들고 싶다면 숫자 3을 문자 '3'으로 바꾸어 주어야 한다.

그 방법에는 두 가지가 있다.

>>> str(a[2]) + "hi"
>>> `a[2]` + "hi"
첫 번째 방법은 str 함수로 정수를 문자열로 바꾸어 주는 방법이고
두 번째 방법은 (`) Back Quote 문자를 이용한 것인데, 위에서 Back Quote문자(`)는
str 함수를 사용한 것과 완전히 동일한 결과값을 돌려준다.

 

리스트 함수 설명

함수 설명
a.append(x) 리스트 a의 마지막에 x추가
a.sort() 리스트 a를 정렬
a.reverse() 리스트 a의 순서를 거꾸로 만든다.
a.index(x) 리스트 a에서 x를 찾아서 그 위치 반환
a.insert(i, x) 리스트 a에서 i 위치에 x 삽입
a.remove(x) 리스트 a에서 처음 나오는 x 삭제
a.pop() 리스트 a의 맨 마지막 요소 반환하고 마지막 요소 삭제
a.count(x) 리스트 a 안에 x가 몇 개 있는지를 반환
a.extend(x) 리스트 a에 리스트 x를 더함(확장)

 

 

a.sort()

 

a = [9, 2, [10, 9,2]]

a.sort()

이러면 에러남 다중 배열로 들어가면 에러 나는듯

하지만

a[2].sort()

는 성공!!!!!!

>>> a
[9, 2, [2, 9, 10]]

 

앞부분 소트 시키는 법은 연구 해봐야겠다...

a[0:2].sort()

이렇게 하면 될줄 알았는데 안되네~

 

[4] 터플 (tuple)

터플 또는 튜플이라고 부른다.


터플이란 리스트와 몇 가지 점을 제외하곤 모든 것이 동일하다. 그 다른 점은 다음과 같다.

  • 리스트는 '[' 과 ']' 으로 둘러싸지만 터플은 '('과 ')'으로 둘러싼다.
  • 리스트는 그 값을 생성, 삭제, 수정이 가능하지만 터플은 그 값을 변화시킬 수 없다.

나머지는 리스트사용하던 방식대로 사용하면 된다.

 

 

 

 

'Programing > Python' 카테고리의 다른 글

파이썬 4일차  (0) 2012.05.11
파이썬 3일차  (0) 2012.05.09
파이썬 2일차 - 2  (0) 2012.05.08
파이썬을 쉽게 사용하는 PyScripter 설치하기  (0) 2012.05.07
파이썬(Python) 설치 방법 3.2.2버전  (0) 2012.05.07
Posted by 부우산사나이
:

공부 참조 싸이트 : http://codejob.co.kr/docs/view/2/

 

[5] 딕셔너리 (Dictionary)

 

>>> dic = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}

key value
name pey
phone 01199993323
birth 1118

딕셔너리는 키와 값이 한쌍으로 이루어진 자료구조이다.

>>> dic['name']

'pey'

이런식으로 나온다.

 

딕셔너리 주의사항

키 값은 절대 중복 하면 안된다.

이유는 키값으로 값을 찾고 싶을때 중복이 있으면 사용자가 원하는 값이 안나올수 있다.

파이썬은 중복 키값이 있으면 앞에 있는 값을 알려준다.

 

함수 설명
a.keys() 딕셔너리 a의 Key들을 모아놓은 리스트를 돌려준다.
a.values() 딕셔너리 a의 Value들을 모아놓은 리스트를 돌려준다.
a.items() 딕셔너리 a의 (Key, Value)쌍의 터플을 모아놓은 리스트를 돌려준다.
a.clear() 딕셔너리 a의 모든 Key:Value 쌍들을 삭제한다.
a.get(x) 딕셔너리 a의 Key가 x인 것의 Value를 돌려준다.
a.has_key(x) 딕셔너리 a에 x라는 Key가 있는지 조사하여 참, 거짓을 돌려준다.

 

>>> a.get('foo', 'bar')

겟은 이렇게 디폴트 값을 줄 수 있다. a 딕셔너리에 foo 키 값이 없으면  bar라는 값을 알려준다.

 

 

 

[6] 참과 거짓

자료형  참 or 거짓
"python"
"" 거짓
[1, 2, 3]
[] 거짓 
() 거짓
{} 거짓 
참 
거짓 
None 거짓 

[7] 변수

파이썬에서

a = 1

a = 'a'

a = "안녕'

a = 1.3

a 변수 선언할때 왜 자료형을 선언 안하는가 궁금했는데

개념이 a = 1할때 1이라는 정수 객체가 생성되고 a는 단순이 1이라는 객체 주소만 저장하는 방식이라서 변수 선언 할필요가

없었네. 마찮가지로 a = 'a'할때도 a라는 문자형 객체가 생성되고 a는 'a'문자형 객체 주소만 저장하는 원리

 

변수 없애기


3이라는 정수형 객체가 메모리에 생성된다고 했다. 그렇다면 이 값을 메모리에서 없앨 수 있을까? 3이라는 객체를 가리키는 변수들의 개수를 레퍼런스 카운트라 하였는데, 이 레퍼런스 카운트가 0이 되는 순간 3이라는 객체는 자동으로 사라진다. 즉 3이라는 객체를 가리키고 있는 것이 하나도 없을 때 이 3이라는 객체는 메모리에서 사라지게 되는 것이다. 이것을 또한 어려운 말로 쓰레기 수집 - 가비지 콜렉션(Garbage collection)이라고도 한다.


다음의 예는 특정한 객체를 가리키는 변수를 없애는 예를 보여준다.

>>> a = 3 
>>> b = 3
>>> del(a)
>>> del(b)

위의 예를 살펴보면 a와 b가 3이란 객체를 가리켰다가 del이란 파이썬 내장함수에 의해서 가리키는 변수 a, b가 사라지게 되고 따라서 레퍼런스 카운트가 0이 되어서 객체 3도 메모리에서 사라지게 된다.

 

이거 쉽게 이해할라면 C++에서 스마트포인트랑 원리가 같다고 생각하면 될 듯 싶다.

 

변수를 만드는 여러 가지 방법


방법 1)

>>> a, b = 'python', 'life'

방법 1처럼 터플로 a, b에 값을 대입할 수 있다. 이 방법은 아래 소개된 방법 2와 완전히 동일하다.


방법 2)

>>> (a, b) = ('python', 'life')

방법 1과 방법 2는 사실상 같다. 터플 부분에서도 언급했지만 터플은 괄호를 생략해도 된다.


방법 3)

>>> [a,b] = ['python', 'life']

방법 3처럼 리스트로 만들 수도 있다.


방법 4)

>>> a = b = 'python'

여러 개의 변수에 같은 값을 대입할 수도 있다.

 

 

리스트 복사


여기서는 리스트라는 자료형에서 가장 혼동하기 쉬운 부분을 설명하려고 한다. 예를 보며 알아보도록 하자.

>>> a = [1,2,3]
>>> b = a
>>> a[1] = 4
>>> a 
[1, 4, 3]
>>> b
[1, 4, 3]

위의 예를 유심히 살펴보면 b라는 변수에 a가 가리키는 리스트를 대입하였다. 그런 다음, a 리스트의 a[1]을 4라는 값으로 바꾸었을 때, a리스트만이 바뀌는 것이 아니라 b리스트도 똑같이 바뀌게 된다. 그 이유는 a, b 모두 같은 리스트인 [1, 2, 3]을 가리키고 있었기 때문이다. a, b는 이름만 다를 뿐이지 완전히 동일한 리스트를 가리키고 있는 변수이다.

그렇다면 b 변수를 생성할 때 a와 같은 값을 가지면서 a 가 가리키는 리스트와는 다른 리스트를 가리키게 하는 방법은 없을까? 다음의 두 가지 방법이 있다.


방법 1) [:] 이용

 

첫 번째 방법으로는 아래와 같이 리스트 전체를 가리키는 [:]을 이용하는 것이다.

>>> a = [1, 2, 3] 
>>> b = a[:]
>>> a[1] = 4
>>> a[1, 4, 3]
>>> b[1, 2, 3]

위의 예에서 보듯이 a 리스트 값을 변형하더라도 b리스트에는 영향을 끼치지 않음을 볼수 있다.


방법 2) copy 모듈 이용

 

두 번째 방법은 copy 모듈을 이용하는 방법이다. 다음의 예제에서 보면 from copy import copy라는 처음 보는 형태가 나오는데 이것은 2장의 모듈 부분에서 자세히 다루게 된다. 여기서는 단순히 copy라는 함수를 쓰기 위해서 사용되는 것이라고만 알아두자.

>>> from copy import copy 
>>> b = copy(a)

위의 예 b = copy(a) 는 b = a[:]과 동일하다.


두 변수가 같은 값을 가지면서 다른 객체를 제대로 생성했는 지를 확인하려면 다음과 같이 하면 된다. 즉, is 함수를 이용한다. 이 함수는 서로 동일한 객체인지 아닌지에 대한 판단을 하여 참과 거짓을 돌려준다.

>>> b is a
False

위의 예에서 b is a 가 False를 돌려주므로 b와 a 가 다른 객체임을 알 수 있다.

'Programing > Python' 카테고리의 다른 글

파이썬 3일차  (0) 2012.05.09
파이썬 2일차 - 1  (0) 2012.05.09
파이썬을 쉽게 사용하는 PyScripter 설치하기  (0) 2012.05.07
파이썬(Python) 설치 방법 3.2.2버전  (0) 2012.05.07
파이썬 1일차  (3) 2012.05.07
Posted by 부우산사나이
:

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를 눌러줍니다.



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



'Programing > Python' 카테고리의 다른 글

파이썬 3일차  (0) 2012.05.09
파이썬 2일차 - 1  (0) 2012.05.09
파이썬 2일차 - 2  (0) 2012.05.08
파이썬(Python) 설치 방법 3.2.2버전  (0) 2012.05.07
파이썬 1일차  (3) 2012.05.07
Posted by 부우산사나이
:

파이썬(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 세계에 빠져 봅시다!



출처 : http://kkoseul.tistory.com/136

'Programing > Python' 카테고리의 다른 글

파이썬 3일차  (0) 2012.05.09
파이썬 2일차 - 1  (0) 2012.05.09
파이썬 2일차 - 2  (0) 2012.05.08
파이썬을 쉽게 사용하는 PyScripter 설치하기  (0) 2012.05.07
파이썬 1일차  (3) 2012.05.07
Posted by 부우산사나이
:

파이썬 1일차

Programing/Python 2012. 5. 7. 17:34 |

공부 참조 싸이트 : http://codejob.co.kr/docs/view/2/

 

파이썬으로 할수 있는 일

 

- GUI(Graphic User Interface) 프로그램 : Tkinter이용 그외 wxPython, PyQT, PyGTK 있음

 

- C/C++ 과 결합 가능

 

- CGI(Common Gateway Interface) 프로그래밍 : 쉽게 말해서 웹상의 게시판이나 방명록을 말한다.

 

- 수치연산 프로그래밍 : 파이썬은 수치연산에 적합한 언어 X, 하지만  Numeric Python이라는 수치

   연산 모듈을 제공한다

 

- 데이터베이스 프로그래밍 :  Sybase, Infomix, 오라클, MySQL, Postgresql등의 데이터 베이스에

접근할 수 있게 해주는 도구들을 제공한다

pickle이라는 모듈은 파이썬에서 쓰이는 자료들을 변형없

이 그대로 파일에 저장하고 불러오는 일들을 해 준다.

 

파이썬 숫자형

다음의 복소수 예들을 보자.
복소수.real은 복소수의 실수 부분을 돌려준다.

>>> a = 1+2j
>>> a.real
1.0

 

복소수.imag는 복소수의 허수 부분을 돌려준다.

>>> a = 1+2j
>>> a.imag
2.0

 

복소수.conjugate()는 복소수의 켤레 복소수를 돌려준다.

>>> a = 1+2j
>>> a.conjugate()
(1-2j)
 

다음에 알아야 될 연산자로 ** 라는 연산자가 있다. 이것은 x ** y처럼 사용되었을 때 x의 y승 값을 돌려 준다. 다음의 예를 통해 알아보자.

>>> a = 3
>>> b = 4
>>> a ** b
81

 

파이썬 문자열

""나 ''을 표시하고 싶을때

>>> print ('"조재호"')

"조재호"

>>> print ("'조재호'")

'조재호'

"를 표시하고 싶을 때는 앞에 '

'를 표시하고 싶을 때는 앞에 "

"" 이거나 '' 하면 에러난다.

이게 헷갈리면 \ 역슬레쉬 사용하면 된다.

>>>print ("\'조재호\'") 이런식으로 사용하면 됨.

문자열 여러줄 처리

연속된 이중인용부호 세 개(""") 이용
multiline=“”“
Life is too short
You need python
Python is powerful language
“”“
 
이스케이프 코드

코드              설명
----------------------------------------
\n               개행 (줄바꿈)
\v               수직 탭
\t               수평 탭
\r               캐리지 리턴
\f               폼 피드
\a               벨 소리
\b               백 스페이스
\000             널문자
\\               문자 "\"
\'               단일 인용부호(')
\"               이중 인용부호(")
문자열 합치기(Concatenation)
>>> head = "Python"
>>> tail = " is fun!"
>>> print head + tail
Python is fun!
 
 
문자열 곱하기
>>> a = "python"
>>> print a * 2
pythonpython
 
print "=" * 50
print "My Program"
print "=" * 50
==================================================
My Program
==================================================
 

우와 이건 정말 편한거 같음!!!!!!

 

 

인덱싱과 슬라이싱

>>> a = "Life is too short, You need Python"

>>> a[-2] 'o' >>> a[-5] 'y'

 

마이너스 기호는 익덱싱이 거꾸로 메겨지는것이다.

 

Life is too short, You need Python 0 1 2 3 (십단위) 0123456789012345678901234567890123

-3 -2 -1 ( 거꾸로 마이너스단위 )

4321098765432109876543210987654321

 

예 ) y 인덱스는 a[29] 와 a[-5]두개 다된다.

 

 

>>> a[0:4] 'Life'

 

0번째 배열에서 4번째 배열까지 이게 슬레이싱이다.

0에서 4라서 0,1,2,3,4 이렇게 다섯 글자가 나와야 할거 같지만

숨겨진 수식은

0 <= a < 4 이므로 4개만 나온다.

 

 

a[시작번호:끝번호]에서 끝번호 부분을 생략하면 시작번호부터 그 문자열의 끝까지를 뽑아내게 된다.

>>> a[19:]
'You need Python'


a[시작번호:끝번호]에서 시작번호를 생략하면 그 문자열의 처음부터 끝번호까지 뽑아내게 된다.

>>> a[:17]
'Life is too short'

 

 

스레이싱의 예

>>> a = "20010331Rainy" >>> year = a[:4] >>> day = a[4:8] >>> weather = a[8:] >>> year '2001' >>> day '0331' >>> weather 'Rainy'

 

 

문자열 포매팅(Formatting)

 

두 개 이상의 값을 치환

>>> number = 10
>>> day = "three"
>>> print "I eat %d apples. so I was sick for %s days." % (number, day)
I eat 10 apples. so I was sick for three days.
 

 

 

[참고] 포맷팅 연산자 %d와 %를 같이 쓸 때는 %%를 >>> print "Error is %d%." % 98 당연히 결과값으로 "Error is 98%."가 출력될 것이라고 예상하겠지만 파이썬은 에러 메시지를 보여준다. 이유는 문자열 포맷코드인 %d 와 % 가 같은 문자열 내에 존재하면 %를 나타내기 위해서는
반드시 %%로 해야 %로 되는 법칙이 있다. 이건 꼭 기억해두어야 한다.
하지만 문자열 내에 %d 같은 포맷팅 연산자가 없으면 %는 홀로 쓰여도 상관이 없다. 따라서 위 예를 제대로 실행될 수 있게 하려면 다음과 같이 해야 한다. >>> print "Error is %d%%." % 98 Error is 98%.

 

 

예 1) 정렬과 공백
>>> print "%10s" % "hi"
        hi
^^^^^^^^^^

즉 "%10s"의 의미는 길이가 10개인 문자열 공간에서 오른쪽으로 정렬하고 그 앞의 나머지는 공백으로 남겨 두라는 의미이다.

그렇다면 반대쪽인 왼쪽 정렬은 "%-10s"가 될 것이다.


확인해 보자.

>>> print "%-10sjane." % 'hi' 
hi        jane.
^^^^^^^^^^

왼쪽으로 정렬하고 나머지는 공백으로 채웠음을 볼 수 있다.


예 2) 소숫점 표현

>>> print "%0.4f" % 3.42134234
3.4213

즉, 3.42134234를 소수점 4번째까지만 나타내고 싶을 경우에 위와 같이 하였다. 즉 여기서 '.'의 의미는 소수점 포인트를

말하고 그 뒤의 숫자 4는 뒤에 나올 숫자의 개수를 말한다. '.'앞의 숫자는 이전의 예에서와 같이 오른쪽 또는 왼쪽 정렬을

말하는 숫자이다. 
 

>>> print "%10.4f" % 3.42134234
    3.4213
^^^^
 
 
함수설명
a.upper()문자열 a를 모두 대문자로 바꾸어 준다.
a.count(x)문자열 a중 x와 일치하는 것의 갯수를 반환한다.
a.find(x)문자열 a중 문자 x가 처음으로 나온 위치를 반환한다. 없으면 -1을 반환한다.
a.index(x)문자열 a중 문자 x가 처음으로 나온 위치를 반환한다. 없으면 에러를 발생시킨다.
a.join(s)s라는 문자열의 각각의 요소 문자사이에 문자열 a를 삽입한다.
a.lower()문자열 a를 모두 소문자로 바꾸어 준다.
a.lstrip()문자열 a의 왼쪽 공백을 모두 지운다.
a.rstrip()문자열 a의 오른쪽 공백을 모두 지운다.
a.strip()문자열 a의 양쪽 공백을 모두 지운다.
a.replace(s, r)문자열 a의 s라는 문자열을 r이라는 문자열로 치환한다.
a.split([s])문자열 a를 공백으로 나누어 리스트값을 돌려준다.
a.swapcase()문자열 a의 대문자는 소문자로, 소문자는 대문자로 각각 바꾸어 준다.

 

'Programing > Python' 카테고리의 다른 글

파이썬 3일차  (0) 2012.05.09
파이썬 2일차 - 1  (0) 2012.05.09
파이썬 2일차 - 2  (0) 2012.05.08
파이썬을 쉽게 사용하는 PyScripter 설치하기  (0) 2012.05.07
파이썬(Python) 설치 방법 3.2.2버전  (0) 2012.05.07
Posted by 부우산사나이
: