Data Type(자료형)

변수: 기호 =를 사용하여 만든 것.

a=1에서 a가 변수임.

Function: 독립적으로 사용.

Method: 클래스 내부의 함수.

ex. sum() vs. a.upper()

type(): 자료형 확인


  • Numbers(숫자형)

    • Arithmetic Operators(산술 연산자)

      a ** b = a의 b 제곱

      a % b = a를 b로 나누고 나머지 반환.

      a // b = a를 b로 나누고 몫 반환.

    • Functions(숫자형 관련 함수)

      int(): 객체를 정수로 반환.

      float(): 객체를 실수로 반환.


  • String(문자열)

    • 문자열 만들기

      'a': 한 줄 내에 들어갈 문자열.

      "a": 한 줄 내에 들어갈 문자열.

      '''a''': 여러 줄에 걸친 문자열.

      """a""": 여러 줄에 걸친 문자열.

      str(a[2]): 문자열로 변경.

    • Escape code: 미리 정의해 둔 "문자 조합"

      \n: 줄 바꾸기

      \t: 탭

      \\: 문자 \

      \': 문자 ‘

      r'': 문자열 전체에 대해 이스케이프 코드를 처리하지 않음.

    • Indexing과 Slicing

      Indexing: "가리킨다"라는 뜻.

      Slicing: "잘라낸다"라는 뜻.

      형식: a[1:-1]

      immutable: 문자열의 요소값은 바꿀 수 있는 값이 아니다. 즉, a[1]만을 변경하는 것은 불가능.

    • Formatting

      예시1: "I eat %d apples" % 3 ⇒ 'I eat 3 apples'

      예시2: "I ate %d apples. so I was sick for %s days." % (number, day)

      %s: 문자열(어떤 형태든 문자열로 바꿈)

      %d: 정수

      %f: 실수

      %%: 문자 %

      %10s: 전체 길이가 10개인 문자열 공간에서 오른쪽 정렬, 앞의 나머지는 공백.

      %-10s: 전체 길이가 10개인 문자열 공간에서 왼쪽 정렬, 뒤의 나머지는 공백.

      %0.4f: 소수점 네 번째 자리까지 표시.

      %10.4f: 소수점 네 번째 자리까지 표시. 전체 길이가 10개인 문자열 공간에서 오른쪽 정렬, 앞의 나머지는 공백.

      • format()

        "{0}과 {1}".format(x, y): 0번에 x, 1번에 y를 각각 넣어주기.

      • f 문자열 포매팅: Python 3.6부터 가능.

        f'나의 이름은 {name}이고, 나이는 내년에 {age+1}이다.'

        딕셔너리의 d['key'] 등도 들어갈 수 있음.

        f'{"hi":<10}': 전체 길이가 10개인 문자열 공간에서 왼쪽 정렬, 뒤의 나머지는 공백.

        :=^가운데 정렬하고, 나머지는 ‘=' 문자로 공백 채우기.

    • String Methods(문자열 메서드)

      str(): 객체를 문자열로 변환.

      len(a): 문자열의 길이 반환.

      .count('a'): 문자열 중 문자 a의 개수 반환.

      .find('a'): 문자열 중 문자 a가 처음 나온 위치를 반환, 존재하지 않는다면 -1을 반환.

      .index('a'): 문자열 중 문자 a가 처음 나온 위치를 반환, 존재하지 않는다면 오류 발생.

      ",".join('abcd'): abcd 문자열 각각 사이에 ‘,'를 삽입.

      리스트나 튜플에도 입력 가능.

      .upper() & .lower() & .swapcase(): 대문자, 소문자, 혹은 서로 변경.

      .strip() & .lstrip() & .rstrip(): 문자열의 양옆, 왼쪽, 오른쪽의 한 칸 이상 연속된 공백을 모두 삭제.

      .replace('a', 'b'): a라는 문자를 b로 변경.

      .split(): 값을 기준으로, 값이 없으면 공백을 기준으로 문자열을 나누어 리스트로 변환.

      .isalpha() & .isnumeric() & .isalnum(): 문자열이 알파벳, 숫자, 그 둘로만 구성되어 있는지 검사.

      .startswith(): 문자열이 특정 문자로 시작하는지 판단.


  • List(리스트)

    • Indexing과 Slicing

      a[0]: 리스트 a의 0자리 요솟값 불러오기.

      a[-1][1]: 리스트 a의 마지막 요솟값인 리스트의 1자리 요솟값 불러오기.

    • 리스트의 연산

      문자열과 마찬가지로 더하고 곱하기가 가능.

      단, 숫자형과 문자열을 더할 수는 없기에 자료 형태를 str() 함수 등을 통해 자료형을 일치 시켜줘야 함.

    • List Methods(리스트 메서드)

      list(): 객체를 리스트로 변환.

      del 객체: 모든 자료형을 삭제

      del a[1] 등등.

      .append(값): (값)을 리스트 마지막에 추가.

      .sort(): 리스트 요소를 순서대로 정렬.

      .sort(reverse=True): 리스트 요소를 역순으로 정렬.

      .reverse(): 현재 리스트를 뒤집음.

      .index(값): (값)의 위치 값을 반환.

      .insert(a, b): a번째 자리에 b를 삽입.

      .remove(값): 가장 앞자리의 (값)을 제거.

      .pop(): 리스트 마지막 요소를 반환. 혹은 x번째 요소를 반환. 그 요소는 삭제.

      .count(값): 리스트 안의 (값) 개수를 반환.

      .extend([값]): 기존 리스트에 ([값]) 리스트를 뒤에 추가.


  • Tuple(튜플)

    1. 리스트와 유사하지만 튜플은 ()로 둘러싸고, 항목 값의 생성, 삭제, 수정이 불가능하다.
    2. 1개의 요소만을 가질 때는 뒤에 (1,)처럼 콤마를 붙여야 한다.
    3. 변화시킬 수 없다는 점만 제외하면 리스트와 동일하므로 인덱싱과 슬라이싱, 더하고 곱하기, 길이 구하기 등은 가능하다.

    zip(): 순회 가능한 객체를 인자로 받고, 각 객체가 담고 있는 원소를 튜플의 형태로, 차례로 접근할 수 있는 반복자를 반환.

    list나 dict로 만들면 유용.


  • Dictionary(딕셔너리)

    • Ditionary 특징

      1. 기본 형태는 {Key1:Value1, Key2:Value2}
      2. Key에는 변하지 않는 값을, Value에는 변하는 값과 변하지 않는 값 모두 사용 가능. Key에는 리스트 자료형을 사용할 수 없다.
      3. 리스트와 튜플, 문자열과 다르게 인덱싱과 슬라이싱은 불가능 하고, Key를 통해 Value를 구하는 방법만이 있다.
      4. Key가 중복되면 1개를 제외한 나머지 해당 Key 쌍이 무시된다.
    • Ditionary 쌍 추가 및 삭제

      a[Key] = Value: 딕셔너리 a에 {Key:Value}를 추가.

      del a[1]: 딕셔너리 a의 1이라는 Key를 가진 쌍 삭제.

    • Value 얻기

      Dictionary[Key]: 딕셔너리의 Key에 해당하는 Value를 반환.

    • Dictionary Methods(딕셔너리 메서드)

      .keys(): 딕셔너리의 Key만을 모아서 dict_keys 객체를 돌려줌.

      .values(): 딕셔너리의 Value만을 모아서 dict_values 객체를 돌려줌.

      .items(): Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 돌려줌.

      list() 함수를 이용하면 리스트로 반환 가능.

      .clear(): 딕셔너리 안의 모든 요소 삭제. {} 반환.

      .get(Key): Key에 대응되는 Value를 반환.

      Key가 없으면 a[Key]는 오류를 발생, a.get(Key) 함수는 None을 반환.

      .get(Key, x): 딕셔너리 안에 Key가 없으면 x라는 미리 정해 둔 디폴트 값을 대신 가져옴.

      .pop(Key): Key에 대응되는 Value를 반환하고 딕셔너리에서 삭제.

      .pop(Key, x): 딕셔너리 안에 Key가 없으면 x라는 미리 정해 둔 디폴트 값을 대신 가져옴

      Key **in** Dictionay: 딕셔너리 안에 Key가 있으면 True, 없으면 False 반환.


  • Set(집합)

    • 집합 자료형 특징

      set("Hello") = {‘e', ‘h', ‘l', ‘o'}

      set([1, 2, 3]) = {1, 2, 3}

      1. 집합 자료형은 set 키워드를 사용해 만들 수 있다.
      2. 중복을 허용하지 않고, 순서가 없다.
      3. 리스트와 문자열이 들어간다.
    • 교집합, 합집합, 차집합

      s1 & s2: 집합 s1과 s2의 교집합.

      s1.intersection(s2): 집합 s1과 s2의 교집합.

      s1 | s2: 집합 s1과 s2의 합집합.

      s1.union(s2): 집합 s1과 s2의 합집합.

      s1 - s2: 집합 s1에서 s2를 뺀 차집합.

      s1.difference(s2): 집합 s1에서 s2를 뺀 차집합.

    • Set Methods(집합 메서드)

      .add(4): 1개의 값을 추가.

      .update([4, 5]): 여러 개의 값을 추가.

      .remove(2): 특정 값을 제거.


  • Boolean(불)

    bool(): 자료형의 참과 거짓 식별

    • True

      참, 1

      1 == 1, 2 > 1

      값이 있는 자료형: "python", [1, 2, 3], {‘a':1}

    • False

      거짓, 0

      1 == 2, 2< 1

      비어있는 자료형: "", [], {}

      None