들어가며...
오늘 어제의 내용에 이어서 변수의 다중 할당과 변수의 자료형에 대해 정리해보려고 합니다.
이전 글에서 변수에 값을 넣는 것을 '대입한다'라고 한다고 이야기했었습니다. 같은 의미인데, 변수에 값을 할당한다라고 표현하기도 합니다. 오늘은 값을 한 번에 여러 개를 할당하고 어떤 식으로 값이 들어가는지와 자료형에 대한 이야기를 적어보려고 합니다.
목차
1. 다중 할당
처음에 정리할 내용은 다중할당입니다. 말은 어려워 보이지만 크게 어렵지 않습니다. 말 그대로 한 번에 여러 개의 변수에 값을 넣어주는 것입니다.
a, b, c = 10, 100, 'a'
print(a, b, c)
a = b = c = 10
print(a,b,c)
변수의 할당을 이런식으로 작성하는 것을 다중 할당이라고 합니다. 처음에 변수에 값을 넣어주는 것은 콤마(,)로 구분이 되어있기 때문에, 처음 변수 a에 10이 대입되고 b에 100이 대입되고 c에 'a'라는 문자가 순차적으로 대입이 됩니다.
두번째의 경우엔 a, b, c,10이 이콜(=)로 묶여 있습니다. 프로그래밍에서 이콜(=) 하나의 경우엔 대입으로 해석됩니다. 즉, 값 10은 c에 대입되고, b는 c의 값을 대입하고, a는 다시 b의 값을 대입받아 세 개의 변수가 같은 값을 가지게 되는 것입니다.
실제로도 문법이 잘못되었다는 메시지 없이 정상적으로 잘 실행이 되는 것을 확인할 수 있습니다.
2. 자료형
이번에는 자료형에 대한 이야기를 정리해보려고 합니다. 이전 글에서 잠깐 언급한 적이 있지만, python에서는 많은 자료형이 존재합니다. 크게 int(정수), float(소수), str(문자형), bool(부울형, 참 또는 거짓)의 값들이 존재합니다. 또한 이러한 자료형은 type() 명령어를 통해서 지금의 변수가 어떤 자료형을 저장하고 있는지를 확인할 수 있습니다.
a, b, c = 10, 3.14, 'a'
print(a, b, c,'\n')
print(type(a))
print(type(b))
print(type(c))
또한, 이 자료형은 int와 float의 경우엔 둘 다 숫자여서 상관이 없지만, 숫자와 문자를 연산하려고 하면 type error가 표시되며 동작하지 않습니다.
a, b, c = 10, 3.14, '10'
print(a, b, c,'\n')
print(type(a))
print(type(b))
print(type(c))
print(a + c)
unsupported operand type(s) for +: 'int' and 'str'
이라는 메시지가 표시되며, 연산이 되지 않습니다.
이런 경우엔 자료형 타입을 변경해주면서 강제로 연산을 진행할 수 있습니다. 자료형의 타입을 변환하는 것을 형변환이라고 하며 다음과 같은 명령어들을 사용합니다.
a, b, c = 10, 3.14, '10'
print(a, b, c,'\n')
print(type(float(a)))
print(float(a))
print(a + int(c))
print(str(a) + c)
위 명령어들의 실행 결과는 다음과 같습니다.
1. int(정수형) 10이었던 a변수를 float형으로 강제로 형변환을 한 뒤, type() 함수를 통해 자료형을 확인해봤습니다.(flaot라고 표시됨)
2. int(정수형) 10이었던 a변수를 float형으로 강제로 형변환을 한 뒤, 출력해보았습니다.(소수점이 표시됨)
3. 위에서 에러로 표시되면 int(정수형)과 str(문자형)의 연산을 c변수를 int(정수형)으로 변환하여 진행했습니다.
4. 위에서 에러로 표시되면 int(정수형)과 str(문자형)의 연산을 a변수를 str(문자형)으로 변환하여 진행했습니다.
위에 결과처럼 자료형에 따라서 연산되는 결과가 다르므로, 자료형이 어떤것이 들어가 있는지를 확인하는 것은 매우 중요합니다.
'파이썬(Python) > 파이썬 기초' 카테고리의 다른 글
[ 파이썬 기초] #0x08 Python Random 함수 (0) | 2023.12.05 |
---|---|
[ 파이썬 기초] #0x07 Python 사용자 입력과 다양한 출력 (0) | 2022.11.20 |
[ 파이썬 기초] #0x05 Python 상수와 변수 (0) | 2022.11.10 |
[ 파이썬 기초] #0x04 Python 기본 내장 함수 (0) | 2022.11.03 |
[ 파이썬 기초] #0x03 Python 다양한 출력 및 주석 (0) | 2022.11.02 |