210518_python 자료형1 자료형의 구조, number, sequence

lasso·2021년 5월 18일
0

21KDT-DS/DE

목록 보기
2/3

python 자료형

1. 자료형 구조

1) 저장 방법에 따른 분류

  • 직접(Direct)형
    직접 데이터를 표현하는 자료형이다. 수치형이 여기에 속한다.
    예) int, float, complex

  • 시퀀스(Sequence)형
    다른 데이터를 포함하는 자료형이다. 순서가 있는 집합 자료형이다.
    예) list, str, tuple, bytes, bytearray, range

  • 매핑(Mapping)형
    다른 데이터를 포함하는 자료형이다.
    예) dict

  • 집합(Set)형
    순서가 없고, 중복된 항목도 없다.
    예) set, frozenset

2) 변경 가능성 여부에 따른 분류

  • 변경 가능형(Mutable)
    데이터 값을 변경할 수 있다.
    예) list, dict, set

  • 변경불가능형(Immutable)
    데이터의 값을 변경할 수 없다.
    예) int, float, complex, str, tuple, frozenset

3) 저장 개수에 따른 분류

  • 리터널(Literal/Scalar)형
    한 가지 객체만 저장한다.
    예) str, bytes, bytearray, int, float, complex

  • 컨테이너(Container)형
    여러 가지 객체를 저장한다.
    예) list, tuple, dict, set, frozenset

4) 전체 자료형의 분류 요약

자료형변경가능성접근 방법
int, float, complex, bool불가능직접
str불가능시퀀스
list가능시퀀스
tuple불가능시퀀스
dict가능매핑
bytes불가능시퀀스
bytearray가능시퀀스
set가능반복자
frozenset불가능반복자

5) 자료형의 함수

  • type() : python에서는 모든 값을 type( )함수를 통해 자료형을 확인 할 수 있다.
  • dir() : 자료형의 내장함수를 검색할 수 있다.
  • help() : 자료형에서 제공하는 메소드 사용법을 검색할 수 있다.

2. Number

number 타입은 숫자 값을 저장한다.

  • int(integer type) : 소수점 없는 숫자 즉, 정수
  • float(floating-point type) : 실수
  • complex(complex number type) : 복소수
    복소수는 j를 이용해서 표현한다., j는 -1의 제곱근을 표현하는 허수이다., 복소수는 실수와 허수로 구성되어있다.
    예) 6+3j, 3j, 6.0 + 3.0j

1) 진법

python에서 2진수, 8진수, 16진수도 사용할 수 있다.

진법접두사용 가능한 숫자
16진법(hexadecimal)0x0~9, a~f0x2f
8진법(octal)0o0~70o17
2진법(binary)0b0, 10b1101

2) number형 데이터의 타입 변환

  • int(x, [base]) : base 진법의 수를 10진 정수형으로 변환, x가 문자열일 경우 파이썬 정수형으로 변환될 수 있으면 정수로 변환

  • hex(x) : 0x 접두사로 시작되어 x를 16진수로 변환

  • oct(x) : 0o 접두사로 시작되어 x를 8진수로 변환

  • bin(x) : 0b 접두사로 시작되어 x를 2진수로 변환

  • float(x) : x를 실수형으로 변환. x가 문자열인 경우 파이썬 실수형으로 변환될 수 있으면 실수형으로 변환

3) 산술 연산자

연산자기능문법설명
+덧셈a + b두 값을 더함
-뺄셈a – ba에서 b를 뺌
*곱셈a * b두 값을 곱함
/나눗셈a / ba에서 b를 나누며 결과는 실수
//버림 나눗셈a //ba에서 b를 나누었을 때 몫만 구함
%나머지a%ba에서 b를 나누었을 때 나머지를 구함
**거듭제곱a**ba를 b번 곱함
@행렬곱셈a@b행렬 a와  b를 곱함

4) 관계 연산자

연산자문법설명
>a>b큰지 비교한다.
<a<b작은지 비교한다.
>=a>=b크거나 같은지 비교한다.
<=a<=b작거나 같은지 비교한다.
==a==b같은지 비교한다.
!=a!=b같지 않은지 비교한다.

복소수는 크기가 없으므로 대소(>, <)비교연산자는 사용 할 수 없으나 “같다,다르다”는 사용할 수 있다.

5) 논리 연산자

연산자문법설명
notnot aa가 거짓이면 True이고, 아니면 False이다.
anda and ba가 거짓이면 a이고, 아니면 b이다.
ora or ba가 참이면 a이고, 아니면 b이다.

6) 수치 연산 함수

  • abs(x) : x의 절대값을 구한다.
  • divmod(x, y) : (x // y, x % y)쌍을 구한다.
  • pow(x, y) : x의 y승을 구한다.
  • max(iterable) : 최대값을 구한다.
  • min([iterable]) : 최소값을 구한다.
  • sum([iterable) : 합을 계산한다.

3. Sequence (시퀀스)

  • sequence 는 여러 객체를 저장할 수 있는 순서를 갖는 연속된 자료형이다.
    자료형의 종류 : string, list, tuple, range
  • swquence형 자료형은 인덱스를 가지고 있으며 0부터 시작하며 역순으로는 음수(-)값을 가진 인덱스로 맵핑된다.

1) 문자열 (string)

파이썬의 문자열은 총 4가지가 있다.
인공지능에서는 숫자형이 중요하고, 문자열은 상대적으로 잘 다루지 않는다.
결국 문자열을 숫자로 바꾸어 사용!

  1. str
  2. bytes
  3. bytearray
  4. memoryview (잘 쓰이지 않음)

💡container란

  • 여러 개의 원소로 구성되어 있는 것을 container 라고 부른다. (clooection이라고도 한다.)
  • container 중에서 같은 타입의 원소만 가질 수 있는 특성을 homogeneous 라고 한다. (flat라고도 한다.)
  • container 중에서 원소의 순서가 중요한 것을 sequence 라고 한다.
  • str은 homogeneous, sequence, immutablecontainer 이다.
    (str은 문자열만 원소로 갖고, 원소의 순서가 중요하며 변경이 불가능한 container이다.)
    sequence - 원소의 순서를 바꿀 수 있는가
    immutable - 원소의 값을 바꿀 수 있는가

💡container의 분류

container는 특성의 종류에 따라서 분류

container의 특징
구분아니오
같은 타입만 요소로 갖는가?homogeneous<->heterogeneous
순서가 중요한가?sequence<->non-sequence
바뀔 수 있는가?mutable<->immutable

2) 제어 문자

특수문자는 백슬래시 \를 사용하여 키보드로 표현하기 힘든 문자들을 표현한다.

  • /n : 줄 바꿈
  • /t : 탭
  • /r : 캐리지 리턴
  • /0 : 널문자
  • /' : 문자 작은따옴표
  • /" : 문자 큰따옴표

3) 문자열 포맷팅 코드

str 포맷팅에 사용하는 서식문자

  • %s : s는 'string'의 첫글자로서 문자열을 의미 
  • %d : d는 'digit'의 첫글자로 정수형숫자를 의미
  • %f : f는 'floatingpoint'의 첫글자로서 실수형 숫자를 의미
  • %c : 단일 문자
  • %h : 16진수 정수
  • %o : 8진수 정수
  • %% : %기호자체를 나타내는데 사용함
  • %.2f : 실수형숫자,    .2는소수점  둘째자리까지  나타냄.
  • %6s : 6자리의  문자열
  • %5d : 5자리의  정수형  숫자

4) 문자열에서 제공하는 메서드

  • format( ) : 변수의 내용을 표시하기 위한 포맷팅을 수행한다.
  • lower( ) : 대문자를 소문자로 바꾼다.
  • upper( ) : 소문자를 대문자로 바꾼다.
  • swapcase( ) : 대문자는 소문자로, 소문자 대문자로 바꾼다.
  • title( ) : 모든 단어의 첫 문자만 대문자로 나머지는 소문자로 바꾼다.
  • capitalize( ) : 문자열의 첫 글자만 대문자로 나머지는 소문자로 바꾼다.
  • islower( ) : 모든 문자가 소문자이면 True 반환
  • isupper( ) : 모든 문자가 대문자이면 True 반환
  • count(str) : str이 포함된 개수를 반환
  • find(str) : str의 첫 위치를 알아낸다. (없다면 -1 반환)
  • index(str) : str의 첫 위치를 알아낸다. (없다면 예외 발생)
  • join(str) : str을 구성하는 각 문자 사이에 원 문자열을 끼워 넣는다.
  • lstrip( ) : 좌측 공백을 지운다.
  • rstrip( ) : 우측 공백을 지운다.
  • strip( ) : 양쪽의 공백을 지운다.
  • center(n[,str]) : 크기 n의 문자열의 중앙에 원 문자열을 정렬한다.
  • ljust(n[,str]) : 크기 n의 문자열의 왼쪽에 원 문자열을 정렬한다.
  • rjust(n[,str]) : 크기 n의 문자열의 오른쪽에 원 문자열을 정렬한다.
    (두 번째 인수가 없다면 공백 문자를, 있다면 그 문자로 채운다.)
  • replace(str1, str2) : 원 문자열 안의 str1을 str2로 바꾼다.
  • split( ) : 공백문자를 기준으로 나누어서 리스트에 저장한다.
  • split(sep) : sep(문자열)을 기준으로 나누어서 리스트에 저장한다.
  • isalnum( ) : 모든 문자가 알파벳 혹은 숫자(alphanumeric)이면 True 반환
  • isalpha( ) : 모든 문자가 알파벳(alphabet)이면 True 반환
  • isidentifier( ) : 문자열이 식별자의 조건에 맞다면 True 반환
  • isdecimal( ) : 십진 정수이면 True 반환
  • isdigit( ) : 모든 문자가 0에서 9까지 숫자이면 True 반환
  • isnumeric( ) : 모든 문자가 0에서 9까지 숫자이면 True 반환
    (세 함수의 차이점이 명확하지 않음)
profile
라쏘, 릿지, 엘라스틱넷 중 라쏘를 담당하고 있습니다.

0개의 댓글