[kakao x goorm] 생성 AI 응용 서비스 개발자 양성 과정/회고록

[kakao x goorm] Python의 자료형, 변환, 연산자 활용

Hoonia 2025. 3. 6. 16:46

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에서 산술 연산자는 기본적인 수학 연산을 수행하며, 정수와 실수를 연산할 때 결과값에 주의해야 한다.
예를 들어, 정수끼리 나눗셈을 할 때도 /를 사용하면 결과가 항상 실수가 된다.

주요 규칙

  1. 정수와 정수 연산
    • 덧셈, 뺄셈, 곱셈: 결과는 정수
    • 나눗셈 (/): 결과는 실수
    • 몫 구하기 (//): 결과는 정수
    • 나머지 구하기 (%): 결과는 정수
  2. 정수와 실수 연산: 모든 연산 결과는 실수
  3. 실수와 실수 연산: 모든 연산 결과는 실수

산술 연산자 종류

숫자 더하기 +
숫자 빼기 -
숫자 곱하기 *
숫자 제곱 **
몫 구하기 //
나머지 구하기 %
나누기 /
 

대입 연산자는 계산 후 그 결과를 변수에 저장할 때 사용된다.

숫자 덧셈 후 대입 +=
숫자 뺄셈 후 대입 -=
숫자 곱셈 후 대입 *=
숫자 제곱 후 대입 **=
숫자 몫 후 대입 //=
숫자 나머지 후 대입 %=
숫자 나눗셈 후 대입 /=
 

산술 연산 함수와 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 프로젝트를 진행하는 데 중요한 기반이 될 것이라 생각한다.