점프 투 파이썬 2강: 파이썬 프로그래밍의 기초, 자료형

강민성·2021년 11월 2일
0

점프 투 파이썬

목록 보기
2/5

<자료형(data type)>

1) 정수형(int)

2) 실수형(소수)(float)
컴퓨터 시스템이 실수형 정보를 표현할 때는 정확도에 한계가 있음 -> round() 함수 사용
cf) 정수부가 0인 경우 0을 생략하고 표현 가능

a = -.7
print(a) # -0.7

cf)

  • 컴퓨터식 지수 표현 방식, 8진수, 16진수도 있음
  • 지수 표현 방식(지수 표현 방식의 수는 기본적으로 float임)
  • 숫자끼리 계산(+-*/등) 가능

3) 문자열(str) ‘문자열’ 혹은 “문자열” 혹은 ‘’’문자열’’’로 표기하나 시작과 끝을 맞춰야 함. 띄어쓰기 가능, “””문자열”””으로 표기할 경우

"""
문
자
열
"""

식으로 여러 줄을 주석으로 만들 수 있음. 따옴표를 문자열을 묶는 용도가 아닌 독립적인 문자로 사용하고 싶은 경우, | 뒤에 따옴표를 넣으면 따옴표를 문자로 인식함.

  • 문자열 연결: “문자열”+”문자열”=”문자열문자열”
  • 문자열 formatting: %s는 문자열을 삽입할 자리에 사용, %d는 정수 대입, %f는 실수 대입
    - formatting 함수 사용: ‘{}’.format(문자열) {}자리에 문자열 대입
    - 바로 대입: “%연산자가 포함된 문자열” %연산자에 대입할 값
    - f 문자열 formatting: f”{변수}를 포함한 문자열”
  • 인덱싱: [] 주소, 위치: 문자열의 첫 글자가 0부터 시작. 혹은 음수로 마지막 글자가 -1로 시작
    문자열 자료형은 리스트와 달리 immutable하기 때문에, 리스트 인덱싱과는 다르게 특정 인덱스의 문자를 인덱싱으로 변경할 수 없음
  • 슬라이싱: [첫 번째 절취선 위치:두 번째 절취선 위치:간격] 리스트를 자르는 것. 숫자를 생략할 경우 맨 끝부터 절취선까지 슬라이싱


    이미지 출처: 김왼손님의 왼손코딩(https://www.inflearn.com/course/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EA%B8%B0%EC%B4%88-%EA%B0%95%EC%A2%8C)
  • 관련 함수: count find index join upper lower strip replace 등
    - 문자열이름.split() 문자열이름이라는 문자열을 공백 단위로 자른 리스트를 제공하는 함수. 특정 문자를 기준으로 자르는 옵션을 추가할 수 있음
  • escape code: 문자열 안에 |t등의 코드를 입력하면 특정 기능 수행

4) 불린(Boolean 혹은 불) 참(True) 혹은 거짓(False)

5) 리스트(List) 리스트명=[요소1, 요소2, 요소3] 여러 값을 모아서 저장한 것

  • (사용자 입장에서) C나 자바에서의 배열(Array)의 기능 및 연결 리스트와 유사한 기능 지원
  • 인덱싱: 주소, 위치: 리스트의 첫 요소가 0부터 시작. 혹은 음수로 마지막 요소가 -1로 시작
  • 슬라이싱: [첫 번째 절취선 위치:두 번째 절취선 위치] 리스트를 자르는 것. 숫자를 생략할 경우 맨 끝부터 절취선까지 슬라이싱
  • 관련 함수
    - 리스트명.append(추가요소) 리스트명이라는 리스트의 마지막 요소로 추가요소 추가
    - 리스트명.sort() 리스트명이라는 리스트의 모든 요소를 가나다순으로 재정리한 리스트 제공
    - 리스트명.count(특정요소) 리스트명이라는 리스트에 특정요소가 몇 개 들어있는지 개수 제공
    - len(리스트명) 리스트명이라는 리스트의 구성요소 개수 제공
    - del(리스트명)[삭제할요소] 요소 삭제

6) tuple: (요소1, 요소2, 요소3) 괄호 생략 가능. 리스트와 동일하나 리스트의 구성요소 수정 불가. 리스트보다 공간 복잡도 면에서 효율적

  • 패킹: 여러 값을 묶어서 tuple로 만드는 것
  • 언패킹: tuple의 각 요소에 값을 지정하는 것
  • 알고리즘 설계 시 : 서로 다른 성질의 데이터를 묶어서 관리할 때(최단 경로 알고리즘), 데이터의 나열을 해싱의 키 값으로 사용해야 할 때(리스트와 달리 immutable하므로 키 값으로 사용 가능), 메모리 효율을 높일 때 사용

7) dictionary: 리스트명={요소1: 값1, 요소2: 값2, 요소3: 값1} key에 값을 할당한 리스트.
해시 테이블(Hash Table)을 이용하므로 데이터의 조회 및 수정에 있어서 O(1)의 시간 복잡도를 가진다는 장점이 있음

  • 관련 함수
    - 리스트명[추가요소]=’값4’ 로 요소 추가 가능
    - del(리스트명)[삭제할요소] 로 요소 삭제 가능
    - 리스트명.values 리스트에서 값만 추출
    - 리스트명.keys 리스트에서 요소명만 추출
    - 리스트명.items 리스트명에서 요소명,값을 같이 추출

8) range(m, n) m에서 n까지의 숫자 호출 range(n)은 0에서 n까지의 숫자 호출

9) 집합: 집합명=set([원소1, 원소2, 원소3]) 혹은 집합명={원소1, 원소2, 원소3}

  • 집합 내에 중복된 원소를 담을 수 없음, 원소들의 순서가 없음. 원소로 문자열로 넣을 경우 철자 하나하나가 원소가 되어 집합이 만들어짐. 집합끼리 교집합, 합집합, 차집합 등의 연산 가능
  • 데이터의 조회 및 수정에 있어서 O(1)의 시간 복잡도를 가진다는 장점이 있음
  • 합집합 |, 교집합 &, 차집합 - 연산 가능

10) None 존재하지 않음(자바스크립트의 null과 유사)

  • 자료형의 변환가능성: immutable(정수, 실수, 문자열, 튜플)/ mutable(리스트, 딕셔너리, 집합)

<변수>

변수=(값): 변수에 값을 저장(할당)하는 것으로 값은 변할 수 있음(값에 변수라는 이름을 붙여 주는 것). 변수는 영어 대소문자를 구분하며 한글, _을 쓸 수 있으나 첫 글자에는 숫자를 쓸 수 없고 띄어쓰기도 안 됨. 파이썬은 변수에 저장된 값을 프로그램 스스로 판단하여 자료형을 지정. 위와 같이 값을 변수에 할당하면 값이라는 값을 가지는 어떤 자료형의 객체가 메모리에 저장되고 변수는 그 객체가 저장된 메모리의 주소를 가리키게 됨

  • id(변수): 변수가 가리키고 있는 객체의 주소 값을 리턴
  • 변수1, 변수2=(값1, 값2) 튜플로 변수에 값을 할당(괄호 생략 가능)
  • [변수1, 변수2]=[값1, 값2] 리스트로 변수에 값을 할당
  • 변수1=변수2=값 여러 변수에 같은 값 할당
  • 변수1, 변수2=변수2, 변수1 변수1과 변수2의 값을 바꿈

<자료형 변환>

변환: 변환하려는자료형(변수) 변환하려는자료형으로 변수의 자료형 변환

  • 리스트 복사(3가지 방법)
    - 다른 변수=이미 정의된 리스트명: 리스트명과 다른 변수 둘 다 같은 리스트를 가리키게 되며, 둘은 동일한 것이 됨(같은 주소를 가짐)
    - 다른 변수=이미 정의된 리스트명[:]: 리스트 전체를 가리키는 [:]을 복사, 둘은 같은 값을 가지지만 서로 다른 객체를 가리킴(주소가 다르며 한쪽의 내용을 바꿔도 다른 쪽에 영향가지 않음)
    - copy 모듈을 import한 후(from copy import copy) 다른 변수=copy(이미 정의된 리스트명): 둘은 같은 값을 가지지만 서로 다른 객체를 가리킴(주소가 다르며 한쪽의 내용을 바꿔도 다른 쪽에 영향가지 않음)
profile
Back-end Junior Developer

2개의 댓글

comment-user-thumbnail
2021년 11월 2일

멋진 정리 감사합니다

1개의 답글