지난 포스팅에서는 파이썬이 무엇이고 왜 배워야하는지 알려드렸습니다.
만약 앞의 포스팅을 못보셨다면 먼저 보고 오시는 것을 추천드립니다.
파이썬 기초 강의 1강 파이썬이란?
요즘 정말 핫한 프로그래밍 언어는 바로 파이썬인데요.파이썬을 처음 접하시는 분들을 위해 파이썬이 무엇이고 왜 배우면 좋은지하나씩 자세히 살펴보려고 합니다. 파이썬이 무엇인지 알아보
jaeyoon-95.tistory.com
이번 포스팅에서는 이제 파이썬에서 사용하는 변수라는 것과
데이터에는 어떤 타입이 있는지 알려드리려고 합니다.
끝까지 잘 따라와주시면 정말 좋을 것 같습니다.
질문 혹은 의견은 언제나 환영입니다!
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/017.gif)
변수란 무엇인가?
변수(Variable)를 아주 쉽게 설명하자면 컴퓨터 메모리 내에 값을 할당받는 상자라고 할 수 있습니다.
숫자나 문자 등의 데이터를 저장해서 사용할 수 있으며 "변수 이름 = 값"으로 선언할 수 있습니다.
들어가기 전 알아야 할 것들
이제부터는 코드 예시가 많이 등장할 예정입니다.
코드를 이해하기 위해서 몇 가지 알아야 할 것들이 있는데요.
바로 입력, 출력, 주석 세 가지입니다.
입력은 파이썬 코드 실행시 사용자가 갑을 입력할 수 있게 해주는 함수입니다.
아래와 같이 코드에 선언할 수 있으며, 실행시 사용자가 값을 입력해야합니다.
변수명 = input(“출력 것을 입력”)
출력은 코드 내의 데이터를 사용자가 볼 수 있도록 화면에 출력해주는 함수입니다.
아래와 같이 코드에 선언할 수 있으며, 실행시 값이 사용자에게 출력됩니다.
print(“출력할 것을 입력”)
주석은 코드 내에 할 수 있는 메모로, 실제로 실행되지는 않는 부분입니다.
코드에 대한 설명이 필요한 경우 작성하는 부분입니다.
#표기를 시작으로 작성하며, 예시는 아래와 같습니다.
#코드 설명 작성
그럼 설명에 필요한 것들을 알려드렸으니,
본격적으로 파이썬의 데이터 타입을 설명드리겠습니다.
기본 데이터 타입
파이썬의 기본 데이터 타입으로는 정수형, 실수형, 문자열, 불린 네 가지가 있습니다.
java등의 언어와 다른점이 있다면 데이터 값에 따라 동적으로 메모리를 할당한다는 것인데요.
예를 들어서 java는 정수형인 int가 4byte로 고정되어있지만, 파이썬은 값에 따라 메모리 사용량이 달라집니다.
정수형
정수형(int)은 소숫점이 없는 숫자를 의미합니다.
예를 들어 -1, 100, 99 등의 값이 있습니다.
넣는 값에 따라 메모리를 자동으로 할당받을 수 있습니다.
import sys
num1 = 10
num2 = 1000000000000
num3 = 999999999999999999999999999999
print(sys.getsizeof(num1)) # 작은 숫자 → 28 바이트
print(sys.getsizeof(num2)) # 큰 숫자 → 32 바이트
print(sys.getsizeof(num3)) # 더 큰 숫자 → 36 바이트
정수는 단순히 선언하는 것 뿐만 아니라 연산도 가능한데요.
정수로 할 수 있는 연산은 다음과 같습니다.
크게 7가지의 연산을 할 수 있는데요.
아무래도 정수라 대부분이 수학 연산인 것을 알 수 있습니다.
코드에서는 다음과 같이 사용할 수 있습니다.
a = 10
b = 3
print(a + b) # 13
print(a - b) # 7
print(a * b) # 30
print(a / b) # 3.3333
print(a // b) # 3 (소수점 버림)
print(a % b) # 1 (나머지)
print(a ** b) # 1000 (10의 3제곱)
실수형
실수형(float)은 소숫점이 있는 숫자를 의미합니다.
예를 들어 -99.9, -1, 10.99 등의 값이 있습니다.
정수와는 조금 다른 점이 8바이트의 제한이 있습니다.
±1.8 × 10³⁰⁸ 까지 표현 가능한데요.
소숫점 아래는 소수점 아래 10⁻³²⁴까지 표현 가능합니다.
만약 이보다 크거나 작아질 경우에는 inf(무한대), 0으로 처리됩니다.
big_num = 1.8e308 # 최대 float 값
bigger_num = 1.9e308 # 최대값 초과
tiny_num = 5e-324 # 표현 가능한 가장 작은 값
smaller_num = 1e-325 # 표현 불가능한 값
print(big_num) # 1.8e+308
print(bigger_num) # inf (무한대)
print(tiny_num) # 5e-324
print(smaller_num) # 0.0
실수형도 정수형과 마찬가지로 연산이 가능합니다.
실수형에서 사용 가능한 연산은 다음과 같습니다.
연산은 위에서 보셨던 정수 연산과 크게 다를 것은 없습니다.
둘이 같은 숫자형 타입이기 때문이죠.
코드에서는 다음과 같이 사용 가능합니다.
a = 5.5
b = 2.0
print(a + b) # 7.5
print(a - b) # 3.5
print(a * b) # 11.0
print(a / b) # 2.75
print(a // b) # 2.0 (소수점 버림)
print(a % b) # 1.5 (나머지)
print(a ** b) # 30.25 (5.5의 제곱)
문자열
문자열(str)은 문자 형태의 데이터들이 모인 데이터로 생각해주시면 됩니다.
큰 따옴표 혹은 작은 따옴표로 표현을 하는데요.
여러 줄의 문자열을 담고 싶다면 ''' ''' 혹은 """ """처럼 사용하기도 합니다.
문자열도 정수형과 마찬가지로 동적으로 메모리를 할당합니다.
영어는 글자당 1바이트, 한글은 2바이트 정도 사용합니다.
import sys
s1 = "A" # 1글자
s2 = "ABCD" # 4글자
s3 = "A" * 100 # 100글자
s4 = "핫" # 한글 1글자
s5 = "안녕안녕" # 한글 4글자
print(sys.getsizeof(s1)) # 50B
print(sys.getsizeof(s2)) # 53B
print(sys.getsizeof(s3)) # 149B
print(sys.getsizeof(s4)) # 76B
print(sys.getsizeof(s5)) # 82B
문자열에서 추가로 설명이 필요한 부분이 있는데요.
바로 문자열은 인덱스를 가진다는 것입니다.
즉, 문자 하나씩의 순서가 존재합니다.
인덱스는 첫 번째 문자, 마지막 문자 두 가지 기준으로 사용할 수 있어요.
먼저 "안녕하세요"라는 문자를 예시로 들어볼게요.
첫 번째 문자를 기준으로 할 경우
"안"이 0, "녕"이 1, "하"가 2, "세"가 3, "요"가 4
이렇게 첫 글자 번호를 0으로 시작하여 숫자가 하나씩 증가합니다.
마지막 문자를 기준으로 할 경우
"요"가 -1, "세"가 -2, "하"가 -3, "녕"이 -4, "안"이 -5
마지막 글자 번호를 -1으로 시작하여 하나씩 감소합니다.
이렇게 되면 문자열은 인덱싱과 슬라이싱이 가능한데요.
인덱싱이란 문자열 내에 특정 문자만 가져오는 것을 뜻합니다.
가져오는 방법은 "변수이름[인덱스]"입니다.
슬라이싱은 문자열 내에 또 다른 문자열을 가져오는 것을 뜻합니다.
가져오는 방법은 "변수이름[시작지점:끝지점]"입니다.
코드에서 사용되는 예시를 보여드릴게요.
text = "안녕하세요"
# 인덱싱
print(text[0]) # '안' (첫 번째 글자)
print(text[1]) # '녕' (두 번째 글자)
print(text[-1]) # '요' (마지막 글자)
print(text[-3]) # '하' (뒤에서 세 번째 글자)
# 슬라이싱
print(text[0:2]) # '안녕' (0부터 1까지 가져오기)
print(text[2:]) # '하세요' (2부터 끝까지)
print(text[:3]) # '안녕하' (처음부터 2까지)
print(text[1:4]) # '녕하세' (1부터 3까지 가져오기)
이번에는 문자열로 가능한 연산을 알려드리겠습니다.
생각보다 사용 가능한 연산이 굉장히 많죠?
실제 코드에서는 어떻게 사용되는지 살펴볼게요.
str1 = "Hello"
str2 = "Hi! "
str3 = "Hello, Hi!"
str4 = " hello, Python! "
result = str1 + ", " + str2 + "!"
print(result) # Hello, Hi!
print(str2 * 3) # Hi! Hi! Hi!
print(len(str3)) # 14
print(str4.upper()) # HELLO, PYTHON!
print(str4.lower()) # hello, python!
print(str4.strip()) # "hello, Python!" (앞뒤 공백 제거)
print(str4.replace("Python", "World")) # hello, World!
print(str4.split(",")) # [' hello', ' Python!']
print("-".join(["A", "B", "C"])) # A-B-C
마지막으로 문자열의 포맷팅에 대해서 알려드릴게요.
어떻게 보면 문자열이 가장 표현 폭이 넓은데요.
큰 따옴표 혹은 작은 따옴표만 있다면, 실수, 정수 모두 포함할 수 있기 때문이죠.
따라서 문자열 내에 기존에 선언했던 정수 또는 실수를 넣을 수 있습니다.
방법은 크게 f-string, format, % 세 가지가 있습니다.
f-string은 최근 많이 쓰는 방법으로 문자열 앞에 f를 쓰고, 문자열 내 정수 혹은 실수가 쓰이는 부분을 {}으로 감싸는 방식입니다.
예를 들어 f"내 나이는 {age}입니다."처럼 사용하실 수 있어요.
format은 문자열 내에 {}으로 들어갈 위치를 표기하고, 뒤에 .format()내에 값을 표기하는 방식입니다.
예를 들어 "내 나이는 {}입니다.".format(age)처럼 사용할 수 있습니다.
%는 format방식과 비슷한데, %으로 표기하는 방법입니다.
예를 들어 "내 나이는 %d입니다. "%age처럼 사용하실 수 있습니다.
문자열 내에 있는 %뒤에 붙는 알파벳은 정수는d, 실수는 f등 값에 따라 다르게 표기합니다.
코드에서 사용한다면 아래와 같이 사용됩니다.
age = 25
print(f"저는 {age}살입니다.")
print("저는 {}살입니다.".format(age))
print("저는 %d살입니다."%(age))
불린
불린(boolean)은 참 혹은 거짓을 나타내는 값으로 True 혹은 False 값을 가집니다.
True는 1, False는 0으로 취급을 받습니다.
즉, int로도 취급받을 수 있는 데이터 형태입니다.
print(True == 1) # True (True는 내부적으로 1)
print(False == 0) # True (False는 내부적으로 0)
print(True + True) # 2 (1 + 1)
print(False + 1) # 1 (0 + 1)
불린은 다음과 같은 조건에서 False로 표기될 수 있습니다.
- 정수 0
- 실수 0.0
- 문자열 '' 혹은 ""
- 리스트 []
- 딕셔너리 {}
- None
위의 나타낸 예들은 추후 배울 조건문에서 사용이 되는데요.
x = 5
if x > 0:
print("양수입니다.") # True라서 실행됨!
if x: # x가 0이 아니므로 True
print("x는 0이 아닙니다.")
이렇게 조건을 판단할 때 아주 유용하게 사용됩니다.
불린 타입도 가능한 연산이 있는데요.
바로 논리 연산자입니다.
실제 코드에서는 다음과 같이 사용합니다.
# 불린 값
a = True
b = False
# AND 연산 (둘 다 True여야 True)
print(a and b) # False
print(a and True) # True
# OR 연산 (하나라도 True면 True)
print(a or b) # True
print(False or False) # False
# NOT 연산 (True ↔ False 반전)
print(not a) # False
print(not b) # True
# 논리 연산 조합
x = 10
y = 5
print(x > 0 and y > 0) # True (둘 다 양수)
print(x > 0 or y < 0) # True (하나만 True여도 True)
print(not (x > 0)) # False (반전)
데이터 타입 변환하기
지금까지 파이썬의 변수와 기본 데이터 타입을 알아봤는데요.
마지막으로 데이터 타입을 서로 변환할 수 있는 방법을 알려드리고 이번 포스팅 마무리하겠습니다.
데이터 타입의 변환에는 크게 자동, 수동 방식이 있습니다.
자동 방식으로는 실수 + 정수의 연산을 할 경우에 진행되는데요.
실수와 정수를 연산하는 식을 작성하였을 때, 결과는 당연히 실수로 자동 변환해줍니다.
예를 들어서 10(정수) + 10.5(실수) = 20.5(실수) 이렇게 나온다는 뜻입니다.
수동 방식은 변수 혹은 수 앞에 타입 함수를 사용하여 수동으로 변환합니다.
각 타입으로 변환하기 위해서는 아래와 같은 함수를 사용합니다.
어떻게 사용하는지 코드로 한번 살펴보겠습니다.
# 숫자형 변환 (int ↔ float)
num1 = 10
num2 = 3.14
print(float(num1)) # 10 → 10.0 (정수를 실수로 변환)
print(int(num2)) # 3.14 → 3 (실수를 정수로 변환, 소수점 버림)
# 숫자 ↔ 문자열 변환
num3 = 100
text = "50"
print(str(num3)) # 100 → "100" (정수를 문자열로 변환)
print(int(text) + 10) # "50" → 50 + 10 → 60 (문자열을 정수로 변환)
# 불린 변환 (True / False 판별)
print(bool(1)) # True
print(bool(0)) # False
print(bool("Hello")) # True (문자열이 비어있지 않으면 True)
print(bool("")) # False (빈 문자열)
# 사용자 입력 변환
age = input("나이를 입력하세요: ") # 문자열 입력받음
age = int(age) # 정수로 변환
print(f"내년에는 {age + 1}살이 됩니다!")
# 리스트, 튜플, 딕셔너리의 불린 변환
print(bool([])) # False (빈 리스트는 False)
print(bool([1, 2, 3])) # True (요소가 있으면 True)
print(bool({})) # False (빈 딕셔너리는 False)
print(bool({"key": "value"})) # True (값이 있으면 True)
이번 포스팅에서는 파이썬 변수와 데이터 타입에 대해서 배워봤는데요.
다음 포스팅에서는 여러개의 데이터를 담을 수 있는 컬렉션 자료형에 대해 배워볼게요!
질문, 피드백 언제든지 환영입니다.
감사합니다:)
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/028.gif)
'언어 마스터 > 파이썬' 카테고리의 다른 글
파이썬 빈도수 계산 모듈 collections.Counter 총정리 (0) | 2025.02.12 |
---|---|
파이썬 기초 강의 1강 파이썬이란? (0) | 2025.01.31 |