[kakao x goorm] Python의 자료형, 변환, 연산자 활용
Python 기초 학습: 자료형 확인 및 변환
오늘은 Python의 기본적인 자료형 확인과 변환에 대해 학습했다. type() 함수를 사용하면 변수의 자료형을 쉽게 확인할 수 있다. 아래는 다양한 자료형의 변수를 선언하고, 그 자료형을 출력하는 코드다.
v = 15.364
w = 15
x = True
y = 2 + 3j
z = "파이썬이란?"
print("v :", type(v))
print("w :", type(w))
print("x :", type(x))
print("y :", type(y))
print("z :", type(z))
#출력값
type <class 'float'>
type <class 'int'>
type <class 'bool'>
type <class 'complex'>
type <class 'str'>
자료형 변환
Python에서는 형변환 함수로 데이터 타입을 변경할 수 있다. 대표적인 함수는 아래와 같다.
int() | int 자료형으로 변환 |
float() | float 자료형으로 변환 |
str() | 문자열로 변환 |
특히, input() 함수로 입력받은 데이터는 모두 문자열이므로 계산을 하기 위해서는 형변환이 필수적이다.
num = input() # 예: 12 입력
num2 = input() # 예: 34 입력
print(num + num2) # "1234" 출력 – 문자열 결합 결과
연습문제: BMI 계산 프로그램
사용자로부터 이름, 몸무게, 키를 입력받아 BMI(체질량 지수)를 계산하는 프로그램을 작성했다. 이 과정에서 자료형 확인, 형변환, 단위 보정 등을 실습했다.
print("체질량 지수 BMI를 계산합니다~\n\n")
name = input("당신의 이름을 입력하세요: ")
weight = float(input("몸무게를 입력하세요 (kg): "))
height = float(input("키를 입력하세요 (cm): ")) / 100 # cm를 m 단위로 변환
print("변환 전 타입:", type(weight), type(height))
print("변환 후 타입:", type(weight), type(height))
bmi = weight / (height ** 2) # BMI 계산식 (몸무게 / 키^2)
print(f"{name}님의 BMI 지수는 {weight}/({height:.2f}*{height:.2f}) 이므로 {bmi:.2f}입니다.")
산술 연산자 및 대입 연산자
Python에서 산술 연산자는 기본적인 수학 연산을 수행하며, 정수와 실수를 연산할 때 결과값에 주의해야 한다.
예를 들어, 정수끼리 나눗셈을 할 때도 /를 사용하면 결과가 항상 실수가 된다.
주요 규칙
- 정수와 정수 연산
- 덧셈, 뺄셈, 곱셈: 결과는 정수
- 나눗셈 (/): 결과는 실수
- 몫 구하기 (//): 결과는 정수
- 나머지 구하기 (%): 결과는 정수
- 정수와 실수 연산: 모든 연산 결과는 실수
- 실수와 실수 연산: 모든 연산 결과는 실수
산술 연산자 종류
숫자 더하기 | + |
숫자 빼기 | - |
숫자 곱하기 | * |
숫자 제곱 | ** |
몫 구하기 | // |
나머지 구하기 | % |
나누기 | / |
대입 연산자는 계산 후 그 결과를 변수에 저장할 때 사용된다.
숫자 덧셈 후 대입 | += |
숫자 뺄셈 후 대입 | -= |
숫자 곱셈 후 대입 | *= |
숫자 제곱 후 대입 | **= |
숫자 몫 후 대입 | //= |
숫자 나머지 후 대입 | %= |
숫자 나눗셈 후 대입 | /= |
산술 연산 함수와 math 모듈 활용
Python에는 기본 산술 연산 외에도 유용한 함수들이 있다.
주요 함수
abs(x) | x의 절대값 |
divmod(x, y) | x를 y로 나눈 몫과 나머지를 튜플로 반환 |
pow(x, y) | x의 y 제곱 (x ** y) |
round(x, y) | x를 소수점 y자리에서 반올림 |
추가로, math 모듈을 임포트하면 고급 수학 기능과 상수를 사용할 수 있다.
math 모듈 주요 기능
ceil(x) | x보다 크거나 같은 정수 중 가장 작은 수 |
floor(x) | x보다 작거나 같은 정수 중 가장 큰 수 |
trunc(x) | x의 소수점 이하 버림 |
fabs(x) | x의 절대값을 실수로 반환 |
pow(x, y) | x의 y 제곱을 실수로 반환 |
sqrt(x) | x의 제곱근 |
log(x), log2(x), log10(x) | x의 로그값 |
pi | 원주율 상수 |
관계 연산자
값을 비교하여 참(True) 또는 거짓(False)을 반환하는 연산자이다.
같다 | == |
같지 않다 | != |
크다 | > |
작다 | < |
크거나 같다 | >= |
작거나 같다 | <= |
포함 | in |
미포함 | not in |
레퍼런스가 같다 | is |
레퍼런스가 다르다 | is not |
논리 연산자
논리적 조건을 결합하는 데 사용된다.
and | and | 양쪽 모두 참이어야 참 |
or | or | 어느 한 쪽이 참이면 참 |
not | not | 반대의 결과를 반환 (부정) |
문자열 연산자 및 함수
문자열은 시퀀스 자료형이며, 인덱스를 통해 개별 문자를 접근할 수 있다.
문자열 인덱스

아래 예시는 "Python 데이터 분석" 문자열의 정방향과 역방향 인덱스를 보여준다.
문자열 연결 | + |
문자열 반복 | *n 또는 n* |
연결 후 대입 | += |
반복 후 대입 | *=n |
문자열 길이 | len(s) |
대소문자 변환 및 정렬
문자열의 대소문자 변환 및 정렬 메소드들이다.
capitalize() | 첫 문자만 대문자로, 나머지는 소문자로 변환 |
title() | 각 단어의 첫 문자만 대문자로 변환 |
upper() | 전체 문자열을 대문자로 변환 |
lower() | 전체 문자열을 소문자로 변환 |
swapcase() | 대문자는 소문자로, 소문자는 대문자로 변환 |
center(n, x) | 전체 자리수 n에 맞춰 가운데 정렬 (x로 채움) |
ljust(n, x) | 전체 자리수 n에 맞춰 왼쪽 정렬 (x로 채움) |
rjust(n, x) | 전체 자리수 n에 맞춰 오른쪽 정렬 (x로 채움) |
특정 문자열 개수 및 인덱스 찾기
문자열 내에서 특정 문자의 개수나 위치를 찾는 메소드들이다.
count(x, a, b) | 문자열 내 x의 개수를 세며, a와 b는 검색 범위 시작과 끝 인덱스 지정 |
index(x) | 문자열 내 x의 첫 위치 반환 (없으면 ValueError 발생) |
rindex(x) | 오른쪽에서부터 x의 인덱스 반환 |
find(x) | **index**와 유사하나, 없으면 -1 반환 |
rfind(x) | 오른쪽에서부터 검색하며, 없으면 -1 반환 |
문자열 결합/분리 및 제거/채우기
문자열을 결합하거나 분리하고 양 끝의 공백 또는 특정 문자를 제거하는 메소드들이다.
startswith(x, a, b) | 문자열이 x로 시작하는지 확인 |
endswith(x, a, b) | 문자열이 x로 끝나는지 확인 |
format() | 출력 포맷을 지정하여 문자열 구성 |
format_map() | 맵을 이용해 출력 포맷 지정 |
join(x) | 리스트나 튜플의 요소들을 하나의 문자열로 결합 |
split(x, n) | 구분자 x를 기준으로 n번 분리하여 리스트로 반환 |
rsplit(x, n) | 오른쪽부터 n번 분리하여 리스트로 반환 |
splitlines() | 줄바꿈 문자(\\n)을 기준으로 분리 |
strip(x) | 양 끝의 공백 및 x 문자 제거 |
lstrip(x) | 왼쪽 끝의 공백 및 x 문자 제거 |
rstrip(x) | 오른쪽 끝의 공백 및 x 문자 제거 |
partition(x) | 문자열을 x를 기준으로 세 부분으로 분할한 튜플 반환 |
rpartition(x) | 오른쪽부터 x를 기준으로 세 부분으로 분할한 튜플 반환 |
zfill(n) | 전체 자리수가 n이 되도록 앞쪽에 0을 추가한 문자열 반환 |
문자 대체 및 구성 확인
문자열 내의 문자를 대체하거나 문자열 구성의 특성을 확인하는 함수들이다.
maketrans(x, y) | x의 문자들을 y의 문자로 매핑하는 변환 테이블 생성 |
translate(table) | **maketrans**로 생성한 테이블을 이용하여 문자열 변환 |
replace(x, y) | 문자열 내의 x를 y로 대체 |
expandtabs(tabsize) | 탭 문자의 크기를 지정한 길이로 변경 |
isalnum() | 문자열이 알파벳과 숫자로만 구성되었는지 확인 |
isalpha() | 문자열이 오직 알파벳 문자로만 이루어졌는지 확인 |
isdigit() | 문자열이 오직 숫자로만 이루어졌는지 확인 |
islower() | 문자열이 모두 소문자인지 확인 |
isspace() | 문자열이 공백 문자로만 이루어졌는지 확인 |
istitle() | 각 단어의 첫 문자가 대문자인지 확인 |
isupper() | 문자열이 모두 대문자인지 확인 |
isdecimal() | 문자열이 모두 숫자로 구성되어 있는지 확인 |
isidentifier() | 문자열이 유효한 식별자인지 확인 |
isnumeric() | 문자열이 숫자로만 이루어졌는지 확인 |
조건문과 반복문 활용
If문 (조건문)
조건문은 특정 조건에 따라 코드 실행 여부를 결정한다.
if 조건식:
실행문장
elif 조건식:
실행문장
else:
실행문장
For문 (반복문)
반복문은 리스트나 시퀀스 내 요소들을 순차적으로 작업할 때 사용한다.
for 변수 in [a1, a2, ..., ak]:
실행 문장
또한, range() 함수를 활용해 특정 범위 내에서 반복 작업도 가능하다.
for 변수 in range(시작값, 끝값+1, 증분값):
실행 문장
오늘의 회고
오늘은 Python 기초 문법과 실습을 통해 기본기를 다지는 시간을 가졌다. 특히 자료형 확인 및 변환과 산술 연산자를 활용한 다양한 예제를 통해 Python 코드 작성 능력을 한 단계 높일 수 있었다.
BMI 계산 프로그램은 간단하지만 실질적인 문제 해결 과정을 포함하고 있어 매우 유익했다. 이러한 기초 학습이 앞으로 생성형 AI 프로젝트를 진행하는 데 중요한 기반이 될 것이라 생각한다.