본문 바로가기
AI Basic/Python

[Python] 01 Variables and Data Type

by iamzieun 2023. 3. 6.

포스팅 개요

본 포스팅은 프로그래밍에서의 변수와 파이썬의 data type에 대해 정리한 글입니다. 

01 Variables & Memory

  • variable 변수
    • 변수는 value(값)을 저장하기 위한 메모리의 주소에 부여한 프로그래밍 상의 이름
    • 변수에 할당된 값은 변수가 가리키고 있는 메모리에 저장됨
    a = 5
    b = 3
    a + b
    # a, b: variable
    # 5, 3: value
    # 5, 3이라는 값들은 a, b라는 variable이 가리키고 있는 메모리 상에 저장된다
    
  • 변수명 작명 방법
    • 변수명은 알파벳, 숫자, 언더스코어(_)로 구성한다
      • ex. num = 1, string_1 = “hi”
    • 변수명은 의미 있는 단어로 표기하는 것이 좋다
      • ex. name = “hailey”
    • 변수명은 대소문자를 구분한다
      • name ≠ NAME
    • 예약어(reserved word)는 변수명으로 사용하지 않는다
      • 예약어(reserved word): 컴퓨터 프로그래밍 언어에서 이미 문법적인 용도로 사용되고 있기 때문에 식별자로 사용할 수 없는 단어

02 Data Type & Basic Operations

data type

  • data type: 파이썬이 처리할 수 있는 데이터 유형

cf. statically typed language vs dynamically typed language

  • statically typed language: 컴파일 시 변수의 data type이 결정됨
  • dynamically typed language: 런타임 시 (코드 실행 시점에) 변수의 data type이 결정됨

연산자와 피연산자

  • 연산자: +, -, *, / 와 같이 연산을 수행하는 기호들
  • 피연산자: 연산자에 의해 계산이 되는 숫자들
    • ex. 3 + 2
      • + : 연산자
      • 3, 2 : 피연산자

주석

  • # 사용 → 한 줄로만 작성 가능
  • “”” “”” / ‘’’ ‘’’ 사용 → 여러 줄로도 작성 가능

숫자형 자료형 numeric

  • type(변수명): 변수의 자료형을 출력
  • 정수형 Integer
  • 실수형 float
    • scientific notation: 3.4E-10 / 3.4e-10 = 3.4 * 10^-10
    • (출력시에는 모두 소문자 e로 출력됨)
  • 복소수형 complex
    • 표현 방법
      • complex 함수 활용
      • j 활용
  • 숫자형을 활용한 연산자
    • x + y
    • x - y
    • x * y
    • x / y
    • x // y
    • x % y
    • pow(x, y) / x ** y
    • +x
    • -x
    • abs(x)
    • int(x)
    • float(x)
    • complex(re, im)
    • c.conjugate(): 켤레복소수 출력
    • divmod(x, y): x를 y로 나눈 (몫, 나머지)
  • cf. 컴퓨터는 왜 이진수를 쓸까?
    • 컴퓨터는 특정 자극을 줬을 때 전기를 통하게 하는 물질인 ‘반도체’로 구성되어 있다.
    • 따라서 전류가 흐를 때 1, 흐르지 않을 때 0으로만 숫자를 표현할 수 있기에 컴퓨터는 이진수를 사용한다.

문자열 자료형 string

  • 문자열 string
    • 파이썬의 내장 시퀀스 자료형 중 하나
      • 파이썬 내장 시퀀스 자료형: 문자열, 튜플, 리스트, 바이트 배열, 바이트
    • 영문자 한 글자는 1byte의 메모리 공간을 사용
      • 한 글자씩(1byte씩) 메모리 공간이 할당됨
    cf. 1byte의 메모리 공간?
    • 1byte
      • 컴퓨터는 이진수로 데이터를 저장하는데, 이진수 한 자릿수는 1bit로 저장된다
      • 즉, 1bit는 0 또는 1을 나타낼 수 있다
      • 이러한 1bit 8개가 모인 것이 1 byte이다
      • 따라서 1 byte = 8 bit = 2 ** 8 = 256까지 저장이 가능하다
    • 1byte에 문자가 저장되는 방식
      • 컴퓨터는 모든 데이터를 이진수로 인식하기에, 문자를 문자 자체로 인식하지 못한다
      • 이에 문자를 이진수로 변환하는 표준 규칙(ASCII 코드 등)이 정해져있다
      • 이러한 규칙에 따라 문자를 이진수로 변환하여 저장하거나, 저장된 이진수를 문자로 변환하여 표시함
        • 문자 → 숫자 → 이진수
      ⇒ 컴퓨터는 문자를 처리할 때 문자 그대로 이해하는 것이 아니라, 정해진 규칙에 따라 숫자로 변형하여 이해한다
    cf. 프로그램 언어에서의 데이터 타입
    • 데이터 타입 별로 각각 다른 크기의 메모리 공간이 할당되어 있다
    • → 메모리의 효율적인 활용을 위해 상황에 따라 적절한 데이터 타입을 선택하여 사용하는 것이 바람직하다
  • 문자형 자료 만들기
    • “로 양쪽 둘러싸기 → 한 줄로만 작성 가능
    • ‘로 양쪽 둘러싸기 → 한 줄로만 작성 가능
    • “””로 양쪽 둘러싸기 → 여러 줄로 작성 가능
    • ‘’’로 양쪽 둘러싸기 → 여러 줄로 작성 가능
  • 문자열 안에 따옴표를 포함시키고 싶을 때
    • ‘를 문자열 안에 사용할 때에는 “ 사용
    • “를 문자열 안에 사용할 때에는 ‘ 사용
    • \를 사용해서 ‘, “를 문자열에 포함시키기
  • 문자열 안에서 줄바꿈을 하고싶을 때
    • 이스케이프 코드 \n 삽입하기
      • 이스케이프 코드
        • \n: 문자열 안에서 줄을 바꿀 때 사용
        • \t: 문자열 사이에 탭 간격을 줄 때 사용
        • \\: \를 표현할 때 사용
        • \’: ‘를 표현할 때 사용
        • \”: “를 표현할 때 사용
    • ‘’’ ‘’’ / “”” “”” 사용하기
  • 문자열 연산하기
    • 문자열 합치기 concatenation: + 사용
    • 문자열 반복: * 사용
  • 문자열 인덱싱과 슬라이싱
  • 문자열 포맷팅 formatting
    • %-format
      • 문자열 포맷 코드
        • %d: 정수
        • %f: 실수
        • %o: 8진수 ← 10진수를 넣으면 8진수로 바꿔서 출력
        • %x: 16진수 ← 10진수를 넣으면 16진수로 바꿔서 출력
        • %c: 문자 1개
        • %s: 문자열
        • %%: %
    • format 함수
      • 인덱스 위치 사용
    • fstring
  • 문자열 관련 함수
    • len(x)
    • x.count(”a”)
    • x.find(”a”): -1 if not found
    • x.index(”a”): value error if not found
    • “a”.join(x)
    • x.upper()
    • x.lower()
    • x.replace(”a”, “b”)
    • x.lstrip() / x.rstrip() / x.strip()
    • x.split(”a”)

불 자료형 bool

  • 불 자료형이 False인 것들: 0, “”, 빈 값

리스트 자료형 list

  • 리스트 만들기
  • 리스트 인덱싱과 슬라이싱
    • 인덱싱: 요소의 원래 자료형으로 반환
    • 슬라이싱: 리스트 형태로 반환
  • cf. iterable 객체의 인덱싱과 슬라이싱
  • 리스트 연산하기
    • 리스트 합치기: + 사용
    • 리스트 반복하기: * 사용
    • 리스트 길이 구하기: len 사용
  • 리스트의 값 변경과 삭제
    • 요소 값 변경
    • del을 이용한 요소 삭제
  • 리스트 관련 함수
    • x.sort(): reverse=True → 내림차순
    • x.reverse()
    • x.index(a): value error if not found
    • x.append()
    • x.insert(a, b)
    • x.extend(a)
      • append, insert: 하나의 요소로 추가됨
      • extend: 리스트 확장 형식으로 추가됨
    • x.remove(a)
    • x.pop(1); 인덱스 값을 사용해서 삭제
    • x.count(a)
    • x.copy()

튜플 자료형 tuple

  • 튜플과 리스트의 공통점 / 차이점
    • 공통점
      • 모든 자료형을 요소로 사용 가능
      • 순서가 있는 자료형으로, indexing / slicing 가능
      • 덧셈 및 곱셈 연산 가능
    • 차이점 
      리스트 튜플
      []로 표현 ()로 표현
      요소의 생성, 삭제, 변경 가능 요소의 생성, 삭제, 변경 불가
      요소가 하나일 때는 [1] 요소가 하나일 때에는 1, / (1,) (반드시 콤마 필요)
  • 튜플 요소의 값 삭제 및 변경 시도 → type error
  • 튜플의 인덱싱과 슬라이싱
    • 인덱싱 → 요소값 반환
    • 슬라이싱 → 튜플 형태로 반환
  • 튜플 관련 함수
    • 튜플은 immutable 객체이기 때문에 insert, append, extend x

딕셔너리 자료형 dictionary

  • key의 조건
    • 고유한 값이어야 함; 중복되지 않아야 함
    • immutable (hashable) 객체만 들어갈 수 있음
      • ex. 문자열, 단일 숫자, 튜플
  • 딕셔너리 추가와 삭제
    • 딕셔너리 key & value 추가
    • 딕셔너리 삭제: del dic[key]
  • 딕셔너리 관련 함수
    • x.keys()
    • x.values()
    • x.items()
    • x.clear()
    • x.get(a)
    • a in x

집합 자료형 set

  • 집합의 특징
    • 중복 허용 X
    • 순서가 없기 때문에 인덱싱 / 슬라이싱 불가
  • cf. 리스트 vs 튜플 vs 딕셔너리 vs 집합
      순서 인덱싱/슬라이싱
    리스트 o o
    튜플 o o
    딕셔너리 입력 순서대로 만들어짐 x
    집합 x x
  • 교집합, 합집합, 차집합
    • 교집합: & / .intersection()
    • 합집합: | / .union()
    • 차집합: - / .difference()
  • 집합 자료형 관련 함수
    • x.add()
    • x.update(): 값 여러개 추가
    • x.remove()
      • del로 list처럼 item deletion은 불가 (set 전체 삭제만 가능)
      cf. del의 쓰임
      • list: item deletion) del lst[2]
      • dictionary: item deletion) del dic[key]
      • tuple: tuple deletion) del tpl
      • set: set deletion) del set

 

- reference: https://wikidocs.net/book/1

'AI Basic > Python' 카테고리의 다른 글

[Python] 06 Pythonic Code  (0) 2023.03.07
[Python] 05 Python Data Structure  (0) 2023.03.07
[Python] 04 Advanced Function Concept  (0) 2023.03.07
[Python] 03 Conditions and Loops  (0) 2023.03.07
[Python] 02 Functions & Console IO  (0) 2023.03.06

댓글