[Python] 기초 - 형 변환(Type Casting)

ITmakesmeSoft·2022년 9월 3일
0

PYTHON [BASIC]

목록 보기
12/13
post-thumbnail
post-custom-banner

형 변환(TypeCasting)

  • 파이썬에서 데이터 형태는 서로 변환할 수 있음
  • 암시적 형 변환(impicit) ⇒ 자동
    • 사용자가 의도하지 않고, 파이썬 내부적으로 자료형을 변환하는 경우

      # 1. bool type
      print(True + 3) # 4
      
      # 2. Numeric type (int, float)
      print(3 + 5.0)  # 8.0
  • 명시적 형 변환(Explicit) ⇒ 의도
    • 사용자가 특정 함수를 활용하여 의도적으로 자료형을 변환하는 경우

    • int
      - str, float ⇒ int
      - 단, 형식에 맞는 문자열만 정수로 변환 가능

      # 문자열은 암시적 타입 변환이 되지 않음
      	print('3'+ 4) # TypeError : can only concatenate str (not "int") to str
      
      # 명시적 타입 변환이 필요
        print(int('3') + 4) # 7
      
      # 정수 형식이 아닌 경우 타입 변환할 수 없음
        print(int('3.5') + 4) # ValueError : invalid literal for int() with base 10:
    • float
      - str(참고), int ⇒ float
      - 단, 형식에 맞는 문자열만 float로 변환 가능

      print('3.5'+3.5)  # TypeError : can only concatenate str (not "float") to str
      
      # 정수 형식인 경우에도 float로 타입 변환
      print(float('3')) # 3.0
      
      # float 형식이 아닌 경우 타입 변환할 수 없음
      print(float('3/4') + 5.3) # ValueError : could not convert string to float:
    • str
      - int, float, list, tuple, dict ⇒ str

      print(str(1))          # '1'
      print(str(1.0))        # '1.0'
      print(str([1, 2, 3]))  # '[1, 2, 3]'
      print(str({1, 2, 3}))  # '{1, 2, 3}'

컨테이너 형 변환

파이썬에서 컨테이너는 서로 변환 가능

# 리스트 형변환
l = [1, 2, 3, 4]
print(str(l)) # '[1, 2, 3, 4]'
print(tuple(l)) # (1, 2, 3, 4)
print(set(l)) # {1, 2, 3, 4}
#range(l) # 불가
#dict(l) # 불가

# 튜플 형변환
t = (1, 2, 3, 4)
print(str(t)) # '(1, 2, 3, 4)'
print(list(t)) # [1, 2, 3, 4]
print(set(t)) # {1, 2, 3, 4}
#range(t) # 불가
#dict(t) # 불가

# range 형변환
r = range(1, 5)
print(str(r)) # 'range(1, 5)'
print(list(r)) # [1, 2, 3, 4]
print(set(r)) # {1, 2, 3, 4}
print(tuple(r)) # (1,2,3,4)
#dict(r) # 불가

# set 형변환
s = {1, 2, 3, 4}
print(str(s)) # '{1, 2, 3, 4}'
print(list(s)) # [1, 2, 3, 4]
print(tuple(s)) # {1, 2, 3, 4}
#range(s) # 불가
#dict(s) # 불가

# dict 형변환
d = {'name': 'ssafy', 'year': 2020}
print(str(d)) # "{'name': 'ssafy', 'year': 2020}"
print(list(d)) # ['name', 'year']   => key값만 저장됨
print(tuple(d)) # ('name', 'year')  => key값만 저장됨
print(set(d)) # {'name', 'year'}    => key값만 저장됨
# range(d) 불가
profile
💎 Daniel LEE | SSAFY 8th
post-custom-banner

0개의 댓글