# 변수 초기화
num = 10
name = 'Hong Gil-dong'
print(num)
print(name)
👉 정수 int: 메모리 허용하는 범위 내에서 무한 사용 가능
👉 실수 float: 대략 소수점 아래 17~18번째에서 데이터 손실 발생
👉 문자(열) str
👉 논리형 bool: True, False
num1 = 10
num2 = 10.0
num3 = '10'
num4 = True
# 특정 변수 Data Type 확인
print(type(num1)) # <class 'int'> 반환
print(type(num2)) # <class 'float'> 반환
# 문자(열) 형변환
str(num1)
str(num2)
# 숫자 형변환
int(num3)
int(num4) # True = 1 로 변환
float(num1)
# 문자(열) > 논리 > 산술 연산
var1 = 'True'
var2 = 'False'
var1 = bool(var1) # 데이터가 있으면 True
var2 = bool(var2)
print(var1 + var2) # 2 반환
print(type(var1 + var2)) # <class 'int'> 반환
# 키보드로 데이터 입력 후 저장해 출력
# 기본 str 타입으로 입력됨
inputData = input()
print(inputData)
# 원하는 type에 맞게 casting
inputData = int(input())
inputData = float(input())
inputData = bool(input())
# 여러 데이터 출력
name = input()
age = input()
print('name : ', name, ', age : ', age)
# 자동개행(\n) 취소
print('3 * 5 = ', end='')
print(3 * 5)
# 포맷 문자열 이용한 출력
print(f'name : {name}, age : {age}')
# format() 함수를 활용한 데이터 출력
print('name : {}'.format(name))
print('name : {}, age : {}'.format(name, age))
# format() 함수의 인덱스를 활용해 출력
print('name : {0}, age : {1}. hi, {0}'.format(name, age))
# 형식문자를 활용해 출력
# %s(문자열), %d(정수), %f(소수), %.nf(소수점 n자리 표현)
print('name : %s, age : %d' % (name, age))
# 숫자와 문자 연산 불가능
result = num1 + fnum
print('num1 + num2 = %.2f' % (num1 + num2))
str1 + str2 # = str1str2 가능
str1 - str2 # 불가능
result = num1 * fnum
print('result = {}'.format(result))
str1 * 5 # str1str1str1str1str1
num1 / num2 # 결과값은 항상 float type
10 // 3 # = 3 몫
10 % 3 # = 1 나머지
# divmod(): 몫과 나머지를 한 번에 구해주는 함수
result = divmod(10, 3) # result에 튜플로 몫, 나머지가 들어있음
print('몫: {}'.format(result[0]))
print('나머지: {}'.format(result[1]))
2 ** 3 # = 8 n ** m n의 m제곱
9 ** (1/2) # = 3.0 n ** (1/m) n의 m제곱근
# sqrt(x), pow(x,y)
print('2의 제곱근 %.2f' % math.sqrt(2))
print('2의 3제곱 %f' % math.pow(2,3))
format(409000, ',') # = 409,000 3자리씩 ,로 끊어줌 str type으로 전환됨
result = num1 + num2 # num1+num2 값을 result에 할당
num += 5 # num = num + 5
num -= 5 # num = num - 5
num *= 5 # num = num * 5
num /= 5 # num = num / 5
num //= 5 # num = num // 5
num **= 5 # num = num ** 5
print(10 > 5) # True
print(10 < 5) # False
print(10 >= 5) # True
print(10 <= 5) # False
print(10 == 5) # False
print(10 != 5) # True
# 문자 비교는 ASCII 코드에 의해 결정됨
print('A' > 'S') # False
print(ord('A')) # = 65 A의 ASCII 코드값 출력
print(chr(65)) # = A 65의 ASCII 코드 대응 문자 출력
# 문자열 자체로 비교되어 같은지만 비교 가능
print('A' == 'S') # False
print(True and True) # True
print(False and True) # False
print(True and False) # False
print(False and False) # False
print(True or True) # True
print(False or True) # True
print(True or False) # True
print(False or False) # False
print(not True) # False
print(not False) # True
import operator
operator.add(num1, num2) # +
operator.sub(num1, num2) # -
operator.mul(num1, num2) # *
operator.truediv(num1, num2) # /
operator.mod(num1, num2) # %
operator.floordiv(num1, num2) # //
operator.pow(num1, num2) # **
operator.eq(num1, num2) # ==
operator.ne(num1, num2) # !=
operator.gt(num1, num2) # >
operator.ge(num1, num2) # >=
operator.lt(num1, num2) # <
operator.le(num1, num2) # <=
operator.and_(num1, num2)
operator.or_(num1, num2)
operator.not_(num1)
print('num1이 num2보다 크다') if num1 > num2 else print('num1이 num2보다 크지 않다')
result = 'possible' if myPoint >= minAblePoint else 'impossible'
print('포인트 사용 가능 여부: {}'.format(result))