| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- SSH Tunnel
- Django
- RDS
- 챗봇
- vue
- pycharm
- 파이썬
- psycopg
- 파이참
- 파이선
- database
- 장고
- django db with ssh tunnel
- vpc
- chartjs-chart-financial
- Chatbot
- 파이팅
- AWS
- 오픈빌더
- 개발일지
- subnet
- Python
- 따라하며 배우는 파이썬과 데이터 과학
- settings.py
- ec2
- GPT
- postgres
- 이터널리턴
- 아나콘다
- Today
- Total
우아한 개발계발 블로그
따라하며 배우는 파이썬과 데이터 과학 (2) - 값을 담아 다루어 보자 본문
2021.05.28 - [Study/따라하며 배우는 파이썬과 데이터 과학] - 따라하며 배우는 파이썬과 데이터 과학 (1) - 파이썬 기초체력 다지기
따라하며 배우는 파이썬과 데이터 과학 (1) - 파이썬 기초체력 다지기
2021.05.10 - [Study/따라하며 배우는 파이썬과 데이터 과학] - 따라하며 배우는 파이썬과 데이터 과학 (0) - 개발 준비 따라하며 배우는 파이썬과 데이터 과학 (0) - 개발 준비 따라하며 배우는 파이썬
w00-ah.tistory.com
1장을 보고왔다면 몸풀기에 성공한 것이다.
이번 장에서는 변수에 대해 다룰 것 이다.
2.1 변수
변수다. 변수는 그릇이라고 생각하면 좋다. 아무것도 들어있지 않은. 무엇이든 담을 수 있는, 특히 파이썬이라면, 담을 것이 크든 작든 무겁든 가볍든 뜨겁든 차갑든 산성이든 뭐 등등 무엇이든 담을 수 있는 만능그릇 이라고 생각하자.
위에서 아래와 같은 명령어를 다뤘었는데. 이 앞에 turtle1 이 '변수' 이다.
turtle1 = turtle.Turtle()
turtle1 이라는 이름을 갖는 변수를 만든 뒤에 turtle.Turtle()이라는 객체를 담은 것이다.
변수이름은 무엇이든 될 수있는 것은 아니다. 변수의 이름은 식별자의 일종으로 다음과 같은 규칙을 지켜야한다.
- 식별자는 문자와 숫자, 밑줄 문자(Underbar, '_')로 이루어지며 밑줄 문자 이외의 특수 문자를 사용할 수 없다.
- 식별자의 첫 글자는 숫자로 시작할 수 없다. 또한 중간에 공백을 가질 수 없다.
- 대문자와 소문자는 구별된다. 따라서 변수 index와 INDEX는 서로 다른 변수 이다.
- 파이썬의 아래와 같은 예약어(키워드)는 식별자로 사용할 수 없다
예약어는 파이썬이 업데이트 되면서 계속 생겨날 수 있으니 버전별로 확인해봐야한다. (3.10 부터는 match 문이 생긴다고 하니 match도 못쓸 것 같다.)False class return is finally None if for lambda continue True def from while nonlocall and del global not with as elif try or yield assert else import pass break execpt in raise
변수 이름을 짓는 것 뿐만아니라 나중에는 함수나 클래스 등의 이름도 지어야할 때가 생기는데, 그것들도 규칙이있다. 같은 객체지향언어인 JAVA의 명명규칙을 따라도 좋다.(필자는 그렇게 하고 있다) [참고]
아무튼 중요한건 "변수는 무엇이든 담을 수 있는 그릇" 이라는 것이다.
2.2 자료형
파이썬의 변수에 자료형은 없다. 정확히 말하면 특정짓기 전에는 없다.
파이썬에서는 변수가 사용되는 순간에 정의되기 때문에 자료형을 하나하나 정의해주지 않아도 된다는 장점이 있다.
사실 클래스이다. 그래도 클래스마다 메소드가 어떻게 정의되어 있느냐에 따라 어떤 연산이 가능하고 불가능하고가 정해져있기 때문에 자료형을 맞춰주는 것은 중요하다.
대신 사용할 때 주의해야하는데, 이유는 자료형이 맞지 않으면 연산이 이루어지지 않고 에러가 나타나기 때문이다.
문자와 숫자의 곱연산은 위에서 본 것처럼 문자가 숫자만큼 반복되는 것으로 가능하다.
그러나 문자 x와 숫자 7을 더한다고 생각해보자 상식적으로 가능하겠는가? 가능하다면 어떤 규칙을 세우겠는가?
그건 사람마다 다를 수 있다. 그렇기 때문에 파이썬은 우리에게 클래스를 정의할 때 __add__ 와 같은 메소드를 정의 하여 클래스의 연산에서 규칙을 세울 여지를 만들어 두었다.
대표적인 자료형들
수치형 자료형
- 정수 int
- 부동소수점수 float
- 복소수 complex
>>> type(100000000) # 정수 <class 'int'> >>> type(2.8) # 부동소수점수 <class 'float'> >>> type(3+4j) # 복소수 <class 'complex'>
선언하는 방법
이름 = 숫자
복소수는 우리가 생각하기에 i를 쓸 것 같았지만 사실 j 를 쓴다. (대문자도 상관 없다.)
ex)
weight = 60
height = 176.1
z = 1+2J
순서형 자료형
- 문자열 string (따옴표 '', 큰따옴표 "" 로 감싸는게 특징)
- 리스트 list (대괄호 [] 로 감싸고 내부의 원소들은 쉼표 , 로 구분한다.)
- 튜플 tuple
(리스트와 비슷하지만 () 소괄호로 감싸는 것이 특징이고 데이터를 조작할 수 없는, immutable한 것이 특징이다.)
>>> type("Hello World!")
<class 'str'>
>>> type(['Hello', 'World', '!'])
<class 'list'>
>>> type(('Hello', 'World', '!'))
<class 'tuple'>
순서형 자료형은 Indexing 이나 Slicing 이 가능한 객체들이고, Iterable(반복 가능한) 한 객체들이다.
선언하는 방법
ex)
문자열 :
name = "W00_Ah"
리스트 :
dummy = ['asd', 1, "2d!_%g", 0.4, ['a'], ('a', 2), {'key': 'value'}]
튜플 :
trash = (1, 2, 3, 4, 5, 6 ,7 ,8 ,9, 10)
예시 처럼 리스트나 튜플은 내부 원소들이 서로 다른 자료형을 갖을 수 있다.
매핑형 자료형
- 딕셔너리 dict
>>> type({'A': 1, 'B': 'two', 'C': 3})
<class 'dict'>
Key 와 Value 쌍으로 이루어져있고 key에는 무엇이든 들어갈 수 있는 것은 아니다.
Key 에는 Hashable한 값이 들어가야한다.
Unhashable 한 값은 list, dict, set가 있다.
hashable 과 immutable 은 다르다. 더 자세한 정보는 [이 블로그를 참고]하자
불리언 자료형
- 불리언 bool (boolean으로 논리 자료형이라고도 한다)
>>> type(False)
<class 'bool'>
>>> type(1==1)
<class 'bool'>
>>> type(True == 'True')
<class 'bool'>
불리언은 참과 거짓 밖에 없기 때문에 예약어가 따로 존재하고, 이는 'True' 와 'False' 가 있다.
하나 알아가자면 파이썬에서 숫자 0은 False, 0을 제외한 모든 정수는 True를 의미한다. 그래서 조건문에 문자열만 들어가도 참이 된다.
셋 자료형
- 셋 set ( list나 tuple 같이 내부의 객체들은 쉼표로 구분하고 {} 중괄호로 감싸는 특징이 있다.)
type({'apple', 'banana', 'carrot'})
<class 'set'>
set 자료형의 특징은 내부의 요소들이 중복되지 않는다는 특징이있고 집합 연산이 가능하다는 특징도 있다.
set 자료형의 요소들도 dict의 key 처럼 중복되지 않아야하기 때문에, set의 요소들은 Hashable한 객체들이여야만 한다.
변수는 딱히 어려운 내용이 없다.
어떤 기능이든 적재적소에 쓰이지 못하면 좋은 프로그래밍이라고 생각하지 않는다.
그러니 적절한 자료형을 적절한 곳에 사용하는게 메모리도 덜잡아먹고 최적화가 잘 된다.
우린 최적화의 학문 '공학' 이니까...!
'Study > 따라하며 배우는 파이썬과 데이터 과학' 카테고리의 다른 글
| 따라하며 배우는 파이썬과 데이터 과학 (5) - 여러 번 반복하는 일을 하자 (0) | 2021.05.31 |
|---|---|
| 따라하며 배우는 파이썬과 데이터 과학 (4) - IF! 조건을 따져 실행해 보자 (0) | 2021.05.30 |
| 따라하며 배우는 파이썬과 데이터 과학 (3) - 연산자로 연산을 해 보자 (0) | 2021.05.28 |
| 따라하며 배우는 파이썬과 데이터 과학 (1) - 파이썬 기초체력 다지기 (0) | 2021.05.28 |
| 따라하며 배우는 파이썬과 데이터 과학 (0) - 개발 준비 (0) | 2021.05.10 |