name = 'python'

age = 1991
#숫자에 ' '를 붙이면 ? -- 실행 결과는 같음
print(name, '은', age, '년 생 입니다.')


# 연산할때는 자료형이 맞아야한다. 숫자에  '---' 하면안된다.
this_year = 2021 - age

print(name, '은', this_year, '살 입니다.')

print('----------------------------------------')
plus = 1 + 2
minus = 2 * 2
multiple = 3 * 3
divide = 30 / 5 # 소수점 으로 나옴.
square = 2 ** 10
remainder = 10%5

print(plus,minus,multiple,divide,square,remainder)

#나눗셈 몫 구하기 : //
div1 = 6/5
div2 = 6//5

print(div1, div2)

print('-------------------------------------')
# 일반적인 수학에서는 실수는 정수를 포함하는 개념으로 정의.
# 파이썬에서는 실수는 정수와 부동소수점 이라는 개념을 포함하는 것으로 정의
#
# 정수는 정수영역만 다룰 수 있는 대신 항상 정확.
# 부동소수점은 실수 영역까지 다룰 수 있는 대신 완벽한 정확성은 보장하지 않는다.

print(0.1 + 0.1 == 0.2)

print(0.1 + 0.1 + 0.1 == 0.3)

print(-7/4, -7//4)
# 움수에서 // 연산자 사용시 주의
# : // 연산자는 나눗셈의 결과에서 무조건 소수점을 버리는 것이 아니라
#    나눗셈의 결과보다 작은 정수 중, 가장 큰 정수를 리턴하는 형태
print('----------------------------------------------')
# 파이썬에서는 숫자를 사용 할 때 다음과 같이 경우를 나눠서 사용
# 1) 정확해야 하지만 정수만 써도 괜찮은 경우
# 2) 정확하지 않아도 되지만 실수가 필요한 경우
#
#
# 필요에 따라 정수, 실수를 바꿔가면서 사용 할 수도 있어야 함
print( int(5.0) )

print(float(5))
print(5*1.0)

print('-----------------------------------------')
#8진수(Octal) 생성: 숫자가 0o 또는 00 (숫자 0 _ 알파벳 소문자  o 또는 대문자 0)로 시작하면됨
octal = 0o10

#16진수(Hexadecimal) 생성: 0x로 시작하면 됨
hexa = 0x89

print(octal, hexa)

print('------------------------------------')

#숫자 + 문자열 (자료형이 다름으로 에러)
text = '2021' + '1991'
number = 2021 + 1991

print(text, number)