02 데이터 타입

02 변수 및 데이터 타입

참고

애스크장고 AskDjango

변수(Variables)

  1. 프로그램이 실행되면서 필요한 데이터를 임시로 저장하는 공간
  2. 효율성을 높이기 위해 적절한 크기/ 용도의 변수에 값을 담아서 처리
  3. 하나의 소프트웨어가 동작하면서, 로직에 따라 수많은 새로운 변수가 생겨나고 변경되며 제거

파이썬은 메모리상에 값이 존재하고, 변수가 참조하는 형태라고 하는데, 이 부분은 더 공부해서 정리해봐야겠다.
예시로는
a=3 b=3 id(a), id(b)를 출력해보면 동일한 주소값이 표시된다.

데이터 타입(Data Types)

  1. 변수는 하나의 데이터를 담아두는 그릇 같은 개념이다.
  2. 용도에 따라 그릇이 다르듯, 용도에 맞게끔 활용하여 효율성을 높여야 한다.
  3. 자원은 유한하다는 것도 알아두자.

숫자 (Numeric Type)

  1. 정수형: int
  2. 실수형: float

파이썬2에서는 int, long, float, double형이 존재했는데, 파이썬3로 넘어가면서 int/float로 통합되었다 한다. 명시를 중요하는 개발자 입장에서는 별로 좋아하지 않을거 같은데, 나는 파이썬으로만 공부해서인지, 현재까지는 이게 편한다.
수의 범위 제한이 없다는데, 잘못 쓰면 메모리를 남용할 수 있을거 같다.

참/거짓 (Boolean)

나중에 배울 제어문은 참/거짓을 통해서 프로그램의 동작을 다양하게 할 수 있다.

  1. 참 - True
  2. 거짓 - False

비교연산자를 활용하여 Boolean 값을 받아올 수 있다. 이것을 통해 향후 조건문이라던가 반복문에서 활용할 수 있다.

비교 연산자 종류

  • <, <=, >, >=, ==, !=
  • is, is not

논리 연산자

  • or, and, not

bool() 함수를 이용하여 참/거짓을 출력할 수 있다.

  • 0은 False, 이 외에는 True
    • bool(0) -> False bool(-1) -> True
  • 빈 문자열은 False, 이 외에는 True
    • bool('') -> False bool(' ') -> True 스페이스도 문자열이다!
  • 빈 list/tuple/set/dict는 False, 이 외에는 true
    • bool([]) -> False bool([' ']) -> True

문자열 (String)

홑(‘)따옴표나 쌍따옴표(“)로 감싸진 애들은 문자열이다. name1 = ‘Python’ name2 = “Python”

I’m seokju를 출력하기 위해서 ‘I’m seokju’로 입력하면 오류가 발생한다.
이럴 경우에는 백슬래쉬()를 활용한 이스케이프처리를 해주거나 쌍따옴표로 감싸주고 ‘를 쓰면 된다.

  • 이스케이프: ‘I\‘m seokju’
  • 쌍따옴표: “I’m seokju”

홑(쌍)따옴표를 3개로 감싸주면, 여러 줄 문자열을 지원한다.

test = '''
Hi
I'm
Seokju
'''

문자열 형식 지정자

문자열 내에 {}와 같은 형태로 슬롯을 만들고 format함수를 통해 슬롯에 필요한 데이터를 남길 수 있다. format함수에 함수인자로서 슬롯을 지정하는 방법은 위치(Positional), 키워드(Keyword) 방법이 있다.

위치 인자 (Positional Arguments)

# a, b, c 출력. format의 맨 처음 인자가 {0} 순으로 입력이 된다.
'{0}, {1}, {2}'.format('a','b','c')

#a, b, c 출력. 부여된 번호가 없어 순서대로 입력
'{}, {}, {}'.format('a','b','c')

 # c, b, a 출력. - format인자가 0번째부터 시작하기 때문이다.
'{2}, {1}, {0}'.format('a','b','c')

 # c, b, a 출력. 언패킹이라는 건데, 추후 설명
'{2}, {1}, {0}'.format(*'abc')

 # 에러 발생 - 숫자만큼 인자 개수 맞춰줘야 한다.
'{0}, {1}, {2}'.format('a','b')

키워드 인자 (Keyword Arguments)

'{lat}, {lng}'.format(lat='37.24N', lng='-115.81W')

#딕셔너리 언패킹을 통해 출력
coord ={'lat':'1234', 'lng':'4444'}
'{lat}, {lng}'.format(**coord)