갈루아의 반서재

Photo by Magda Ehlers from Pexels

숫자의 결합

연산자 설명 결과
+ 더하기 5 + 8 13
- 빼기 90 - 10 80
* 곱하기 4 * 7 28
/ 부동소수점 나누기 (소수점 포함한 결과 출력) 7 / 2 3.5
// 정수 나누기 (소수점 이하 버림) 7 // 2 3
% 나머지 7 % 3 1
** 지수 3 ** 4 81

 

정수

  • 0 을 다른 숫자 앞에 넣을 수 없다
  • 숫자와 연산자 사이의 공백은 무시된다
  • 0 으로 나누는 경우 예외 발생
>>> 05
  File "<stdin>", line 1
SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
>>> 7 / 0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
>>> 7 // 0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
>>>
  • a -= 3  은 a = a -3 와 같다
  • a += 8 은  a = a + 8 와 같다
  • a *= 2 은 a = a * 2 와 같다
  • a /= 3  은 a = a / 3 와 같다
  • a //= 4 은  a = a // 4 와 같다

 

우선순위 OperatorDescription

https://docs.python.org/3/reference/expressions.html

 

6. Expressions — Python 3.8.2rc1 documentation

6. Expressions This chapter explains the meaning of the elements of expressions in Python. Syntax Notes: In this and the following chapters, extended BNF notation will be used to describe syntax, not lexical analysis. When (one alternative of) a syntax rul

docs.python.org

 

진수

진수는 1을 올림할 때 어디까지 셀 수 있느냐를 나타낸다.

  • 2진수 : 0b 또는 0B
  • 8진수 : 0o 또는 0O
  • 16진수 : 0x 또는 0X
>>> 10
10
>>> 0b10
2
>>> 0o10
8
>>> 0x10
16
>>>

 

형변환

  • in() 함수를 이용하여 다른 데이터 타입을 정수형으로 변환가능하다
  • 부동소수점의 경우 소수점을 버리고 정수 출력
  • 숫자가 아닌 경우 다음과 같은 예외 발생
  • 숫자의 타입을 섞어서 사용하면 자동 형변환 
  • 부울값은 False 는 0 혹은 0.0, True 는 1  혹은 1.0 으로 간주하여 계산함
>>> int(True)
1
>>> int(False)
0
>>> int(99.9)
99
>>> int('djdjdkfkfjkfjkfjkff')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'djdjdkfkfjkfjkfjkff'
>>>
>>>
>>> 4 + 7.0
11.0
>>> True + 2
3
>>> False + 1.0
1.0
>>>

 

부동소수점수

  • float() 를 사용하여 부동소수점수로 변환 가능
  • 유효한 부동소수점수의 문자열 (숫자, 기호, 소수점, 혹은 지수)을 부동소수점수로 변환할 수 있다
>>> float('99.9')
99.9
>>> float('1.0e4')
10000.0
>>> float('sjhksjkj')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: 'sjhksjkj'
>>>