Home > PYTHON > Basic > 변수와 자료형

변수와 자료형
python basic

변수(variable) #


어떠한 값을 담는 저장공간과 그것을 부르는 명칭으로 다음과 같은 규칙이 존재한다.

  1. 영문자, _로 시작을해야함
  2. 대소문자를 구분함
  3. 특수문자 사용불가능
  4. 공백이 존재할 수 없음
  5. 파이썬의 예약어(if else …) 사용불가능

변수에는 문자, 숫자, 데이터타입등을 선언할 수 있음. 변수를 선언하면 임의의 메모리와 주소를 할당함.

자료형(datatype) #


사용자의 데이터를 프로그래밍 언어가 이해가능한 형식으로 정의 하는것을 일컬으며, 프로그램에서 저장하는 데이터의 타입으로 다음과 같은 형식들이 있다.

  • NoneType : 어디에도 속하지 않는 해석불가능 타입
  • 숫자(numeric)
    • 정수(integral)
      • 정수(int) : -1,0,1,…
      • 부울(bool) : 참과 거짓을 나타내는 자료형
    • 실수(float) : 1.04
    • 복소수(complex) : 1+5i
  • 수열(sequence)
    • 불변(immutable)
      • 문자열(str) : 문자들의 집합
      • 튜플(tuple) : 순서를 가지는 집합으로 ()으로 구성이됨
      • 바이트(bytes) : 바이트 나열 타입 e.x. b’0’ == b’\x00’
    • 변형(mutable)
      • 리스트(list) : 순서를 가지는 집합으로 []으로 구성이됨
      • 비트어레이(byte arrays) : 변형가능한 바이트 나열 타입
  • 매칭(mapping)
    • 딕셔너리 : 순서를 가지지 않은 집합으로 {}으로 구성되며 key와 value 쌍으로 구성이된다.
  • 집합 : 중복이 없고 순서를 가지지 않는 객체의 모음
    • 집합(set) : 중복이 없고 순서를 가지지 않는 객체의 모음
    • 정적집합(frozen set) : 집합과 같지만 변형이 불가능

숫자형 #


숫자를 나타내는 형식으로 아래와 같다.

  • 정수 : 소숫점이 없는 숫자
  • 실수, 부동 소숫점 : 소숫점이 있는 숫자

숫자연산은 사칙연산, 나머지(%), 몫(//), 제곱(**)으로 구성된다.

숫자형변환은 문자형의 숫자, 형식이 다른 숫자형들 사이의 변환을 지원한다. $e.x., \;$ int(), float()

문자열 자료형 #


문자를 나타내는 형식으로 아래와 같은 방식을 따른다.

  • 큰 따옴표, 작은 따옴표로 문자열 만들기
  • 문자열 내부에 따옴표 넣기
  • 이스케이프 문자를 사용해 문자열 만들기 e.x.) \n \t …
  • 여러줄 문자열 만들기 e.x.)
  • 줄바꿈 없이 문자열 만들기

문자열도 숫자열 처럼 연산이 가능해진다.

  • (+)연산자는 문자열을 더함
  • (*)연산자는 문자열을 반복함

문자열은 숫자열과 다르게 각각의 문자가 독립적으로 구성이 되는데 이에 따라서 인덱싱(열 내부의 값을 지정) 과 슬라이싱(문자열의 범위 선택)이 아래와 같이 가능하다.

  • ([]) 문자 선택 연산자(넘버링을 통해서 순서대로 추출가능)
  • 문자 선택 연산자를 이용하여 넘버링 하는것을 인덱스라고 한다.
  • 순방향 인덱스는 0에서 부터 증가
  • 역방향 인덱스는 -1에서 부터 감소
  • ([:]) 문자 범위 선택 연산자
  • 문자범위 선태가 전후에 인덱스를 이용하여 범위를 선택함

문자열에 다른 문자열과 숫자열을 넣으려고 할때 포멧에 맞춰서 넣어줘야 하며 포멧은 포멧팅은 여러 종류가 있다.

  • %포멧팅은 아래와 같다.

    • %d : 정수형 대입
    • %f : 실수형 대입
    • %s : 문자열 대입
    • %c : 문자 대입
    • %o : 8진수
    • %x : 16진수
data = "hello %s world %d" %("to this", 10)
  • .format()포멧팅은 아래와 같다.
data = "hello {0} world {1}".format("to this", 10)
  • .f string 포멧팅은 아래와 같다.
data = f"hello <var1> world <var2>"

문자열을 사용함에 있어서 주로 사용되는 함수는 아래와 같다.

  • .len() : 문자열 길이 출력
  • .split(’.’) : 문자열 나누기
  • .count() : 문자 갯수 세기
  • .replace(’a’,’b’) : 문자열 바꾸기
  • .find(’a’) : 문자열 인덱싱 찾기
  • .upper() : 문자열 대문자로 변경
  • .lower() : 문자열 소문자로 변경
  • ‘a’.join(x) : 문자열 삽입 (x문자열의 문자사이에 a넣기)

리스트 자료형 #


([])의 내부에 요소들을 넣는 자료형을 지칭하며 ‘,’으로 구분되며 여러가지 자료형을 담을 수 있다.

리스트도 문자열과 같은 연산이 가능하다.

리스트형도 문자열 처럼 인덱싱슬라이싱이 가능하다.

리스트는 인덱싱 또는 슬라이싱을 기반으로 하여 내부의 요소들을 아래와 같이 변경 또는 삭제가 가능하다.

  • List[1] = ‘b’ : 리스트의 두번째 요소를 ‘b’로 변경
  • List[1:3] = [’a’,’b’] : 리스트의 두번째, 세번째 요소를 ‘a’,‘b’로 변경
  • del List[n] = 리스트 n+1번째 요소 삭제

리스트 자료형을 사용함에 있어서 주로 사용되는 함수는 아래와 같다.

  • len(List[]) : 리스트 길이 출력
  • .sort() : 리스트 정렬
  • .reverse() : 리스트 뒤집기
  • .append(x) : 리스트 뒤에 요소 추가
  • .extend([]) : 리스트 확장
  • .insert(n,’a’) : n+1번째에 ‘a’삽입
  • .remove(n) : 리스트 n+1번째 요소 제거
  • .pop(n) : 리스트 n+1번째 요소 꺼내기(꺼낸 요소는 삭제됨)
  • .count(x) : 리스트에 포함된 ‘x’의 갯수 확인

튜플 자료형 #


(())의 내부에 요소들을 넣는 자료형을 지칭하며 ‘,’으로 구분되며 여러가지 자료형을 담을 수 있다. 리스트와 다른점은 내부의 데이터가 수정 및 삭제가 안되는것이다.

특이점으로는 하나의 요소를 사용할때는 마지막에 (,)가 필요하고, (()) 없이도 튜플로 사용이 가능한것이다.

튜플도 리스트와 같은 연산이 가능하다.

튜플도 리스트형 처럼 인덱싱슬라이싱이 가능하다.

딕셔너리 자료형 #


({})의 내부에 요소들을 넣는 자료형을 지칭하며 key, value로 구분되며 여러가지 자료형을 담을 수 있다. 리스트와 비교해보면 인덱스 대신 key를 사용한다. 딕셔너리에서 value를 추출하기 위해서는 Dic[’key’]와 같이 사용한다.

딕셔너리는 내부의 value를 변경과 삭제가 가능하다.


딕셔너리 자료형을 사용함에 있어서 주로 사용되는 함수는 아래와 같다.

  • .keys() : key값을 리스트로 만듬
  • .values() : value값을 리스트로 만듬
  • .items() : key,value 쌍 얻기
  • .get(key) : key로 value 얻기
  • ‘key’ in Dic : key가 존재하는지 확인
  • .clear() : 딕셔너리 내부 삭제

집합 자료형 #


set()을 사용하는 비중복성 자료형이다. 명제의 집합과 같은 형태를 가진다.

집합은 다음과 같은 연산이 가능하다.

  • | (합집합) : 집합간의 합집합을 구한다.
  • & (교집합) : 집합간의 교집합을 구한다.
  • - (차집합) : 집합간의 차집합을 구한다.

집합 자료형을 사용함에 있어서 주로 사용되는 함수는 아래와 같다.

  • .add(’a’) : 한개의 값(’a’)을 추가
  • .update([]) : 여러개의 값([])을 추가
  • .remove(’a’) : 특정값(’a’) 삭제

부울 자료형 #


참과 거짓을 나타내는 자료형으로 조건형으로 사용된다. $e.x., \;$ “a” == “a”, bool(’’)⇒False, bool(’d’)⇒True