Python

파이썬 기초 1 - 자료형

retill28 2024. 7. 5. 00:58

1. 숫자형

  • int (정수형) 
  • float (실수형)
  • 숫자형은 연산이 가능하다.
더보기

a = 3

b = 4
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a ** b)   #제곱
print(a % b)   #나눗셈 후 나머지
print(a // b)    #나눗셈 후 몫
a == b      #비교연산 - a와 b가 같은가

 

 

 

2. 문자형

  • string - 문자 형태로 이루어진 자료형, 따옴표(''), 큰 따옴표("")로 글자를 감싼다 
  • '123'이라는 값은 백이심삼 이라는 수량 값이 아니라 123이라는 숫자로 나타난 문자
  • 긴 문자는 '''Hello, World! Hello, Python!''' 처럼 따옴표 3개로 표기 가능
  • 문자열 연산은 아래와 같다.
  • 더보기
    문자열 연산 1 (+)
    a = 'Hello, World'
    b = 'Hello, Python'
    c = a + b
    print(c)    #Hello, WorldHello, Python
     
     
    문자열 연산 2 (*)
     
    a = 'Python'
    print(a * 2)      #PythonPython
  • 문자열 인덱싱 - 번호를 붙여서 일종의 항목화를 하는 것.
  • 더보기
    문자열은 배열로 취급, 첫번째 글자를 0으로, 마지막글자를 -1로 시작하여 인덱싱을 할 수 있다.
    a = 'Hello, World'
    print(a[0])       #H
    print(a[-1])      #d
     
  • 문자열 슬라이싱 - 변수[시작 인덱스:끝 인덱스:간격] 형식으로 배열 중 일부만 갖고올 수 있다. 
  • 더보기
    a = 'Hello, World'
    print(a[3:7])   #hon
    print(a[:-1])   #Pytho
    print(a[1:-1:3])  #eoWl
  • 문자열 함수 
  • 더보기
    • upper: 대문자로 변환한 값을 출력
    • lower: 소문자로 변환한 값을 출력
    • lstrip, rstrip, strip: 공백 제거한 값을 출력
    • count: 문자열 안의 특정 문자열 개수 세기
    • find: 문자열 안의 특정 문자열이 처음 나온 위치 반환
      • 문자열이 없으면 -1을 반환
    • index: find와 같으나 문자열이 없으면 오류 발생
    • join: 특정 문자열을 각각의 문자 사이에 삽입하여 출력
    • split: 특정 문자열을 기준으로 문자열을 나눈 값을 출력
    • replace: 특정 문자열을 특정 문자열로 반환
    • startswith, endswith: 특정 문자열로 시작하는지/끝나는지 확인
    • len : 문자열 길이 구하기 
    • str(123) : 123이라는 숫자를 문자열로 전환
    • int('123') : 123이라는 문자를 숫자로 전환 
  • 문자열 포맷팅  - 문자열 안에 어떤 값을 삽입하는 방법
  • 더보기
    num = 14
    a = 'My favorite number is {}'.format(num)   # format 함수 사용
    a = f'My favorite number is {num}'                # f스트림 사용

 

 

 

3. 리스트형 

  • 요소들을 모아서 만든 일종의 행렬 
  • 요소들을 대괄호로 감싸서 만들수 있다. 
  • 더보기
    a = [1,2,3,4,5]                    # a[2] = 3
    b = ['life','is','too','short']     # b[2] = 'too'
    c = [1,2,'life','is']                 # c[1] = 2   
  • 리스트도 인덱싱이 가능하다. N중 리스트의 경우 인덱싱을 여러번 한다. 
  • 더보기
    d = [1,2,['life','is',['too','short']]]     
    print(d[-1][2:])      #[['too', 'short']]
  • 리스트 연산
  • 더보기
    `+`: 리스트와 리스트를 순서대로 연결하여 하나의 리스트를 만듭니다.
    `*`: 리스트와 숫자형을 곱하여 리스트 안의 요소를 숫자만큼 반복한 하나의 리스트를 만듭니다.
    a = [1,2,3]
    b = [4,5,6]
    a + b       #[1, 2, 3, 4, 5, 6]
    a * 3       #[1, 2, 3, 1, 2, 3, 1, 2, 3]
  • 리스트 함수 
  • 더보기
    • len 함수: 리스트의 길이를 구합니다.
    • sum, min, max 함수: 리스트 요소들의 합, 최솟값, 최댓값을 구합니다.
    • in: 특정 요소가 리스트 안에 있는지 확인합니다.
    • append, extend: append는 리스트의 맨 마지막에 요소를 추가, extend는 리스트의 맨 마지막에 다른 리스트를 추가합니다.
    • insert: 리스트의 특정 위치에 특정 요소를 삽입합니다.
    • remove, pop: 리스트의 요소를 삭제합니다.
    • count: 리스트의 특정 요소의 개수를 반환합니다.
    • index: 리스트에 요소가 있는 경우 인덱스 값을 반환합니다.
    • sort, sorted: 리스트를 정렬합니다.
    • join: 리스트의 요소들을 하나의 문자열로 합칩니다.
    • split: 문자열을 리스트의 요소들로 쪼갭니다.
  • range (시작 인덱스, 끝 인덱스, 간격) - 시작부터 끝까지 간격만큼 규칙적으로 건너뛴다.
    list(range(1, 10))      #[1, 2, 3, 4, 5, 6, 7, 8, 9]
    list(range(1, 10, 2))      #[1, 3, 5, 7, 9]

 

 

4. 튜플형 

  • 리스트처럼 여러 요소를 묶는 자료형 
  • 튜플은 수정과 삭제가 불가하다.
  • 괄호( )로 감싸서 만들 수 있다.
  • 튜플도 인덱싱이 가능하다
  • 더보기
    d = (1,2,['life','is',('too','short')])    # d[2][2] = ('too', 'short')
    b = ('life','is','too','short')
  • 튜플도 연산 (+ , *)이 가능하다.
  • 더보기
    a = (1,2,3)
    b = (4,5,6)
    a + b       #(1, 2, 3, 4, 5, 6)
    a * 3        #(1, 2, 3, 1, 2, 3)
  • 튜플 함수
  • 더보기
    • len: 튜플의 길이를 구합니다.
    • sum, min, max: 튜플의 요소들의 합, 최솟값, 최댓값을 구합니다.
    • in: 특정 요소가 튜플 안에 있는지 확인합니다.
    • count: 튜플의 특정 요소의 개수를 반환합니다.
    • index: 튜플에 요소가 있는 경우 인덱스 값을 반환합니다.
    • join: 튜플의 요소들을 하나의 문자열로 합칩니다.
    • append, insert, extend, remove, pop, sort, ... 은 사용 불가 
    • sorted() 는 사용가능. 단, 반환값은 리스트이다. 
    • list(튜플이름) : 튜플을 리스트로 바꿈
  • lambda(람다) 함수와의 결합 (리스트도 가능)
    lambda x:x[인덱스] - x를 input 하면 x[ ]를 반환한다. 
    • max(튜플, key = lambda x:x[인덱스]) : 다중 튜플의 경우 정렬 기준을 정의하여 튜플 내 최댓값을 탐색함
    • min(튜플, key = lambda x:x[인덱스]) : 다중 튜플의 경우 정렬 기준을 정의하여 튜플 내 최솟값을 탐색함
  • 더보기
    a = (('a', 1), ('b',7), ('c', 3), ('d', -5), ('e', -9))
    print(max(a, key = lambda x:x[0]))         #('e', -9)
    print(max(a, key = lambda x:x[1]))         #('d', -5)

 

 

 

5. 딕셔너리

  • 키(Key): 값(Value)의 쌍이 모여있는 사전 형태의 자료형입니다.
  • 키: 값의 쌍을 중괄호({})로 감싸줍니다.
  • 변수명 = {'키1':값, '키2':값, ...} 모양으로 선언이 가능 
  • 더보기
    dic = {'name':'merry',\
          'num':1,\
          'birth':'jan'}
    dic         #{'name': 'merry', 'num': 1, 'birth': 'jan'}
  • 키는 중복될 수 없고, 리스트는 키가 될 수 없습니다.
  • 위치로 인덱싱이 되지 않습니다. 다만, 인덱싱처럼 키 값으로 딕셔너리 값을 찾을 수 있다. 
  • 더보기
    print(dic['name'])    #['merry', 'john']
    print(dic['num'])     #[1, 2, 3]
  • 딕셔너리 추가, 변경, 삭제
  • 더보기
     
    dic['country'] = ['Korea','US']       #추가
    dic['country'] = ['Korea',"China"]    #변경
    del dic['country']                    #삭제
  • 딕셔너리 함수
  • 더보기
    • keys(): 키들을 반환합니다.
    • values(): 값들을 반환합니다.
    • items(): 키와 값의 튜플 쌍들을 반환합니다.
    • get(원하는키값): 원하는 키 값에 대응되는 값을 반환합니다.
      • 딕셔너리변수명[원하는키값]과 똑같은 값을 반환합니다.
    • update: 딕셔너리에 새로운 딕셔너리를 추가합니다.
    • zip: 튜플/리스트 두 개를 하나의 딕셔너리로 변환합니다.

 

 

 

6. 집합 

  • 순서가 없고 중복이 없는 자료형입니다. 따라서 인덱싱을 위해선 리스트나 튜플로 바꿔서 한다. 
  • 요소들을 중괄호({})로 감싸서 선언한다.
  • 더보기
    s1 = set([1,2,'a'])      # {'a', 1, 2}
    s2 = set("Hello")       # {'e', 'l', 'o', 'H'}
  • 집합의 연산
  • 더보기
    s1 = set([1,2,3,4,5,6,7,8,9,10])
    s2 = set([5,6,7,8,9,10,11,12])
     
    print(s1&s2)
    print(s1.intersection(s2))      # 1. 교집합
    #{5, 6, 7, 8, 9, 10}
     
    print(s1-s2)
    print(s1.difference(s2))        # 2. 차집합
    #{1, 2, 3, 4}
     
    print(s1|s2)
    print(s1.union(s2))               # 3. 합집합
    #{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
  • 집합의 추가, 제거
  • 더보기
    • add: 요소를 추가
    • remove: 요소를 제거

 

 

 

7. 불 (Bool)

  • 참 또는 거짓을 나타내는 자료형
  • True, False로 나타내야 한다. (첫 문자가 항상 대문자)