블로그 이미지
No pain, no gain!
lepoussin

Tag

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

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
  • total
  • today
  • yesterday
02-01 15:09
2007. 2. 20. 19:20 Lecture/열혈강의 Python

1. 기본 자료형
  1) 정수형 상수

>>> a = 23 # 10진 상수
>>> b = 023 # 8진 상수
>>> c = 0x23 # 16진 상수
>>> print a, b, c
23 19 35

  2) 실수형 상수

>>> a = 1.2 # 소수점 포함
>>> b = 3.5e3 # 지수 포함
>>> c = -0.2e-4
>>> print a, b, c
1.2 3500.0 -2e-005
>>> 0.1 # 진법 변환에 의한 에러(repr : 17자리)
0.10000000000000001
>>> print 0.1 # 유효자리수 제한(str : 12자리)
0.1

  3) 롱형 상수

>>> h = 123456789012345678901234567890L
>>> print h * h

15241578753238836750495351562536198787501905199875019052100
>>> octal = 01234L
>>> octal
668L
>>> hexa = 0x123456789L
>>> hexa
4886718345L
>>> 12345678901234567890
12345678901234567890L
>>> print 12345678901234567890
12345678901234567890

  4) 복소수형 상수

>>> a = 4+5j
>>> d = 7-2j
>>> c = 4+5j
>>> d = 7-2j
>>> print c * d
(38+27j)
>>> c.real # 복소수의 실수 부분
4.0
>>> c.imag # 복소수의 허수 부분
5.0
>>> a = 3
>>> b = 4
>>> complex(a, b) # 복소수 생성
(3+4j)
>>> c.conjugate() # 켤레 복소수
(4-5j)

  5) Decimal 자료형

>>> from decimal import *
>>> Decimal(1234) # 정수로 부터 생성
Decimal("1234")
>>> Decimal(1.1)

Traceback (most recent call last):
  File "<pyshell#181>", line 1, in <module>
    Decimal(1.1)
  File "C:\Python25\lib\decimal.py", line 578, in __new__
    "First convert the float to a string")
TypeError: Cannot convert float to Decimal.  First convert the float to a string

>>> a = Decimal('1.1') # 문자열로 부터 생성(실수는 실수로 부터 생성 안 됨)
>>> print a
1.1

2. 연산자
  1) 산술 연산자 : +, -, *, **, /, //, %

>>> 3 + 5
8
>>> 3 - 5.0 # 정수와 실수의 산술 연산 결과는 실수
-2.0
>>> 2 ** 3 # 2 * 2 * 2
8
>>> 2 ** 3 ** 2 # 2 ** (3 ** 2)
512
>>> divmod(5, 3) # (몫, 나머지)
(1, 2)

>>> 5 % 3 # 나머지는 젯수의 부호와 같음
2
>>> 5 % -3
-1
>>> -5 % 3
1
>>> -5 % -3
-2

>>> 5 / 3
1
>>> 5 / -3
-2
>>> -5 / 3
-2
>>> -5 / -3
1

>>> 3 // 4 # 몫 계산
0
>>> 3.0 // 4.0
0.0
>>> -3 // 4
-1
>>> -3 // 4.0
-1.0

>>> 3 / 4 # 나눗셈(일관성 없음)
0
>>> 3.0 / 4.0
0.75
>>> -3 / 4
-1
>>> -3 / 4.0
-0.75

>>> from __future__ import division
>>> 3 / 4

0.75

  2) 관계 연산자 : <, >, <=, >=, ==, !=, <>

>>> a = 1
>>> b = 2
>>> 0 < a < b
True
>>> 'abcd' > 'abd'
False
>>> x = [1, 2, 3]
>>> y = [1, 2, 3]
>>> x == y
True
>>> x is y # 같은 객체를 가르키고 있는지 확인
False

  3) 논리 연산자 : not, and, or
    - 0, 0.0, 0L, 0.0+0.0j, (), {}, [], None, ""은 모두 거짓으로 간주
    - 나머지는 모두 참
    - 'and'와 'or'이 포함된 논리식은 식의 결과 값을 판정하는데 최종적으로 기여한 객체의 값을 식의 값으로 리턴

>>> 1 and 0
0
>>> 1 or 0
1
>>> [] or () # []와 ()이 거짓
()
>>> [] and 1 # []이 거짓이므로 1은 참조할 필요가 없음
[]

  4) 비트 단위 연산자 : <<, >>, &, |, ^, ~

>>> ~5 # 0000...0101
-6
>>> ~-1
# 1111...1111
0
>>> a = 3 # 0000 0011(편의상 8비트만 표시)
>>> a << 2
# 0000 1100(오른쪽이 0으로 채워짐)
12
>>> a = 4
# 0000 0100
>>> a >> 1 # 0000 0010(왼쪽(MSB)이 0으로 채워짐)
2
>>> a = -4
# 1111 1100
>>> a >> 1
# 1111 1110(왼쪽이 1로 채워짐)
-2

3. 수치 연산 함수
  1) 내장 수치 연산 함수
    - abs(x) : x의 절대값
    - int(x) : x를 int(정수)형으로 변환
    - long(x) :  x를 long형으로 변환
    - float(x) : x를 float형(실수형)으로 변환
    - complex(re, im) : 실수부 re와 허수부 im를 가지는 복소수
    - c.conjugate() : 복소수 c의 켤레 복소수
    - divmod(x, y) : (x//y, x%y) 쌍
    - pow(x, y) : x의 y승
  2) math 모듈 : math(실수 연산), cmath(복소수 연산)

>>> import math
>>> math.pi
3.1415926535897931
>>> math.e
2.7182818284590451
>>> math.sin(1.0) # 1.0 라디안에 대한 사인값
0.8414709848078965
>>> math.sqrt(2) # 제곱근
1.4142135623730951
>>> r = 5.0
>>> a = math.pi * r * r
>>> print a
78.5398163397

posted by lepoussin
2007. 2. 20. 13:35 Lecture/열혈강의 Python
1. 변수명 및 예약어
  1) 변수명 : [a-zA-Z_][a-zA-Z0-9_]*

  2) 예약어
and         del         from       not      while   
as           elif         global     or         with    
assert     else       if             pass    yield   
break      except   import     print             
class       exec       in            raise             
continue  finally     is            return            
def          for          lambda   try


2. 파이썬 기초문
  1) 주석문 : # 다음에 나오는 문자들
import sys # 주석

  2) 연속 라인
>>> if (a == 1) and
SyntaxError: invalid syntax
>>> if (a == 1) and \
    (b == 3):
 print  'connected lines'


  3) 치환문 : 우변의 객체 혹은 을 좌변의 이름에 할당하는 것
>>> c, d = 3, 4 # 여러 개를 한꺼번에 치환
>>> x = y = z = 0 # 여러 개를 같은 값 0으로 치환한다.
>>> e = 3.5; f = 5.6 # ; 로 문들을 구분
>>> e, f = f, e # swap
>>> print e, f
5.6 3.5

  4) 확장 치환문
+=      -=      *=      /=      //=     %=
&=      |=      ^=      >>=     <<=     **=

  5) 이름과 객체

3. 문자열로 된 파이썬 코드 실행하기
  1) eval() : 문자열로된 파이썬 식(expression)을 실행
>>> a = 1
>>> a = eval('a + 4')
>>> a
5
  2) exec() : 문자열로 된 문(statement)을 수행
>>> a = 5
>>> exec 'a = a + 4'
>>> a
9

  3) compile() : 문자열을 컴파일하여 파이썬 코드를 리턴

>>> # 식
>>> code = compile('a + 1', '<string>', 'eval')
>>> a = 1
>>> for k in range(10):
 a = eval(code)
>>> a
11

>>> # 단일문
>>> code = compile('a = a + 1', '<string>', 'single')
>>> a = 1
>>> for k in range(10):
 exec code
>>> a
11

>>> # 복합문
>>> s = '''
a = 1
for k in range(10):
 a = a + 1
print a
'''
>>> code = compile(s, '<string>', 'exec')
>>> exec code
11

4. 콘솔 입ㆍ출력
  1) 콘솔 입력
>>> name = raw_input('name?') # 문자열 입력
name?홍순현
>>> print name
홍순현

>>> # 정수나 실수 등의 값 입력
>>> k = int(raw_input('int : '))
int : 89
>>> k
89
>>> 89
89

>>> i = input('int : ')
int : 45
>>> i
45

  2) 콘솔 출력
>>> print 4+5, 4-2
9 2
>>> print 1; print 2
1
2
>>> print 1,; print 2
1 2

5. 자료형의 종류 : 수치형, 문자열, 리스트, 사전, 튜플

6. 변경 가능성
  1) 변경 가능하다(Mutable) : 리스트, 사전
  2) 변경 가능하지 않다(Immutable) : 숫자, 문자열, 튜플

7. 자료형 확인과 기타 자료형 : type(), types 모듈 이용
>>> from types import *
>>> type(123) == IntType
True
>>> type('abc') == StringType
True


8. 메모리 관리 : 자동적으로 쓰레기 수집(Garbage Collection) - 객체의 Reference Count 값 이용

9. 파이썬 제어문
  1) if문

>>> order = 'spagetti'
if order == 'spam':
 price = 500
elif order == 'ham':
 price = 700
elif order == 'egg':
 price = 300
elif order == 'spagetti':
 price = 900
else:
 price = 100
>>> print price

100
  2) for문

>>> for x in range(2, 4):
 for y in range(2, 10):
  print x, '*', y, '=', x*y
 print

2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18

3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27

3) while
>>> while a < 10:
 a = a + 1
 if a < 3: continue
 if a > 10: break
else:
 print 'else block'
else block


10. 함수

>>> def add(a, b):
 return a+b
>>> print add(3, 4)
7
>>> print add([1, 2, 3], [4, 5, 6])
[1, 2, 3, 4, 5, 6]

posted by lepoussin
2007. 2. 16. 15:51 Lecture/열혈강의 Python
1. 파이썬이란?
  - 대화 기능의 인터프리터 언어
  - 동적인 데이터 타입 결정 지원
  - 플랫폼 독립적 언어
  - 개발 기간 단축에 초점을 둔 언어
  - 간단하고 쉬운 문법
  - 고수준의 내장 객체 자료형 제공
  - 메모리 자동 관리
  - 팀워크에 유용
  - 쉬운 유지 보수
  - 많은 수의 라이브러리 제공
  - 짧아지는 코드
  - 높은 확장성
  - 확장(Extending) 및 내장(Embedding) 기능
  - 무료:)

2. 활용분야
  1) 시스템 유틸리티 : POSIX 시스템 콜, 소켓, Perl식, 정규식 등
  2) GUI : Tcl/tk, wxPython, PyQt, PyGTK, MFC, Anygui 등
  3) 인터넷 프로그래밍 : RPC 프로토콜, 웹 애플리케이션 서버, CGI 래퍼, PSP 등  ※ Zope, Google
  4) DB 프로그래밍 : Oracle, DB Ⅱ, Sybase, MySQL 등
  5) 각종 테스트 프로세싱 : 정규식, 유니코드, XML 지원
  6) 기타 : COM 인터페이스, 수치 연산, AI, 그래픽스, 분산 처리 등

3. 파이썬 설치
posted by lepoussin