파이썬 | 숫자 계산하기
파이썬에 대해서 이미 공부를 많이 했었지만 시간도 좀 지났고 다시 한 번 제대로 공부하고 싶어서 시작하게 되었다. 앞으로 정리할 내용들은 전부 코딩도장(https://dojang.io/) 강의를 보고 정리한 내용들이거나 추가적으로 공부한 내용들이다.
1. 정수 계산
5 / 2 # 2.5
4 / 2 # 2.0
5 / 2 # 2.5
4 / 2 # 2.0
파이썬 2에서는 5 / 2
를 하면 2
가 나오지만 파이썬 3 에서는 위와 같이 실수로 나온다. 그런데 만약에 4 / 2
와 같이 나누어 떨어지는 나눗셈에도 실수가 나온다.
소수점 이하를 버리는 나눗셈 ( //
)
그렇다면 나눗셈의 결과를 정수로 나타내는 방법은 없을까?
>>> 5 // 2
2
>>> 4 // 2
2
>>> 5.5 // 2
2.0
>>> 4 // 2.0
2.0
>>> 4.1 // 2.1
1.0
위와 같이 하면 된다.
이렇게 하는게 무슨 상관이 있을까 할 수 있지만 코드를 작성하다가 보면 실수인지 정수인지에 따라서 결과가 완전히 달라질 수 있기 때문에 주의해야 한다.
나머지 ( %
)
>>> 5 % 2
1
이와 같이 나머지를 구하는 연산자를 모듈 연산자 라고 한다.
거듭제곱 ( **
)
>>> 2 ** 10
1024
몫 과 나머지 (divmod)
>>> divmod(5, 2)
(2, 1)
divmod
라는 함수를 사용하면 몫 과 나머지를 동시에 구할 수 있다.
파이썬에서 값을 괄호로 묶인 형태를 튜플(tuple) 이라고 하며 값 여러개를 모아서 표현할 때 사용한다.
튜플은 변수 여러 개에 저장할 수 있다.
>>> quotient, remainder = divmod(5, 2)
>>> print(quotient, remainder)
2 1
형 변환
>>> int(3.3)
3
>>> int(5 / 2)
2
>>> int('10')
10
계산의 결과를 int
형으로 바꿔준다.
타입 확인
>>> type(10)
<class 'int'>
숫자 10 이 정수(int
) 클래스라는 의미이다. 파이썬에서는 숫자도 객체(Object)이며, 객체는 클래스(class)로 표현한다.
진수
정수는 10진수, 2진수, 8진수, 16진수 로도 표현할 수 있다.
- 2진수 :
0b
- 8진수 :
0o
- 16진수 :
0x
>>> 0b110
6
>>> 0o10
8
>>> 0xF
15
2. 실수 계산
1.5 나 3.33333 과 같이 뒤에 소수점이 붙은 것을 '실수' 라고 한다. 그렇다면 덧셈을 해보자
>>> 3.5 + 2.1
5.6
잘 나온다. 그렇다면 나머지 사직연산도 해보자.
>>> 4.3 - 2.7
1.5999999999999996
>>> 1.5 * 3.1
4.65
>>> 5.5 / 3.1
1.7741935483870968
그런데 4.3 - 2.7
결과가 조금 이상하게 나온다. 1.6
이 나와야 하는데 이상하게 1.59999...
의 결과가 나온다. 왜냐하면 컴퓨터는 실수를 표현할 때 오차가 발생하기 때문이다. (자세한 내용)
실수 + 정수
>>> 4.2 + 5
9.2
실수 + 정수를 해보면 결과는 실수로 나온다. 왜냐하면 더 표현범위가 넓은 것이 실수이기 때문이다.
실수형 변환
>>> float(5)
5.0
>>> float(1 + 2)
3.0
>>> float('5.3')
5.3
정수화를 했던것 과 비슷한 방식으로 실수형으로도 변환할 수 있다.
>>> type(3.5)
<class 'float'>
복소수
파이썬에서는 실수부와 허수부로 이루어진 복소수(complex number)도 사용할 수 있다. 이때, 허수부는 숫자 뒤에 j
를 붙인다. (수학에서는 허수를 i
로 표현하지만 공학에서는 j
를 사용한다.)
두 실수를 복소수로 만들 때는 complex
라는 함수를 사용한다.
>>> complex(1.2, 1.3)
(1.2+1.3j)
Author And Source
이 문제에 관하여(파이썬 | 숫자 계산하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jhon3242/파이썬-숫자-계산하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)