안녕하세요 코드웍스입니다.
이번 시간에는 파이썬에서 제공하는 기초적인 3가지 자료형(Data type), 숫자형, 문자형, 부울형 자료형에 대해서 다루고, 각 자료형에서의 연산을 다루겠습니다. 기초적이지만 중요한 내용이니 집중해서 봐주시면 앞으로의 파이썬 학습에 큰 도움이 될 겁니다! 😎
1. 파이썬 자료형
들어가기에 앞서, 파이썬에서 제공하는 자료형들의 큰 그림을 그려보겠습니다. 아래 그림은 파이썬에서 제공하는 자료형들의 계층적 구조입니다. 보시면, 크게 숫자형, 부울형, 군집형으로 나뉩니다.
- 숫자형은 정수와 실수형으로 나뉩니다.
- 부울형은 논리적인 자료형으로 참, 거짓을 나타내는 자료형입니다.
- 군집형 자료구조는 가변형과 불변형으로 나뉘게 됩니다.
- 가변형(mutable)
- 가변형 자료구조는 값을 수정할 수 있는 자료형입니다.
- 객체가 한 번 생성된 후에도 값을 자유롭게 변경할 수 있습니다.
- 대표적으로 리스트(list), 집합(set), 딕셔너리(dictionary)가 있습니다.
- 불변형(imutable)
- 불변형 자료구조는 반대로 한 번 생성된 후 수정할 수 없는 자료형입니다.
- 대표적으로 튜플과 문자열이 있습니다.
- 군집형이 아닌 숫자형과 부울형 또한 불변형 자료구조라고 할 수 있겠습니다.
- 값을 변경하려고 하면, 새로운 객체가 생성됩니다.
- 가변형(mutable)
그럼 여기서 객체가 무엇인지 궁금해지는데요, 파이썬에서 객체란 무엇일까요? 🤔
1.1 객체란(object)?
파이썬에서 모든 것은 객체(object)입니다.
위에서 우리가 알아보았던 파이썬의 자료형들, 숫자, 문자열, 리스트 같은 모든 데이터는 파이썬에서 객체로 취급됩니다.
파이썬 객체를 쉽고 재미있게 포켓몬으로 예시를 들어 설명해보겠습니다.
파이썬 객체에는 세가지 특징이 있는데요, type, value identity가 있습니다. 이를 포켓몬에 비유해서 설명해보겠습니다.
- type - 포켓몬의 타입
- 포켓몬별로 각각의 타입이 있습니다.
- 예를 들어 피카츄는 전기타입, 파이리는 불 타입
- 객체또한 각각의 타입을 가지게 됩니다. 이는 type() 내장함수로 확인할 수 있습니다.
- value - 포켓몬의 능력치
- 각 포켓몬은 레벨별로 고유한 체력값이나 공격력이 있습니다.
- 객체가 저장하고 있는 실제 데이터를 의미합니다. 보통 변수에 저장한 값을 객체의 값이라고 합니다.
- identity - 포켓몬의 도감번호
- 각 포켓몬은 포켓몬 도감안에 고유한 번호가 부여됩니다.
- 객체도 마찬가지로 고유한 메모리 주소를 가지고 있습니다. 이는 id() 내장함수로 확인할 수 있습니다.
아래는 피카츄의 특징을 각각 변수에 저장했습니다. 그리고 각 객체의 type과 메모리 주소를 출력해보았습니다.
pikachu_type = "전기" #피카츄 타입
pikachu_hp = 140 #피카츄 hp
#피카츄 타입과 hp 변수의 값의 타입과 id 확인
print(type(pikachu_type))
print(type(pikachu_hp))
print(id(pikachu_type))
print(id(pikachu_hp))
아래는 코드웍스 텍스트드래그 코딩 모드에서 실행된 모습입니다. 오른편에는 코드가 실행된 결과값이 나옵니다.
결과를 보면, "전기"의 타입은 str, 문자열 그리고 피카츄의hp로 설정한 140은 int, 정수형으로 나온것을 확인하실 수 있습니다.
객체를 설명하면서 변수라는 단어가 나왔는데요, 변수는 뭘까요? 🤔
1.2 변수란?
파이썬에서 변수는 데이터를 저장할 수 있는 상자와 같습니다. 이건 또 무슨 소릴일까요?
포켓몬을 예시로 설명해보겠습니다. 포켓몬 게임에서 각각의 포켓몬에 대한 정보를 담고 있는 상자를 상상해보세요. 이 상자에는 포켓몬의 이름, 레벨, 체력 등의 정보가 들어갈 수 있습니다. 변수는 이러한 정보를 저장하고 관리하는 데 사용됩니다.
위에서 다뤘던 예시를 다시 가지고 왔습니다.
pokemon = "피카츄"
pokemon_type = "전기" #피카츄 타입
pokemon_hp = 140 #피카츄 hp
- pokemon, pokemon _type, pokemon _hp가 변수명이 되겠습니다. (상자이름)
- = 는 값을 넣는다는 의미입니다.
- "피카츄", "전기", 140은 변수에 넣을 값입니다. (상자에 넣는 값)
정리하자면
- 변수는 객체를 가리키고, 객체의 속성에 접근하거나 수정하는 데 사용됩니다.
- 객체는 특정 데이터를 가진 실체로, 변수는 이 객체를 참조합니다.
- 변수와 객체는 함께 사용되어 데이터를 효율적으로 저장하고 관리할 수 있도록 돕습니다.
이번 포스트에서는 파이썬의 기본적인 불변형 자료형인 숫자형, 부울형 그리고 문자열에 대해서 알아보겠습니다.

아래 접은글에는 코드웍스의 활용 팁이 나와있습니다. 참고해보세요 😊
본 포스트에서는 텍스트 드래그 코딩 모드로 실습을 진행하겠습니다!
코드웍스 tip!
텍스트 코딩으로 진행 시 (본 포스팅 모드)
>> 간단한 실습을 할때는 텍스트 드래그 코딩으로

>> 파이썬 대화형 모드로도 실습 가능합니다
대화형모드를 클릭하시면, 새로운 탭이 열리고, 파이썬 대화형 모드창이 뜨게 됩니다.
대화형 모드는 한 줄의 코드를 입력하면 즉시 실행 결과를 반환합니다. 이를 통해 코드를 실험하거나 빠르게 테스트할 수 있습니다.

블록 코딩으로 진행 시
>> 자료형 설정: 3번 내장함수 > 31번 블록
코드웍스에서는 자료형의 설정을 3번 내장함수 > 31번 블록 에서 할 수 있도록 하였습니다. 31번 블록을 클릭하시면, 다양한 자료형들이 나오는데요, 이중 우리는 정수형, 실수형, 문자형, 부울형을 알아보도록 하겠습니다.


>> 파이썬의 자료형 확인: 3번 내장함수 > 33번 블록
파이썬에서 자료형을 확인할 수 있게하는 내장함수인 type()함수를 3번 내장함수 > 33번 블록에서 제공합니다.


2. 정수형 (integer)
- 정수형(integer)은 소수점이 없는 숫자를 표현하는 자료형입니다
- 양수, 음수, 0을 포함합니다.
- 파이썬에서는 정수형을 다룰 때 int로 표기합니다.
- 크기에 제한이 없습니다.
각 변수에 정수형을 입력 후, 자료형을 출력해보겠습니다.
(f-string으로 출력하는 방식은 이전 파이썬 기초 시리즈를 참고하시면 됩니다:[파이썬 기초] 출력 print)
아래는 77, 0, -2025를 입력해서 자료형을 출력해본 코드웍스 텍스트드래그 모드입니다. 세가지 정수형 모두 int형으로 출력된 것을 확인하실 수 있습니다.
아래는 텍스트 파이썬 코드입니다.
a = 77
b = 0
c = -2025
print(f"{a}의 타입: {type(a)}")
print(f"{b}의 타입: {type(b)}")
print(f"{c}의 타입: {type(c)}")
3. 실수형(float)
- 실수형(float)은 소수점이 있는 숫자를 말합니다.
- 파이썬에서는 실수를 다룰 때 float로 표기합니다.
- 정수형과 다르게 크기에 제한이 있습니다.(아래 내용은 어려우니 참고만 하세요)
- 64비트 부동소수점 형식으로 표현되며, 크기와 정밀도에 제한이 있습니다.
- 약 1.8 × 10^308까지 표현 가능하고, 소수점 이하 약 15~17자리 정도의 정밀도를 가집니다.
정수형과 마찬가지로 실습해보겠습니다. 세가지 변수 모두 float형으로 잘 출력된 것을 확인하실 수 있습니다.
아래는 텍스트 파이썬 코드입니다.
a = 77.79
b = 0.0001
c = -2.025
print(f"{a}의 타입: {type(a)}")
print(f"{b}의 타입: {type(b)}")
print(f"{c}의 타입: {type(c)}")
4.부울형(bool)
- 부울형은 참(True)과 거짓(False)만을 표현하는 자료형입니다.
- 조건문, 반복문 등에서 많이 사용됩니다.
- 무조건 첫 글자는 대문자로 입력해야 부울형으로 인식됩니다.(true, false는 문자형으로 인식)
부울형의 타입 또한 잘 출력 된 것을 확인하실 수 있습니다.
텍스트 파이썬 코드입니다.
a = True
b = False
print(f"{a}의 타입: {type(a)}")
print(f"{b}의 타입: {type(b)}")
5. 문자열(str)
- 문자열은 문자들의 나열로, 문장이나 단어 등을 표현할 때 사용됩니다.
- 파이썬에서는 문자열을 작은따옴표(')나 큰따옴표(")로 감싸서 나타냅니다.
큰따옴표와 작은 따옴표, 그리고 여러개의 문자도 문자열로 인식하는 것을 확인하실 수 있습니다.
a = "Happy to learn"
b = "coding"
c = 'with codewalks!!!'
print(f"{a}의 타입: {type(a)}")
print(f"{b}의 타입: {type(b)}")
print(f"{c}의 타입: {type(c)}")
문자열은 단순한 글자들을 모은 것처럼 보이지만, 파이썬에서는 매우 강력한 기능을 제공합니다.
문자열은 문자들의 리스트처럼 다룰 수 있기 때문에 특정 글자에 접근하거나 부분 문자열을 추출하는 것이 가능합니다.
아래는 부분 문자열을 추출한 예시입니다.
a = "Happy to learn"
b = "coding"
c = 'with codewalks!!!'
print(f"{a}의 3번째 알파벳: {a[2]}")
print(f"{b}의 1번째 알파벳: {b[0]}")
print(f"{c}의 14번째 알파벳: {c[13]}")
또, 문자열의 길이를 알 수 있는데, 이는 len() 함수를 사용하시면 됩니다. 아래는 사용 예시입니다.
a = "Happy to learn"
b = "coding"
c = 'with codewalks!!!'
print(f"{a}의 길이: {len(a)}")
print(f"{b}의 길이: {len(b)}")
print(f"{c}의 길이: {len(c)}")
6. 자료형들의 연산
6.1 기본 산술 연산자(Arithmetic Operators)
산술 연산자는 파이썬에서 숫자 데이터 타입에 대해 기본적인 수학적 연산을 수행할 수 있도록 도와줍니다.
다음은 파이썬에서 사용되는 주요 산술 연산자입니다:
수식 연산자 | 쓰임 | 설명 |
+ | a+b | a 더하기 b |
- | a-b | a 빼기 b |
* | a*b | a 곱하기 b |
/ | a/b | a 나누기 b |
// | a//b | a 나누기 b의 몫 |
% | a%b | a 나누기 b의 나머지 |
** | a**b | a의 b승 (a를 b번 곱하기) |
이제 실습을 통해서 잘 작동하는지 알아볼까요? 🧐
6.1.1 숫자형 연산
정수형과 실수형 연산은 우리가 흔히 아는 수학에서의 연산과 같습니다. 아래는 각각의 예시입니다.
정수형(int) 연산
실수형(float) 연산
파이썬 텍스트 코드는 아래와 같습니다. 실수형 연산은 a와 b의 값을 바꿔주시면 됩니다.
a = 20
b = 8
print(f"a = {a}, b = {b}")
#더하기
print(f"a+b= {a+b}")
# 빼기
print(f"a-b= {a-b}")
#곱하기
print(f"a*b= {a*b}")
#나누기
print(f"a/b= {a/b}")
#나누기 몫
print(f"a//b= {a//b}")
#나누기 나머지
print(f"a%b= {a%b}")
# 거듭제곱
print(f"a**b= {a**b}")
6.1.2 문자열 연산
문자열에서 가능한 산술 연산자는 더하기(+)와 곱하기(*)입니다.
- + 연산자를 사용하면 두 문자열이 이어져 하나의 긴 문자열이 됩니다.
- * 연산자는 문자열을 반복하는 데 사용됩니다.
- 단, 문자열과 숫자형 사이의 덧셈은 허용되지 않습니다. 예를 들어 "Hello" + 3과 같은 연산은 오류를 발생시키며, 두 타입을 명시적으로 변환해야 합니다
a = "happy"
b = "coding"
c = "python"
print(f"a+b+c = {a+b+c}")
print(f"a*3 = {a*3}")
print(f"b*5 = {b*5}")
6.1.3 부울형 연산
부울형(Boolean) 값인 True와 False는 실제로 숫자로 취급되기 때문에 산술 연산자를 사용할 수 있습니다.
파이썬에서 True는 1로, False는 0으로 동작합니다.
a = True
b = False
print(f"a+b = {a+b}")
print(f"b-a = {b-a}")
print(f"a+10 = {a+10}")
print(f"a * 2 = {a*2}")
print(f"b + 1 = {b-1}")
6.2 복합 대입 연산자(Assignment Operators)
복합 대입 연산자는 변수에 어떤 값을 대입하면서 동시에 그 값에 대해 연산을 해주는 것입니다.
예를들어서, 아래와 같은 코드를
x = 10
x = x + 5
아래와 같이 만들 수 있습니다
x = 10
x += 5 # x = x + 5와 동일
아래는 복합대입연산자의 종류와 쓰임에 대한 설명입니다:
복합 대입 연산자 | 쓰임 | 동치 | 설명 |
+= | a+=b | a = a + b | a더하기 b한 값을 a변수에 저장 |
-= | a-=b | a = a - b | a빼기 b한 값을 a변수에 저장 |
*= | a*=b | a = a * b | a곱하기 b한 값을 a변수에 저장 |
/= | a/=b | a = a / b | a나누기 b한 값을 a변수에 저장 |
//= | a//=b | a = a // b | a나누기 b한 몫을 a변수에 저장 |
%= | a%=b | a = a % b | a나누기 b한 나머지를 a변수에 저장 |
**= | a**=b | a = a ** b | a의 b승 값을 a변수에 저장 |
이제 각 복합대입 연산자들에 대해 실제 작동하는지 실습을 해보겠습니다. 🧐
6.2.1 숫자형 연산
일반적인 연산자 텍스트 파이썬 코드입니다.
a = 13
print(f"a = {a}")
a+=7
print(f"a+=7 후의 a = {a}")
b = 20
print(f"b = {b}")
b -= 5
print(f"b-=5 후의 b = {b}")
c = 6
print(f"c = {c}")
c *= 3
print(f"c*=3 후의 c = {c}")
d= 25
print(f"d = {d}")
d /= 4
print(f"d /= 4 후의 d = {d}")
몫, 나머지, 거듭제곱 복합대입연산자 텍스트 파이썬 코드입니다.
a = 20
print(f"a = {a}")
a//=3
print(f"a//=3 후의 a = {a}")
b = 20
print(f"b = {b}")
b %= 3
print(f"b%=3 후의 b = {b}")
c = 2
print(f"c = {c}")
c **= 3
print(f"c**=3 후의 c = {c}")
6.2.2 문자열 연산
기본산술 연산에서도 언급했듯, 파이썬에서 문자열은 +와 * 연산이 가능합니다. 복합대입연산자에서도 마찬가지로 적용이 가능합니다.
a = "제오페구케"
print(f"a = {a}")
a+="최고야"
print(f"연산 후의 a = {a}")
b = "T1 2024 롤드컵"
print(f"b = {b}")
b +="리핏 가즈아"
print(f"연산 후의 b = {b}")
b *= 3
print(f"곱하기 연산 후의 b = {b}")
6.2.3 부울형 연산
기본산술 연산에서 설명한 그대로, 파이썬에서 부울형의 True는 1, False는 0 취급을 하여 연산이 가능합니다. 복합대입연산자에서도 마찬가지로 적용이 가능합니다.
a = True
print(f"a = {a}")
a+=1
print(f"연산 후의 a = {a}")
b = False
print(f"b = {b}")
b -= 20
print(f"연산 후의 b = {b}")
c = True
print(f"c = {c}")
c *= 2024
print(f"c*2024 = {c}")
6.3 논리 연산자
논리 연산자는 주로 조건을 평가할 때 사용됩니다. 논리 연산자는 부울형(Boolean) 값과 함께 작동하며, 여러 조건을 결합하거나 조건의 참/거짓 여부를 판단하는 데 활용됩니다. 아래 표는 파이썬에서 제공하는 세가지 논리연산자에 대한 설명입니다.
논리 연산자 | 쓰임 | 설명 |
or | a or b | a와 b둘다 참이 아니어도 참이다. (참 or 거짓 = 참) |
and | a and b | a와 b 둘다 참이어야 참이다. (참 and 참 ) |
not | not a | a가 거짓이면 참이다. |
6.3.1 숫자형 연산
- and 연산자: 두 값이 모두 True(0이 아님)일 때 두 번째 값을 반환하고, 그렇지 않으면 False로 평가된 첫 번째 값을 반환합니다.
- or 연산자: 두 값 중 하나라도 True이면 그 값을 반환하고, 둘 다 False일 경우 False로 평가된 값을 반환합니다.
not 연산자는 0을 false로, 1을 true로 취급, 각각 반대를 출력하게 됩니다.
6.3.2 문자열 연산
- 파이썬에서 빈 문자열("")은 False로 간주됩니다
- 비어있지 않은 문자열은 True로 간주됩니다.
- 논리 연산자를 문자열에 적용하면 값의 참/거짓 여부에 따라 결과가 달라집니다.
- and 연산
- 첫번째 a and b에 아무것도 출력이 안된 이유는 false and true이기 때문에, 빈 문자열(false)가 출력된 것입니다. 둘다 true일때는(c and d) 두번째 값을 반환합니다.
- or 연산
- 두번째 a or b는 false or true이기 때문에, 두 값중 true인 Hey가 출력된 것입니다.
- 둘다 true or true일때는 첫번째 true값을 출력하게됩니다.
6.3.3 부울형 연산
True와 False 값으로만 연산이 이루어지며, 결과도 True 또는 False로 반환됩니다.
6.4 연산자 우선순위
- 여러 연산자가 포함된 식에서 어떤 연산자가 먼저 실행될지를 결정합니다.
- 우선순위가 높은 연산자는 우선적으로 계산되고, 나중에 나오는 연산자는 그 이후에 계산됩니다.
- 괄호는 우선순위를 재정의할 수 있습니다.
우선순위 | 연산자 | 설명 |
1 | () | 괄호 |
2 | ** | 거듭제곱 |
3 | *, /, //, % | 곱셈, 나눗셈, 몫, 나머지 |
4 | +, - | 더하기, 뺄셈 |
5 | ==, !=, >, <, >=, <= | 비교 연산자 |
6 | not | 논리 NOT |
7 | and | 논리 AND |
8 | or | 논리 OR |
예시를 들어서 한번 보겠습니다.
아래 코드의 경우는 제일 높은 우선순위를 가진 거듭제곱부터 계산을 해줘야합니다. 2**2(4)를 먼저 한 후, 다음 우선순위, 곱셈을 해줍니다. 그럼, 3*4(12)를 먼저 계산 한 후, 2를 더해주게됩니다.
print(f"2+3*2**2 = {2+3*2**2}") #14
다음 예시는 가장 높은 우선순위인 괄호에 따라 결과값이 달라지는 예시입니다.
첫번째 예시는 가장 높은 우선순위인 곱하기를 먼저하고, 3*2(6)을 먼저 계산 후, 2를 더해주게 됩니다. 반면 두번째 예시에는 괄호가 있는데, 괄호안의 연산을 먼저 해주어야합니다. 즉 (2+3)을 먼저 계산, 그 후 곱셈을 해주게됩니다. 결국 5*2를 하게되어 답이 첫번째와 달라지게 됩니다. 이처럼 연산의 우선순위를 아는것은 매우 중요합니다.
print(f"2+3*2 = {2+3*2}") #8
print(f"(2+3)*2 = {(2+3)*2}") #10
논리연산자도 우선순위가 있는데요, and > or 순으로 우선순위가 높습니다. 그럼 아래 예시는, 어떤 연산먼저 해야할까요? 우선순위가 높은 연산인 and를 먼저 하게 됩니다. 즉 False and False를 먼저 연산해줍니다. 결과인 False를 이제 True or False를 연산하게되면, True가 나오게 됩니다.
print(f"True or False and False= {True or False and False}") #True
아래는 코드웍스에서 실제 실행한 결과값입니다.
이번 포스트에서는 파이썬의 기본 자료형인 숫자형, 부울형, 문자열과 각 자료형에 적용되는 다양한 연산에 대해 알아봤습니다. 이 내용은 파이썬 프로그래밍의 기초이자 핵심이 되는 부분이니, 꼭 숙지해두시면 앞으로의 학습에 큰 도움이 될 것입니다.🤗
궁금한 내용은 댓글로 남겨주시면 친절히 답변해드리겠습니다!! 🤓
긴 글이었지만 끝까지 읽어주셔서 감사합니다.
코드웍스를 이용한 블록파이썬 코딩 기초 무료 강좌도 추천드립니다!
이 강좌는 하버드대학의 파이썬 CS50P 과정을 코드웍스를 활용하여 진행합니다. 많은 관심 부탁드립니다. 😎
https://www.youtube.com/watch?v=kM1eamWtkRw&list=PLAbKdh2QGZO0eBmld5cNJL0ifXjO7StT2&index=3
본 포스트가 유용하셨다면 다른 파이썬 기초 시리즈도 참고해주세요 :)
'🦎파이썬 > 🧱 파이썬 기초 블록코딩' 카테고리의 다른 글
[파이썬 기초] 딕셔너리 dictionary (9) | 2024.10.26 |
---|---|
[파이썬 기초] 리스트 List (5) | 2024.10.16 |
[파이썬 기초] 반복문 for (5) | 2024.10.12 |
[파이썬 기초] 조건문 if (11) | 2024.09.22 |
[파이썬 기초] 출력 print (2) | 2024.09.12 |
[파이썬 기초] 입력 input (0) | 2024.08.16 |