이번 강의에서는 파이썬의 자료형과 자료형에 따른 연산, 그리고 수치오류와 복소수에 대해 알아보겠습니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programming
1. 널널한 교수의 기초 파이썬
05_2 자료형, 수치오류, 복소수
창원대학교 정보통신공학과 박동규, 주효진, 김덕구
2. 동영상 강의자료와 코드
• 동영상 강의(널널한 교수의 기초 파이썬)
• https://www.youtube.com/watch?
v=TK6RLGaM3Ao&list=PL2P1Vm9k53HOEn-QYXAfblQWkR0OW9mKX
• 소스코드( GitHub )
• https://github.com/dongupak/Basic-Python-Programming
3. 기본 데이터 자료형
정수 음의 자연수, 0, 자연수를 포함하는 수
실수 소수점 이하 값도 함께 표현할 수 있는 수
• 정수형(int)
• Ex : 1,2,3, -100, -200,…
• 부동소수형(float)
• Ex : 1.0, 2.0, 3.141592, 3.33333, 3456.789
• 부울형(bool) : True, False
• 문자열(str) : ‘Hello’, “World”,…
5. 수치 오류
• 1/3 의 답은 무엇일까?
• 0.3333333… 으로 시작하여 무한히 긴 3의 값을 가지는 수이다
• 컴퓨터는 무한을 표현할 수 없다
• 아래와 같이 표현된 실수 값이 파이썬에서 사용하는 float 형이
다( 오차를 포함하고 있다 )
6. 정밀도 한계
• 분수 1/3을 컴퓨터는 어떻게 표현해야 하나?
• 컴퓨터에서는 실수값을 표현할 때 (-1)s× M × 2E 와 같이
부호비트 s, 유효숫자 M, 지수 E를 이용하여 표현하며 이
값을 2진수로 저장한다
7. 컴퓨터의 실수 표현
0 0 0 … 0 0 0 0 0 … 0
s
(부호)
E(지수부) M(가수부)
10진수 2003.0을 2진수로 바꿔보자.
2003.0 = 11111010011(2) = 1.1111010011(2) × 210
이므로, E = 10, M = 1.1111010011(2)이다.
8. 정수와 실수 출력 예제
numberEx2.py 결과
파이썬의 실수 값은 실수 영역까지 다룰 수 있는 대신 정밀도에 한계가 있다
위의 예제에서 0.1 + 0.1 + 0.1 의 수학적인 결과는 0.3이다
그러나 파이썬은 이 값을 0.3과 다르다고 판단한다??????
0.1은 부동소수점수(floating point number)라고 하는데 컴퓨터는 이 수를
저장할 때 가수부, 지수부로 나누어 저장한다.
이렇게 저장된 값은 오차를 포함하고 있다 따라서 0.1+0.1+0.1의 결과는
다음과 같다
14. 복소수 자료형
• 복소수는 실수의 확장된 개념으로 실수부와 허수부를 가지는 수이다
• 파이썬은 복소수 형을 제공하며 다음과 같이 사용한다
15. 복소수 자료형
• 복소수를 표현하는 방법은 3 + 4j혹은 3 + 4J와 같이 허수부에 j나 J를 붙여서 표
현하는 방법과 함께 complex(3,4)와 같이 complex 클래스를 이용하여 표현할
수 있다(i를 쓰지 않음)
• 실수부는 .real, 허수부는 .imag 멤버변수로 조회할 수 있다
• 켤레복소수는 conjugate() 메소드로 구하며 , abs() 함수로 복소수의 크기를 알 수
있다