본문 바로가기

[일상봇 만들기] 나의 하루하루를 도와줄 친구!

level_01_part_1

Level

01

01_자료형의 종류와 이름 짓기

 

1_숫자(Number)

이름 = 숫자

예)

a = 10

a = 10.5

 

나이, , 몸무게, 시험 성적과 같이 일상 생활에서 사용하는 일반적인 숫자라고 이해하면 됩니다.

파이썬에서 일반적으로, 그리고 이 책에서 우리가 사용하게 될 숫자는 정수와 실수 입니다.

 

여기서 잠깐, 

학교에서 다루는 정수 실수 유리수 무리수... 와 같은 개념들을 신경쓰지 않아도 됩니다!

 

딱 두 개만 짚고 넘어가죠!

자료형

내용

정수형

소수점이 없는 숫자 / 영어로는 Integer / 줄여서 Int

age = 30

실수형

소수점이 있는 숫자 / 영어로는 float

weight = 60.6

 

예제 01 – 여러분의 나이 몸무게를 각각 age, weight 이름으로 만들어주세요.

age = 28

weight = 61.5

 

 

설명 01

 SHAPE  \* MERGEFORMAT

 


2_
논리(Boolean)

이름= True 또는 False

1 + 2 == 3

1 + 2 != 3



예)

logical = True

logical = False

1 + 2 == 3

1 + 2 != 3

 

= 는 오른쪽의 값을 왼쪽으로 넣는 것이었습니다.

== 는 왼쪽과 오른쪽이 같은지를 물어보는 것이고

!= 는 왼쪽과 오른쪽이 다른가를 물어봅니다.

 

참 / 거짓 구분을 할 수 있으면 기본적으로 불리언이라고 할 수 있습니다.

숫자의 대소비교시 부등호를 사용하면 이 또한 불리언입니다.

 

앞으로 이러면 이렇게, 저러면 저렇게 동작 방식이 달라지는 코드를 만들게 될 것입니다.

이처럼 주어진 상황에서 분기를 나눌 때 사용되는 참 또는 거짓 형태의 데이터를 불리언(논리형)이라고 합니다. 중간에 애매하게 긴가민가하는 내용은 없고, 기면 긴거고 아니면 아닌 자료형이라고 볼 수 있습니다.

 

True() 의미 내용

False(거짓) 의미 내용

맞음

틀림

1

0

같음

다름(같지 않음)

 

 

예제 04 – 현재 날씨가 추운지 아닌지 cold 변수에 담아 표현해 주세요.

cold = True


 

3_문자열(String)

이름 = '값'

이름 ="값"

이름 = '''값'''

이름 = """값"""

예)

result1 = 'sentence'

result2 = 'sentence'

result3 = '''

여기에는 문장, 뉴스 기사, 장편소설 전부 등등 글자란 글자는 전부 들어갈 수 있어요.
쌍따옴표 또는 따옴표 세 개를 연속으로 이어붙인 것으로 감싸면 됩니다.

'''

 

우리가 아는 글자들의 묶음을 문자열 이라고 합니다. 한국어, 영어, 등등 전부 문자열로 표현합니다. 하지만 앞서 배운 숫자를 따옴표로 감싸면 그건 문자열이 되어버리는 신기한 특징이 있습니다. 숫자뿐만 아니라 앞으로 다룰 그 어떤 데이터나 자료형 이더라도 종류나 특징에 상관없이 일단 따옴표로 감싸면 모두가 평등하게 문자열로 저장됩니다.

문자열을 만드는 데 왜 여러가지 방법이 있나요?

            지금은 우리가 한 눈에 들어오는 짧은 문자열만 다루지만, 이 책 나중에 여러분은 헤드라인 뉴스 제목들을 전부 하나의 문자열로 넣어볼 수도 있습니다. 그러면 소따옴표나 쌍따옴표가 많이 있어도 문자열을 만들 수 있어야겠죠? 그래서 파이썬에서는 가능한 모든 경우의 수를 고려하여 문자열을 만들 수 있게 하였습니다.

 

)

sentence = "Earth's shape is sphere."

sentence = '예로부터 "민심은 천심이다."라고 하였다.'

 

예제 02 – 여러분이 인터넷에서 자주 쓰는 아이디를 id라고 이름 지어 주세요.

id = 'user1234'

 SHAPE  \* MERGEFORMAT

 

예제 03 – 여러분의 나이를 age라고 이름 지어서 문자열 값으로 저장해 주세요.

age = '30'

설명 03

 SHAPE  \* MERGEFORMAT

 

 

돌발질문

age = 30 과

age = '30' 은 같은 걸까요?

1 2는 완전히 다른 내용입니다. 1은 숫자형 30을 의미하며 2는 문자열 30을 의미합니다. 보다 자세한 내용은 연산자에서 다시 설명하겠습니다.

 

 

4_리스트(List) – 값을 여러 개 저장할 때

이름 = [값1, 값2, 값3, 값4, 값5]

예)

a = [1, 2, 3, 4, 5]

a = []   -> 내용물이 없는 빈 리스트를 만드는 방법

설명

문자열이나 숫자형으로 값을 100개 저장하려면 변수를 100개 만들어야 합니다.

이름 짓는 것 만으로도 힘들겠네요리스트에서는 하나의 묶음으로 만들어서 해결합니다.

리스트는 대괄호 안에 내용물을 쉼표로 구분하여 넣어 만듭니다.

 

 

 

5_딕셔너리(Dictionary) – 단어의 의미가 사전인 것은 다 그만한 이유가 있는 법.

이름 = {키1 : 값1, 키2 : 값2}

예)

a = {'사과' : 10, '배' : 20}

a = {}   -> 내용물이 없는 빈 딕셔너리를 만드는 방법

설명

사전을 찾을 때를 떠올려볼까요? 알고 싶은 단어() 기준으로 찾아 의미(밸류)를 조회합니다.

딕셔너리는 중괄호 안에 내용물을 쉼표로 구분하여 넣어 만듭니다.

하지만, 쉼표로 구분된 내용물들은 콜론(:) 으로 나뉘어 있는데요

콜론의 왼쪽이 키(Key), 오른쪽을 밸류(Value) 라고 합니다.

이는 앞으로 키를 사용하여 키와 함께 쌍으로  되어있는 (밸류)을 조회할 때 사용됩니다.

 

딕셔너리도 안에 여러 개가 들어있을 수 있어서 묶음 입니다.

 

문자열, 리스트, 딕셔너리는 여러 개가 들어있는 묶음 이라는 공통점이 있습니다.

 

 

 

6_ 불리언으로 묶음 이해하기

내용물 in 묶음

내용물이 묶음 안에 있으면 True, 없으면 False 입니다.



예)

'H' in 'Hello World!' -> True

'1' in [1, 2, 3] -> True

'키1' in {키1 : 값1, 키2 : 값2} -> True

설명

in 을 기점으로 왼쪽의 것이 오른쪽 묶음에 들어있으면 True 입니다.

 

False 가 되는 조건 중 중요한 경우는 아래와 같습니다.

 

'h' in# False

'Hello World' 라는 문자열에는 대문자 H 는 있지만 소문자 h 는 없죠.

대문자와 소문자는 엄연히 다른 글자이기 때문에 False 입니다. 

 

'값1' in {키1 : 값1, 키2 : 값2# False

 딕셔너리에는 키 뿐만 아니라 값도 들어있긴 하지만, 불리언 기준에서는 키 만 들어있는지 확인합니다. 

 

 

 

7_ 이름 짓는 방법과 규칙

아이의 이름을 지을 때 작명소에 가서 돈까지 내는 분들이 있듯, 어디에서나 이름은 중요합니다.

우리가 이름이라고 불렀던 것은 파이썬 용어로 변수 라고 합니다.

변수의 이름을 지을 때는 다음과 같이 몇 가지 심사숙고해야 할 내용이 있습니다.

 

01_ 변수명이 이미 있는 이름이면 덮어쓰기가 됩니다.

variable = 10

variable = 'ten'

 

위와 같이 두 줄을 써 봤을 때, variable의 값은 숫자 10 일까요 문자열 ten 일까요?

변수는 가장 최근에 반영된 값을 기억해요.

 

02_ 변수 이름이 숫자로 시작하면 안돼요.

1_variable = 10 # 에러!

 

숫자로 시작하는 변수 이름을 만들면 에러가 발생합니다.

 

03_ 파이썬은 대소문자를 다른 글자로 생각해요.

variable = 10

Variable = 10

파이썬은 변수 이름이 모두 같더라도 대소문자가 다르면 완전히 다른 변수로 해석합니다. 서랍으로 생각한다면, 다른 이름의 서랍이 각각 만들어지는 겁니다. 우리는 대문자 A와 소문자 a가 사실은 동일한 알파벳 글자라는 것을 알 수 있겠지만, 파이썬은 아닙니다..

 SHAPE  \* MERGEFORMAT

 

이렇게 다른 서랍이 두 개 만들어지게 됩니다. 대문자와 소문자는 다르기 때문에

04_ 파이썬에서 이미 정의된 예약어(키워드) 를 사용하면 안돼요.

서랍을 만들기 위해 필요한 단어들이 있는데, 이를 예약어라고 합니다. 예약어는 변수의 이름으로 사용하면 안 됩니다. 서랍의 일부분(손잡이 등)을 서랍 이름으로 부른다면 이상하겠죠?

예약어 목록

 

and, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in, is, lambda, not, or, pass, print, raise, return, try, while, with, yield

 

pass = 10 # 에러!

continue = 10 # 에러!

break = 10 # 에러!

 SHAPE  \* MERGEFORMAT

 

 

05_ 이름을 아무리 특별하게 짓고 싶어도 특수문자는 들어갈 수 없어요

name+ = 10 # 에러!

name% = 10 # 에러!

특수한 의미를 갖는 문자(사칙연산, @, $ 와 같은 기호)는 사용할 수 없습니다.

 SHAPE  \* MERGEFORMAT