Develop/Python

변수와 자료형 - 기본 자료형

YOOZI. 2025. 1. 1. 01:31
728x90

숫자와 문자를 다뤄보자.

 

 

오늘은 파이썬의 기본 자료형인 숫자형, 논리형, 문자형 그리고 형 변환에 대해 알아보자.

오늘의 배움
  • 숫자형의 종류와 연산
  • 논리형의 개념과 연산
  • 문자형의 선언, 연산, 메서드
  • 형 변환의 필요성과 방법

기본 자료형

파이썬에서는 여러 가지 기본 자료형을 제공한다.


1. 숫자형 (Numeric)

정수형(int), 실수형(float), 복소수형(complex)이 있다.

num1 = 1          # 정수
num2 = 3.14       # 실수
num3 = 3 + 4j     # 복소수

print(type(num1))  # <class 'int'>
print(type(num2))  # <class 'float'>
print(type(num3))  # <class 'complex'>

 

숫자 자료형의 연산

숫자 자료형 간에는 기본적인 사칙연산과 파이썬에서만 가능한 특수연산을 할 수 있다.

1-1. 사칙연산 (+, -, ×, ÷) : +, -, *, /

num1 = 10
num2 = 3

print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
print(num1 / num2)

 

1-2. 특수연산 : %, //, **

num1 = 11
num2 = 7

print(num1 % num2)        #  나누기 연산을 하고 나머지를 반환
print(num1 // num2)       #  나누기 연산을 하고 몫을 반환
print(base ** exponent)   #  연산자의 좌항의 수를 밑, 우항의 수를 지수로 하여 제곱 연산한 결과를 반환

2. 논리형 (Boolean)

참(True) 또는 거짓(False)을 표현한다. 논리형은 조건문이나 비교 연산에서 사용된다.

bool1 = True
bool2 = False
print(type(bool1))  # <class 'bool'>

 

2-1. 논리 자료형의 연산_비교 연산 : ==, !=, >, <, >=, <=

  • == : 좌항과 우항의 값이 동일한지 비교하여, 같으면 True, 같지 않으면 False를 반환한다.
  • != : 좌항과 우항의 값이 같지 않은지 비교하여, 서로 다르면 True, 같으면 False를 반환한다.
  • , < : 일반적으로 수학에서 사용하는 부등호와 같이 좌항과 우항의 크고 작음을 비교한다.
  • =, <= : 같거나 크다 또는 같거나 작다를 비교한다.
print(1 == 3)                            # False
print('ohgiraffers' != 'Ohgiraffers')    # True
print(100 > 99)                          # True
print(100 < 99)                          # False
print(0 >= 1)                            # False
print(0 <= 1)                            # True

 

2-2. 논리 연산 : AND, OR, NOT

  • and : 좌항과 우항의 비교 연산 결과 또는 논리 자료형이 전부 True여야만 True의 결과를 반환한다. 하나라도 False이면 False를 반환한다.
print(1 != 3 and 100 > 99 and True)        # True
print(1 != 3 and 100 > 99 and 100 < 99)    # False
  • or : 좌항과 우항의 비교 연산 결과 또는 논리 자료형 중 하나라도 True이면 True의 결과를 반환한다. 전부 False이면 False를 반환한다.
print(1 != 3 or 100 > 99 or True)        # True
print(1 != 3 or 100 > 99 or 100 < 99)    # True
print(1 == 3 or False or 100 < 99)       # False
  • not : 우항에 있는 비교 연산 결과 또는 논리 자료형을 뒤집는다. 즉, True가 오면 False를, False가 오면 True를 반환한다.
print(not'ohgiraffers' == 'Ohgiraffers')    # True
print(not True)                             # False

3. 문자형 (String)

문자형은 큰따옴표(" ") 또는 작은따옴표(' ')로 선언할 수 있다. 예를 들어, 친구의 이름을 저장할 때 사용할 수 있다.

my_name = '다람쥐'
print(my_name)  # 출력: 다람쥐

 

  • 삼중 따옴표를 사용하면 여러 줄의 문자열을 간편하게 표현할 수 있다.
print("""
세상에서 제일 긴 게 뭘까요?
기차? 기린의 목? 코끼리의 코?
전부 아닙니다.
여러분의 무한한 가능성입니다^^
""")

문자형 연산

1. 문자열 이어 붙이기

문자형 간에 + 연산자를 이용하여 문자열을 이어 붙일 수 있다.

greeting = "반갑습니다"
name = "다람쥐"

print(greeting + name)                         # 출력: 반갑습니다다람쥐
print(greeting + "다. " + name + "입니다!")    # 출력: 반갑습니다다람쥐입니다!

 

다른 자료형과의 연산은 자동 형 변환이 불가능하다.

# print(900 + "살 " + name + "이올시다.")  # 오류 발생

 

따라서 다른 자료형은 문자형으로 변환한 뒤 연산이 가능하다.

print(str(900) + "살 " + name + "이올시다.")  # 출력: 900살 다람쥐이올시다.

 

2. 문자열 반복하기

문자형에 * 연산을 사용하면 문자열을 반복할 수 있다.

subject = "python"
print("무슨 일이든 시작 전에 세 번만 외쳐보자. " + ("나는 " + subject + "을 잘할 수 있다! ") * 3)
# 출력: 무슨 일이든 시작 전에 세 번만 외쳐보자. 나는 python을 잘할 수 있다! 나는 python을 잘할 수 있다! 나는 python을 잘할 수 있다!

문자형의 메서드

1. replace(old, new)

문자열에서 특정 부분을 치환하는 메서드이다.

enroll_date = '2024/12/16'
rep_enroll_date = enroll_date.replace("/", "-")
print(rep_enroll_date)    # 출력: 2024-12-16

2. strip([chars])

문자열의 양쪽 끝에서 지정된 문자를 제거하는 메서드이다. 인자를 생략하면 공백을 제거한다.

origin = 'ohgiraffers'
with_white_space = '   oh giraffers  '

# 인자 생략 == 공백 제거
print(with_white_space.strip())    # oh giraffers

# '   o'까지 제거
print(with_white_space.strip('   o'))    # h giraffers

# 'os' 제거
print(origin.strip('os'))    # hgiraffer

# lstrip() - 선행만 제거
print(origin.lstrip('os'))    # hgiraffers

# rstrip() - 후행만 제거
print(origin.rstrip('os'))    # ohgiraffer

3. 대소문자 관련 메서드

문자열의 대소문자를 변경하는 메서드가 있다.

  1. upper() : 대문자로 변경한다.
  2. lower() : 소문자로 변경한다.
  3. capitalize() : 첫 글자만 대문자로 변경한다.
  4. swapcase() : 대문자는 소문자로, 소문자는 대문자로 변경한다.
  5. title() : 단어의 첫글자를 대문자로 변경한다.
origin_str = 'hELLO wORLD!'

print(origin_str.upper())         # HELLO WORLD!
print(origin_str.lower())         # hello world!
print(origin_str.capitalize())    # Hello world!
print(origin_str.swapcase())      # Hello World!
print(origin_str.title())         # Hello World!

문자형 포맷팅

1. % 포맷팅 : 변수 포맷을 사용하여 문자열에 변수 값을 삽입할 수 있다. (오래된 방식)

  • 변수 포맷 종류
    • %s : 문자열
    • %c : 문자
    • %d : 정수
    • %f : 실수
x = 10
print("x is %d" %x)    # x is 10

y = "code"
print("y is %s" % y)    # y is code

 

2. format() : 타입 명시 없이 format() 함수를 이용할 수도 있다.

{인덱스0}, {인덱스1} = {인덱스2}.format(a,b,a*b)

 

단, 이때 이때 더 큰 범위로만 자동 형 변환된다.

x, y = 10, "code"

print("x is {0}".format(x))                                        # x is 10
print("x is {0} y is {1}".format(x,y))                             # x is 10 y is code
print("x is {new_x} and y is {new_y}".format(new_x=x, new_y=y))    # x is 10 and y is code

 

3. f-string : 변수를 활용하여 문자열을 구성할 때, 따옴표 앞에 f를 붙이고 따옴표 안에서 중괄호{} 안에 변수명을 넣어 활용할 수 있다.

teacher_name = "다람쥐"

print(f"안녕하세요. 오늘부터 여러분과 함께 공부할 {teacher_name} 강사입니다~!")
# 안녕하세요. 오늘부터 여러분과 함께 공부할 다람쥐 강사입니다~!

4. 주석

주석은 컴퓨터가 해석하지 않는 구문이다.


1. 한 줄 주석

# 기호를 사용하여 한 줄 주석을 작성할 수 있다.

# 이 줄은 해석되지 않습니다.
print('이건 해석하구요')  # 출력: 이건 해석하구요

 

2. 여러 줄 주석

삼중 따옴표(''' 또는 """)를 사용하여 여러 줄 주석을 작성할 수 있다.

'''
이렇게 작성하면
여러 줄 주석이 적용됩니다.
'''
print('여기만 출력됩니다.')  # 출력: 여기만 출력됩니다.

5. 형 변환

형 변환이란, 서로 다른 자료형 간 연산 등을 위하여 다른 자료형으로 타입을 변환하는 것이다.'

 

형 변환의 종류

5-1. 암시적 형 변환

print(True + 3)    # 4
print(3 + 5.0)     # 8.0
# print(3 + "5")   # 암시적 변환 불가

 

5-2. 명시적 형 변환

  • int(자료형) : 문자형이나 숫자형 중 실수를 정수로 형 변환하는 함수
    • 단, 형식에 맞는 문자열만 정수로 변환 가능하다.
print(int('3') + 4)        # 7
# print(int("3.5") + 2)    # 문자열의 형태가 정수형이 아니므로 형 변환 불가
  • float(자료형) : 문자형이나 숫자형 중 정수를 실수로 형 변환하는 함수
    • 단, 형식에 맞는 문자열만 실수로 변환 가능하다.
print(float('3'))    # 3.0
  • str(자료형) : 숫자형, 리스트, 튜플, 딕셔너리 등의 자료형을 문자로 형 변환하는 함수
    • 모든 자료형이 문자열로 형 변환 가능하다.
print(str(1))            # 1
print(str(1.0))          # 1.0
print(str({1, 2, 3}))    # {1, 2, 3}
  • list(자료형) : 문자열, 튜플, 딕셔너리 등의 자료형을 리스트로 형 변환하는 함수
    • 딕셔너리는 key 값을 가지고 리스트의 요소를 구성한다.
print(list('ohgiraffers'))    # ['o', 'h', 'g', 'i', 'r', 'a', 'f', 'f', 'e', 'r', 's']
print(list((1, 2, 3, 4, 5)))    # [1, 2, 3, 4, 5]
print(list({
    "1": "사랑하는 우리반",
    "2": "열심히 공부하십시오",
    "3": "-선생님 왈"
}))    # ['1', '2', '3']

 


 

 

숫자의 형태, 글자의 형태 모두 각기 다른 문자로 불러야 한다는 게 신기했다.

그리고 내 손에서 코드가 나오고 출력이 되니 신기했다.

 

다음 시간에는 'Sequence 자료형 (String, List, Tuple)'에 대해 알아보자.

728x90

'Develop > Python' 카테고리의 다른 글

변수와 자료형 - 변수  (0) 2025.01.01
VScode 알아보기  (0) 2024.12.30
JupyterNotebook 알아보자  (0) 2024.12.30
개발환경 구축 - 가상환경(Anaconda) 설치  (0) 2024.12.29
Python 파이썬이란 무엇인가?  (0) 2024.12.29