회원 로그인
정보기억 정보기억에 체크할 경우 다음접속시 아이디와 패스워드를 입력하지 않으셔도 됩니다.
그러나, 개인PC가 아닐 경우 타인이 로그인할 수 있습니다.
PC를 여러사람이 사용하는 공공장소에서는 체크하지 마세요.
소셜네트워크 서비스를 통해서 로그인하시면 별도의 로그인 절차없이 회원서비스를 이용하실 수 있습니다.


최근 게시물

1.노션에서 작성 중

1.노션에서 작성 중

개편하기 전까지 노션에서 작성 중

2024.04.04//read more

2.ChatGPT

2.ChatGPT

OpenAI로 대규모 언어 모델대화형...

2023.03.16//read more

3.노코딩 게임 엔진 - 빌..

3.노코딩 게임 엔진 - 빌..

빌드 지원안드로이드iOS윈도우즈특이사...

2023.03.14//read more

4.(완료) 미접속 회원 정..

4.(완료) 미접속 회원 정..

[완료] 36명의 회원을 정리하였습니...

2023.02.16//read more

5.매뉴얼 플러스 - 전자제..



안정적인 DNS 서비스 DNSEver
DNS Powered by DNSEver.com


Python 3강 - 수치 자료형과 연산자

artsone | 2007.10.18 17:01 | 조회 4196
Python03-1.asf

Python 3강
수치 자료형과 연산자

1. 수치 자료형
2. 파이썬 연산자
3. 수치 연산 함수



1. 수치 자료형
정수형 상수
10진, 8진, 16진 상수
실수형 상수
소수점을 포함하건 e, E가 포함된 수
64비트로 표현
유효자리 17, 지수부 10의 -308~308승 정도
롱형 상수
정수형으로 표현할 수 없는 경우
무한 자리 수 표현
복소수형 상수
실수부와 허수부로 표현
각각 실수형으로 표현된다.


#정수형 상수
>>> 123 #10진수
123
>>> 054432 #8진수, 앞에 0을 붙여 8진수 표현(0~7)
22810
>>> 0xaf #16진수, 0x를 붙여 16진수 표현(0~9, a~f)
175
>>> a = 0xaf
>>> a
175

>>> import sys
>>> sys.maxint #최대 표현할 수 있는 정수
2147483647


#실수형 상수

>>> a = 1.2
>>> b = 3.5e3
>>> c = -0.2e-4
>>> print a, b, c
1.2 3500.0 -2e-005
>>> c
-2.0000000000000002e-005
>>> print c #표현이 다르다 뿐이지
-2e-005
>>> 0.1 #오차의 문제로 표시되지만
0.10000000000000001
>>> print 0.1 #값은 같다.
0.1


#롱형 상수

>>> a = 123 #정수형
>>> a
123
>>> a = 123L #롱형
>>> a
123L
>>> a = 128347815647160237641273846 #큰 수가 되면 자동으로 롱형이 된다.
>>> a
128347815647160237641273846L


#복소수형 상수

>>> a = 4 + 5j #a = 실수 + 허수
>>> a.real #실수(리얼리)
4.0
>>> a.imag #허수(이메지너리)
5.0
>>> complex(3, 4) #함수 complex(실수, 허수)로 복소수형으로 만든다.
(3+4j)
>>> c = complex(3, 4) #변수로도 저장 가능하다
>>> c
(3+4j)
>>> c.conjugate() #메쏘드, 부호가 바뀐 복소수를 얻을 수 있다.
(3-4j)




06:30
2. 파이썬 연산자
산술 연산자
관계 연산자
논리 연산자
비트단위 연산자



#산술 연산자
+, - , *, /, //, **, %
/인 경우는 정수/정수 에 주의

// 몫을 취하는 연산자

>>> 2 ** 3
8
>>> 2 ** 3 ** 2 #3의 2승(a라고 할때)을 먼저 계산하고 2의 a승을 계산하게 된다.
512 #2 ** (3 ** 2)와 같다.
>>> (2 ** 3) ** 2
64

>>> 5 % 2 #5를 2로 나눈 나머지
1
>>> -5 % 2 #양수로면 표현되므로 위와 같다.
1
>>> 10 - 12 % 2 #12 % 2부터 연산순서가 된다.
10



>>> 5 + 2 #정수 계산은 정수로
7
>>> 5 + 2.0 #둘중 하나가 실수이면
7.0
>>> 5.0 + 2 #실수로 값이 표현된다.
7.0
>>> 5 / 2 #나누기 연산시에도 같다.
2
>>> 5 / 2.0 #실수로 표현되야 정확한 결과가 나온다.
2.5

>>> 5 / 3 #몫을 구하고
1
>>> 5 % 3 #나머지를 구하게 되는데
2
>>> divmod(5, 3) #divmod()를 이용해 한꺼번에 값을 얻을 수 있다.
(1, 2) #(몫, 나머지)


>>> -6 / 2 #
-3
>>> 5 / 2
2
>>> -5 / 2 # -는 정수와 달리 올림이 된다.
-3
>>> -(5 / 2) #연산 후 앞 실수가 붙는다.
-2


>>> 3 // 4 # // 몫연산자
0
>>> 3.0 // 4.0
0.0
>>> -3 // 4
-1
>>> -3 // 4.0
-1.0
>>> -3 / 4.0 #원래 몫은 -3을 4.0로 나눈 0.75
-0.75
>>> -3 // 4.0 #-3을 4.0로 나눈 몫, 실수이므로 올림
-1.0

연산 순서

+, -
*, /, %, // #왼쪽에서 오른쪽으로 계산
**
+, - (단항 연산자) 예) -3, -2 등 #오른쪽에서 왼쪽으로 계산

>>> ++3 #+(+3)과 같다
3
>>> --3 #-(-3)과 같다

>>> 4 * -5 #연산 순서에 의해 오른쪽 -5부터 계산후 4를 계산한다.
-20


Python03-1.asf 끝



#관계 연산자
객체의 대소를 비교
참이면 1, 거짓이면 0을 돌려준다
연산자의 종류
>, <, >=, <=, ==, !=

예) 10 > 5 이면 참이므로 1

>>> 6 == 9
False
>>> 6 != 9
True
>>> 1 > 3
False
>>> 4 <= 5
True
>>> a = 5
>>> 0 < a < 110
True
>>> 0 < a < 10
True
>>> 0 < a and a < 10 #0 < a < 10을 늘려쓴 것
True
>>> 0 < 5 or a > 10 #어느 한 곳이 참이면 참
True

>>> 'spam' > 'ham' #문장의 길이로 참, 거짓
True
>>> 'ad' > 'add' #처음 문장이 큰 값, 뒤는 작은 값
False
>>> 'A' > 'a' #ascii 코드로 인해 소문자 a가 더 큼
False

>>> [1, 2, 3] < [1, 2, 3, 4] #리스트(튜플)로도 비교 가능
True
>>> [1, 2, 4] < [1, 2, 3, 4] #저장된 데이터 순서대로 비교
False

>>> a = 500
>>> b = 500
>>> a == b #두 변수의 값은 같지만
True
>>> a is b #같은 객체는 아니다. 저장 된 공간이 다르다는 것.
False
>>> c = b #b의 객체를 c에 넣었다.
>>> c is b #같은 저장 공간을 사용하므로 참이 된다.
True


#논리 연산자
종류
not x
x and y
x or y
진리 값의 결과
참이면 1, 거짓이면 0
객체의 진리 값
0 혹은 빈 객체이면 거짓
아니면, 참
None, 0, 0.0, 0L, 0.0+0.0j, "", [], (), {}

>>> not 1 #1(참)의 반대 거짓
False
>>> not 0 #0(거짓)의 반대 참
True
>>> not None #None(공백)의 반대 참
True
>>> not [] #[], (), {}(공백)의 반대 참
True


논리식 계산 순서
결과가 알려지는 시점까지만 계산
최종 계산 시점의 객체를 리턴
1 and 2
3 or 4
b = a > 4 and 10 or 20

>>> 1 and 2 #둘이 참이야 하므로 최종 결과값인 2까지 연산후 출력
2
>>> 3 or 4 #둘중 처음 값이 참이면 최종 결과를 확인할 필요 없이 연산 중단
3

>>> a = 100
>>> b = a > 4 and 10 or 20 #100>4는 참 and 10은 참 or이기 때문에 바로 출력
>>> b
10
>>> a = 1
>>> b = a > 4 and 10 or 20 #1>4는 거짓 and 10도 거짓 or 20은 참이므로 최종 연산 출력
>>> b
20



#비트 단위 연산자
비트 조작 연산자
~ : 비트 반전 (1의 보수)
<<, >> : 좌측 시프트, 우측 시프트
& : 비트 단위 AND
^ : 비트 단위 XOR
| : 비트 단위 OR

python3-1.jpg

예)
>>> ~0 #0은 1로, 1은 0으로 반전 연산자
-1
>>> a = 8
>>> a << 1 #좌측 시프트:비트 전체를 좌측으로 이동
16
>>> a >> 1 #우측 시프트:비트 전체를 우측으로 이동
4

이해)
비트 반전
0000 0000 0000 ... 0000
1111 1111 1111 ... 1111

좌측 시프트
0000 0000 0000 ... 0100 #10진수 4
0000 0000 0000 ... 1000 #좌측 이동하여 8

우측 시프트
0000 0000 0000 ... 0100 #10진수 4
0000 0000 0000 ... 0010 #우측 이동하여 2



&, |, ^ (and, or, xor)
& 특정한 비트를 0으로 만든다.
| 특정한 비트를 1로 만든다.
^ 특정한 비트를 반전한다.


>>> a = 3 # 10진수 3을 2진수로 변환하면 0011
>>> a & 2 # 0011 & 0010
2

0 0 1 1 &
0 0 1 0 의 비트 하나하나를 비교하여 (0은 제외)
위 아래 비트가 같아야지만 1
0 0 1 0 0010의 10진수로 2가 된다.

>>> a | 8 # 0011 | 1000
11

0 0 1 1 |
1 0 0 0 위 아래 비트가 같지 않아도 1

1 0 1 1 결과는 1011, 10진수 11이 된다.

>>> a ^ 2 # 0011 ^ 0010
1

0 0 1 1 ^
0 0 1 0 위 아래 비트가 같지 않을 때 1

0 0 0 1 결과는 0001, 10진수 1이 된다.


Python03-2.asf 15:25

3. 수치 연산 함수
내장 수치 연산 함수

python3-2.jpg

함수 의미
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승


>>> abs(-1)
1

>>> int('1234') #문자열도 수치연산 된다.
1234
>>> int(123.4567)
123

>>> long('123')
123L
>>> long(123)
123L
>>> long(123.456) #정수형이므로 소수점 이하는 버림
123L

>>> float('34.44')
34.439999999999998
>>> float(34.44)
34.439999999999998
>>> float(34) #실수형이므로 소수점 표현
34.0

>>> complex(2, 3) #
(2+3j)
>>> a = complex(2, 3)
>>> a.conjugate() #부호가 바뀜
(2-3j)

>>> divmod(5, 3) #5나누기 3
(1, 2) #1 몫, 2 나머지
>>> q, r = divmod(5, 3) #값을 따로 저장 가능
>>> q #몫
1
>>> r #나머지
2

>>> 2 ** 3
8
>>> pow(2, 3)
8



수치 연산을 위한 모듈
math - 실수 연산
cmath - 복소수 연산

>>> import math
>>> dir(math) #dir() 정리된 이름을 리스트 출력 함수(도움말?)
['__doc__', '__name__', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh']
>>> math.pi #파이
3.1415926535897931
>>> math.e #
2.7182818284590451
>>> math.sin(1.0) #싸인 sin(레디언 값)
0.8414709848078965
>>> math.sqrt(2) #
1.4142135623730951

>>> degree = 60
>>> rad = math.pi * degree / 180.0

Traceback (most recent call last):
File "", line 1, in
rad = math.pi * degree / 180.0
NameError: name 'math' is not defined

이렇게 에러가 나는 것은 math.ri 모듈을 사용하기 위해
모듈 import를 하지 않아서 이다.


>>> import math #모듈 임포트
>>> degree = 60
>>> rad = math.pi * degree / 180.0 #
>>> rad
1.0471975511965976
>>> math.sin(rad)
0.8660254037844386


Python03-2.asf 끝
285개(14/15페이지)
프로그래밍
번호 제목 글쓴이 조회 날짜
25 [VisualStudio] Visual Studio Express 2012 다운로드/설치 첨부파일 푸딩뱃살 2731 2013.04.06 20:12
24 [Python] DC 이효리 겔러리에서 사진 추출하기 사진 artsOne 934 2009.03.27 01:54
23 [Python] 클래스 안의 함수 실행 artsOne 2544 2012.09.20 11:54
22 [Python] 기본 함수들 artsOne 4882 2012.09.12 15:39
21 [Python] Config Parser artsOne 2264 2012.08.28 13:55
20 [Python] win32 오픈오피스 실행 artsOne 2154 2012.08.01 17:38
19 [Python] 문자열의 기호들을 출력하기 artsOne 2868 2009.04.17 11:59
18 [Python] python 자료형 / 자료형 출력 artsOne 3394 2009.03.30 00:54
17 [Python] win32 모듈로 Excel 사용하기 artsOne 4113 2008.03.18 02:24
16 [Python] 용어 정리 artsone 3565 2008.02.26 23:11
15 [Python] Python 9강 - 파일 사진 첨부파일 artsone 9963 2007.11.03 02:59
14 [Python] Python 8강 - 객체의 복사 및 형 변환 사진 첨부파일 artsone 5218 2007.11.01 04:15
13 [Python] Python 7강 - 사전 사진 첨부파일 artsone 2871 2007.10.30 03:26
12 [Python] Python 6강 - 튜플 artsone 3139 2007.10.24 05:30
11 [Python] Python 5강 - 리스트 사진 첨부파일 artsone 7338 2007.10.23 22:13
10 [Python] Python 4강 - 문자열 사진 첨부파일 artsone 3700 2007.10.20 03:04
>> [Python] Python 3강 - 수치 자료형과 연산자 사진 첨부파일 artsone 4197 2007.10.18 17:01
8 [Python] Python 2강 - 파이썬 문과 기본 자료형 사진 첨부파일 artsone 5314 2007.10.15 02:25
7 [Python] Python 1강 - 파이썬이란? artsOne 3418 2007.10.11 23:36
6 [Python] [스크랩] Python은 무엇인가? artsone 1998 2008.02.26 16:20