포스팅 개요
본 포스팅은 프로그래밍에서의 변수와 파이썬의 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 : 피연산자
- ex. 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씩) 메모리 공간이 할당됨
- 1byte
- 컴퓨터는 이진수로 데이터를 저장하는데, 이진수 한 자릿수는 1bit로 저장된다
- 즉, 1bit는 0 또는 1을 나타낼 수 있다
- 이러한 1bit 8개가 모인 것이 1 byte이다
- 따라서 1 byte = 8 bit = 2 ** 8 = 256까지 저장이 가능하다
- 1byte에 문자가 저장되는 방식
- 컴퓨터는 모든 데이터를 이진수로 인식하기에, 문자를 문자 자체로 인식하지 못한다
- 이에 문자를 이진수로 변환하는 표준 규칙(ASCII 코드 등)이 정해져있다
- 이러한 규칙에 따라 문자를 이진수로 변환하여 저장하거나, 저장된 이진수를 문자로 변환하여 표시함
- 문자 → 숫자 → 이진수
- 데이터 타입 별로 각각 다른 크기의 메모리 공간이 할당되어 있다
- → 메모리의 효율적인 활용을 위해 상황에 따라 적절한 데이터 타입을 선택하여 사용하는 것이 바람직하다
- 파이썬의 내장 시퀀스 자료형 중 하나
- 문자형 자료 만들기
- “로 양쪽 둘러싸기 → 한 줄로만 작성 가능
- ‘로 양쪽 둘러싸기 → 한 줄로만 작성 가능
- “””로 양쪽 둘러싸기 → 여러 줄로 작성 가능
- ‘’’로 양쪽 둘러싸기 → 여러 줄로 작성 가능
- 문자열 안에 따옴표를 포함시키고 싶을 때
- ‘를 문자열 안에 사용할 때에는 “ 사용
- “를 문자열 안에 사용할 때에는 ‘ 사용
- \를 사용해서 ‘, “를 문자열에 포함시키기
- 문자열 안에서 줄바꿈을 하고싶을 때
- 이스케이프 코드 \n 삽입하기
- 이스케이프 코드
- \n: 문자열 안에서 줄을 바꿀 때 사용
- \t: 문자열 사이에 탭 간격을 줄 때 사용
- \\: \를 표현할 때 사용
- \’: ‘를 표현할 때 사용
- \”: “를 표현할 때 사용
- 이스케이프 코드
- ‘’’ ‘’’ / “”” “”” 사용하기
- 이스케이프 코드 \n 삽입하기
- 문자열 연산하기
- 문자열 합치기 concatenation: + 사용
- 문자열 반복: * 사용
- 문자열 인덱싱과 슬라이싱
- 문자열 포맷팅 formatting
- %-format
- 문자열 포맷 코드
- %d: 정수
- %f: 실수
- %o: 8진수 ← 10진수를 넣으면 8진수로 바꿔서 출력
- %x: 16진수 ← 10진수를 넣으면 16진수로 바꿔서 출력
- %c: 문자 1개
- %s: 문자열
- %%: %
- 문자열 포맷 코드
- format 함수
- 인덱스 위치 사용
- fstring
- %-format
- 문자열 관련 함수
- 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 전체 삭제만 가능)
- 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 |
댓글