Python - 변수와 자료형

2024. 11. 14. 09:02· Python
목차
  1. 들어가며
  2. 1. 변수란 무엇인가?
  3. 2. 변수 이름 규칙
  4. 3. 데이터 타입
  5. 3.1 숫자형 (Numeric Types)
  6. 3.2 문자열형 (String Type)
  7. 3.3 불리언형 (Boolean Type)
  8. 3.4 시퀀스형 (Sequence Types)
  9. 3.5 집합형 (Set Types)
  10. 3.6 매핑형 (Mapping Type)
  11. 4. 데이터 타입 확인 및 변환
  12. 4.1 데이터 타입 확인
  13. 4.2 데이터 타입 변환
  14. 5. 변수와 데이터 타입 활용 예시
  15. 참고 자료

들어가며

Python은 간결하고 읽기 쉬운 문법으로 널리 사용되는 프로그래밍 언어입니다. 실제 개발에서 변수와 데이터 타입을 이해하는 것은 효율적이고 오류 없는 코드를 작성하는 데 매우 중요합니다. 이 문서에서는 개발 영역에서 자주 사용되는 예제를 통해 Python에서 변수와 데이터 타입을 어떻게 사용하는지 알아보고, 각 자료형의 크기와 데이터 형태에 대해 자세히 알아보겠습니다.

1. 변수란 무엇인가?

변수는 데이터를 저장하기 위한 이름을 가진 메모리 공간입니다. 쉽게 말해, 변수는 데이터를 담는 상자라고 생각할 수 있습니다. 변수에 값을 할당하면 해당 변수는 그 값을 참조하게 됩니다. 이는 데이터베이스 연결 정보, 사용자 입력, 설정 값 등 다양한 데이터를 저장하고 활용하는 데 사용됩니다.

# 변수 선언 및 값 할당
database_host = "localhost"
database_port = 3306
is_connected = False

2. 변수 이름 규칙

변수 이름을 지정할 때 다음과 같은 규칙을 따라야 합니다:

  • 영문자(대소문자 구분), 숫자, 밑줄(_)로 구성됩니다.
  • 숫자로 시작할 수 없습니다.
  • 공백이나 특수 문자를 사용할 수 없습니다.
  • 예약어(키워드)는 사용할 수 없습니다. (예약어란 Python에서 특별한 의미로 사용되는 단어들입니다.)
# 올바른 변수 이름 예시
user_email = "user@example.com"
max_retries = 5
_is_valid = True

# 잘못된 변수 이름 예시
2nd_attempt = False    # 숫자로 시작함
user-name = "admin"    # 하이픈(-) 사용 불가
def = "function"       # 예약어 사용 불가

3. 데이터 타입

Python은 다양한 데이터 타입을 제공합니다. 데이터 타입이란 데이터의 종류를 의미합니다. 각 데이터 타입은 메모리에서 다르게 저장되며, 특정한 방법으로 처리됩니다. 주요 데이터 타입은 다음과 같습니다.

3.1 숫자형 (Numeric Types)

  • 정수형 (int): 소수점이 없는 숫자를 표현합니다. Python 3에서는 정수형의 크기에 제한이 없으며, 메모리가 허용하는 한 무한한 크기의 정수를 다룰 수 있습니다.
    • 메모리 크기: 저장되는 값에 따라 동적으로 크기가 변합니다.
    • 데이터 형태: 정수 값을 저장하는 객체.
  • total_users = 1024
  • 실수형 (float): 소수점이 있는 숫자를 표현합니다. 일반적으로 64비트 부동소수점(IEEE 754 표준)을 사용합니다.
    • 메모리 크기: 64비트 (8바이트).
    • 데이터 형태: 소수점이 있는 숫자.
  • cpu_usage = 57.3 # CPU 사용률 (%)
  • 복소수형 (complex): 실수부와 허수부로 구성된 복소수를 표현합니다.
    • 메모리 크기: 두 개의 64비트 부동소수점 숫자 (실수부와 허수부).
    • 데이터 형태: 복소수 객체.
  • impedance = 5 + 2j

3.2 문자열형 (String Type)

문자열은 문자들의 집합으로, 작은따옴표('')나 큰따옴표("")로 묶어서 표현합니다. 한 번 생성된 문자열은 변경할 수 없는(불변) 타입이며, 다양한 언어의 문자를 지원합니다.

api_endpoint = "/v1/users"
  • 메모리 크기: 문자열의 길이에 따라 다름 (문자당 최소 1바이트 이상).
  • 데이터 형태: 변경할 수 없는 문자 시퀀스 객체.

3.3 불리언형 (Boolean Type)

참(True) 또는 거짓(False)을 나타내는 데이터 타입입니다. 주로 조건을 확인하거나 상태를 표현할 때 사용됩니다.

is_active = True
  • 메모리 크기: 내부적으로 정수 0(False)과 1(True)로 표현됩니다.
  • 데이터 형태: 불리언 객체.

3.4 시퀀스형 (Sequence Types)

  • 리스트 (list): 여러 항목을 순서대로 저장하는 자료형으로, 대괄호([])를 사용합니다. 리스트 내용을 변경할 수 있으며, 다양한 데이터 타입을 포함할 수 있습니다.
    • 메모리 크기: 리스트 자체의 크기 + 각 요소의 크기의 합.
    • 데이터 형태: 변경 가능한 순서가 있는 객체 모음.
  • user_permissions = ["read", "write", "execute"]
  • 튜플 (tuple): 리스트와 비슷하지만 한 번 생성하면 내용을 변경할 수 없는 자료형입니다. 소괄호(())를 사용합니다.
    • 메모리 크기: 튜플 자체의 크기 + 각 요소의 크기의 합.
    • 데이터 형태: 변경할 수 없는 순서가 있는 객체 모음.
  • server_address = ("127.0.0.1", 8080)
  • 레인지 (range): 연속된 숫자의 시퀀스를 생성합니다. 주로 반복문에서 사용됩니다.
    • 메모리 크기: 시작점, 종료점, 스텝 정보를 저장하는 작은 크기의 객체.
    • 데이터 형태: 변경할 수 없는 숫자 시퀀스 객체.
  • for i in range(5): print(i)

3.5 집합형 (Set Types)

  • 집합 (set): 중복되지 않는 요소들의 모음으로, 중괄호({})를 사용합니다. 순서가 없고 중복을 허용하지 않습니다.
    • 메모리 크기: 요소의 개수와 크기에 따라 다름.
    • 데이터 형태: 변경 가능한 고유한 객체의 모음.
  • unique_ips = {"192.168.1.1", "10.0.0.1"}
  • 불변 집합 (frozenset): 일반 집합과 같지만 한 번 생성하면 변경할 수 없는 집합입니다.
    • 메모리 크기: 요소의 개수와 크기에 따라 다름.
    • 데이터 형태: 변경할 수 없는 고유한 객체의 모음.
  • constant_values = frozenset([3.14, 2.718])

3.6 매핑형 (Mapping Type)

  • 딕셔너리 (dict): 키(key)와 값(value)의 쌍으로 이루어진 데이터 구조로, 중괄호({})를 사용합니다. 각 키는 고유해야 합니다.
    • 메모리 크기: 저장된 항목의 수와 각 키-값 쌍의 크기에 따라 다름.
    • 데이터 형태: 변경 가능한 키-값 쌍의 모음.
  • config = { "host": "localhost", "port": 3306, "debug": True }

4. 데이터 타입 확인 및 변환

4.1 데이터 타입 확인

type() 함수를 사용하여 변수의 데이터 타입을 확인할 수 있습니다.

timeout = 30
print(type(timeout))  # <class 'int'>

4.2 데이터 타입 변환

데이터 타입을 다른 타입으로 변환하는 것을 형 변환(casting)이라고 합니다. Python에서는 다음과 같은 함수를 사용하여 형 변환을 할 수 있습니다.

# 문자열을 정수로 변환
retry_limit = int("5")

# 정수를 문자열로 변환
error_code = 404
error_message = "Error " + str(error_code)

# 실수를 정수로 변환 (소수점 이하 버림)
disk_usage = int(75.8)  # 결과: 75

5. 변수와 데이터 타입 활용 예시

다음은 변수와 데이터 타입을 활용한 간단한 프로그램 예시입니다.

# 사용자로부터 상품 가격과 수량 입력 받기
price_input = input("상품 가격을 입력하세요: ")
quantity_input = input("수량을 입력하세요: ")

# 입력된 문자열을 실수와 정수로 변환
price = float(price_input)
quantity = int(quantity_input)

# 총 가격 계산
total_price = price * quantity

# 부가세 계산 (10%)
vat = total_price * 0.1

# 최종 가격 계산
final_price = total_price + vat

# 결과 출력
print(f"총 가격은 {total_price}원이며, 부가세는 {vat}원입니다.")
print(f"최종 결제 금액은 {final_price}원입니다.")

이 예시에서는 사용자로부터 입력을 받아 적절한 데이터 타입으로 변환하고, 계산을 수행한 후 결과를 출력합니다.

참고 자료

  • Python 공식 문서
  • 점프 투 파이썬
저작자표시 비영리 변경금지 (새창열림)
  1. 들어가며
  2. 1. 변수란 무엇인가?
  3. 2. 변수 이름 규칙
  4. 3. 데이터 타입
  5. 3.1 숫자형 (Numeric Types)
  6. 3.2 문자열형 (String Type)
  7. 3.3 불리언형 (Boolean Type)
  8. 3.4 시퀀스형 (Sequence Types)
  9. 3.5 집합형 (Set Types)
  10. 3.6 매핑형 (Mapping Type)
  11. 4. 데이터 타입 확인 및 변환
  12. 4.1 데이터 타입 확인
  13. 4.2 데이터 타입 변환
  14. 5. 변수와 데이터 타입 활용 예시
  15. 참고 자료
문찬웅
문찬웅
가볍게 만나는 IT
Mild IT가볍게 만나는 IT
문찬웅
Mild IT
문찬웅
전체
오늘
어제
  • 분류 전체보기
    • ML
    • Python
    • C#
    • Unity
    • DevOps
    • Hardware
    • Software

블로그 메뉴

    공지사항

    인기 글

    태그

    • scikit-learn
    • semantic versioning
    • dataframe
    • InputClasss
    • NAS2dual
    • GitLab for Slack App
    • slack api
    • Free-Tier
    • docker-compose
    • NAS2dual Nextcloud
    • Slack Notification
    • Verdaccio
    • DevOps
    • deploy
    • SemVer
    • MinVer
    • Docker
    • correlation
    • machine-learning
    • gitlab
    • pandas
    • Publish Over FTP
    • Unity
    • 깃랩
    • NextCloud
    • 개인 NAS
    • Versioning
    • 웹스톰
    • 버저닝
    • slack

    최근 댓글

    최근 글

    hELLO · Designed By 정상우.v4.2.0
    문찬웅
    Python - 변수와 자료형
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.