음.... 형변환...
엄청 뭐가 많은데... 지저분하게 많아서.... 좀 생각을 하다 왔습니다.
일단 그냥 올려보겠습니다.
일단 형변환이라는 것은 데이터형을 변환하는 것을 말합니다.
ex) 정수형 int 값 -> 실수형 float 값
형변환은 형변환할 데이터형 float(형변환될 데이터)를 하면 됩니다.
float(int형 데이터 혹은 변수명) <<<--- int형 데이터를 float형으로 변환
"""
데이터 형변환
가. 기본형 데이터 변환
int(값) ==> 데이터 값을 정수형으로 변환
float(값) ==> 데이터 값을 실수형으로 변환
bool(값) ==> 데이터 값을 논리으로 변환
나. 집합형 데이터 변환
str(값) ==> 데이터 값을 문자열로 변환
list(값) ==> 데이터 값을 리스트로 변환
tuple(값) ==> 데이터 값을 튜플로 변환
set(값) ==> 데이터 값을 셋으로 변환
dict(값) ==> 데이터 값을 딕셔너리로 변환
"""
문자열 데이터를 정수형 데이터와 더할 수 없고, 실수형 데이터를 정수형 데이터와 더할 수 없기때문에 형변환은 필요합니다.
"123" + 1 ==> Error int("123") + 1 ===> 124
# 1. int로 형변환
print(int(3.14) + 1) # float
print(int("123") + 1) # string
print(int(False)) # False = 0
print(int(True)) # True = 1
print("="*40)
# 2. float로 형변환
print(float(3) + 1) # int
print(float("123.4") + 1) # string
print(float(False)) # False = 0.0
print(float(True)) # True = 1.0
print("="*40)
# 3. str으로 형변환
print(str(10)) # int
print(str(3.14)) # float
print(str(False)) # False = 0
print(str(True)) # True = 1
print("="*40)
위의 코드의 실행 결과입니다.
형변환도 중요하지만
bool 데이터 형변환을 이야기하면서 가장 중요한 것은
python의 논리값은 True와 False만 사용되는 것이 아니라는 것입니다.
python의 논리값은
정수형 0, 빈 문자열 " ", Null 값 None, 빈 리스트 [], 빈 딕셔너리 { } 값 역시 False로 처리됩니다.
그리고 위의 5가지를 제외한 모든 값은 True로 처리됩니다. 매우 중요합니다.
# 4. bool로 형변환
"""
**** Python의 논리값은 True / False 만 사용되지 않는다.
=> 기본 / 집합형 데이터도 논리값으로 사용 가능하다. **** java는 True / False만 가능
**** 매우 중요***
False로 처리되는 값 : 0, "" (빈 문자열), None, [] 빈 리스트, {} 빈 딕셔너리*
True로 처리되는 값 : 위의 5가지를 제외한 모든 값
ex) 10, "a", [10, 10, 30], {key : value}
"""
# 가. False로 처리되는 데이터
print(bool(0))
print(bool(""))
print(bool(None))
print(bool([]))
print(bool({}))
print("="*40)
# 나. True로 처리되는 데이터
print(bool(10))
print(bool("오"))
print(bool(not None))
print(bool([10, 10, 20]))
print(bool({"age":25}))
print("="*40)
위 코드의 실행 결과입니다.
하하하. 쨋든
형변환을 하지 않고 처리하려하면 데이터형이 일치하지 않아 에러가 나올 수 있다는 점 역시 중요합니다.
# 적용 사례 (*****)
#1. "123" --> 123 ## 연산을 위해 str을 int로 형변환
s2 = "123"
# print(s +10) # 에러 코드, string 값 + integer => 불가능
print ("s2(123) + 10 = ", int(s2) + 10)
print("="*40)
#2. 123 ---> "123" ## 문자열 간에 합성을 위해 형변환
s3 = 123
# print(n + "값") # 에러 코드
print(str(s3) + "값")
위 코드의 실행결과입니다.
형변환을 하지 않고 처리하면 오류가 날 수 있다.
처리 전엔 형변환이 필요.
0, "" (빈 문자열), None, [] 빈 리스트, {} 빈 딕셔너리는 False와 함께 논리형 bool 데이터에서 False값을 만든다.
(나머지는 True 값)
이 중요합니다.
이쯤해서 빠르게 종료하겠습니다~
할게 많아서요~~ ㅎㅎ.
이렇게~ 3일째에 1일차를 끝냈습니다~~ 다행이면서.. 내일 또 4일차가 생길 것을 생각하니 머리가......
쨋든... 고롬 이만~~
'SK 행복성장캠퍼스 > Python 기초' 카테고리의 다른 글
0901_2일차_Python07_연산자1_산술연산자 (0) | 2020.09.03 |
---|---|
0831_1일차_연습문제 (0) | 2020.09.03 |
0831_1일차_Python05_표준입력 (0) | 2020.09.02 |
0831_1일차_Python04_포멧출력 (0) | 2020.09.02 |
0831_1일차_Python03_표준출력 (0) | 2020.09.02 |
댓글