블로그 이미지
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 29 30
  • total
  • today
  • yesterday
04-26 06:53
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