Chapter 1 : 집합¶
집합이란 어떤 것들의 모임이에요.
예를 들어, 가족 = ["아빠","엄마","나",..]
친척 = ["큰아빠가족","작은아빠가족",...]
이런식으로 말이죠.
파이썬에서는 이러한 집합을 수로 확장시킬 수 있어요.
a라는 집합에는 수가 1,2,3,4가 있습니다. 집합안에서의 개체(하나하나의 것)은 원소라고 불립니다.
그런데 이러한 집합에 순서가 중요할 때가 있어요. 데이터를 만지다보면 어느 위치에 무엇이 있는 지가 중요할 때가 많기 때문이죠.
파이썬에서는 인덱스(순서)가 0에서부터 시작해서 (집합의 길이 -1)까지 슬라이싱(추출)할 수 있어요.
a라는 집합에서 첫번째 원소는 1이기 때문에 0의 위치의 값을 추출해야 하는거고, 4는 (4-1)위치에 있기 때문에 3을 추출해야 하는거죠
Q1: 1부터 10까지의 숫자 집합에서 4번째 숫자를 뽑아내려면 어떻게 해야 할까요? 밑에 칸에 코드로 답을 적어보세요
위 문제에서 1부터 10까지의 숫자를 일일이 기입하는 것보단 컴퓨터가 자동으로 생성하면 좋겠죠?
이를 위한 적합한 함수가 있어요.
Out[3]:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
여기서 주의해야 할 것은 우리가 얻고싶은 건 10까지의 수인데 11까지 입력했다는 거에요. 파이썬에선 인덱스와 마찬가지로 range(시작하고 싶은 숫자,맨 끝f숫자 -1)을 통해서 원하는 집합을 생성할 수 있어요
a의 첫번째 원소를 입력하기 위해선 0을 입력하는 것은 똑같습니다그럼 a 집합의 길이가 몇 인지 알고 싶을 땐 어떡해야 할까요?
위의 경우는 길이가 짧은 집합이기 때문에 일일이 세서 구할 수 있지만, 빅데이터와 같이 집합의 길이가 긴 경우 일일이 세기가 힘들어요.
이를 위한 함수가 또 하나있죠.
아까전에 선언했던 a라는 4부터 10까지의 집합에서 원소(집합의 개체)가 총 7개 있는데, 딱 맞아떨어지죠?
여기서 또 주의해야 할것은 range(10000)은 0에서 9999까지의 숫자들의 집합이라는 겁니다.
Q2:세자리의 숫자들의 집합을 생성하려면 어떡해야 할까요?
Chapter 2: Print¶
내 생각을 표현해보자.
print를 통해서 문장을 출력(print)할 수 있어요.
철수가 배고프다를 표현해볼까요?
"문장"은 값이 문자라는 것을 나타내고, print는 문자인 값을 출력을 하는거에요.
그런데 가끔은 변수[값]로 선언한 후 그 변수를 출력하고 싶을 때가 있어요.
Out[10]:
'\xec\xb2\xa0\xec\x88\x98\xeb\x8a\x94 \xeb\xb0\xb0\xea\xb3\xa0\xed\x8c\x8c'
a라는 값에는 철수는 배고파라는 말이 안에 들어있고, print함수는 이를 사람이 보기 좋게 출력해주는 함수인거죠.
위의 경우에는 a가 숫자 2기 때문에 2를 출력하는거에요.
Q3 : 자신이 하고 싶은 말을 print를 통해서 말해보세요.
그러면 " "을 넣는것과 그냥 숫자를 넣는 것과는 어떤 차이가 있을까요?
답부터 말하면 " "는 문자형 데이터라는 것, 그냥 숫자는 숫자형 데이터라는 거에요.
2+3을 예로 들어볼까요?
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-12-93efc83a45ee> in <module>()
1 a="2";b=2;c=3
----> 2 print a+b
TypeError: cannot concatenate 'str' and 'int' objects
왜 그러는 걸까요? 컴퓨터 입장에서 생각하면 쉬워요.
컴퓨터는 a를 "2"를 숫자로 생각하지 않고, 문자로 생각하고 있는데 숫자 3과 더하려니깐 문제가 생긴거에요.
반면, b는 숫자 2로 인식하고 있기 때문에 3과 더할 수가 있죠.
그럼 c가 문자라면 어떻게 될까요? str은 값을 문자형으로 바꿔주는 함수에요. 갑자기 ' '가 생기는 거 보이죠?
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-16-1f90021336d7> in <module>()
----> 1 print b+str(c)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
문자끼리 더하게 되는 순간 +는 문자들을 이어주는 것이 되었어요!
+가 값이 문자냐 숫자냐에 따라 다르죠? 이러기 때문에 컴퓨터에선 오류가 생기는 거에요.
Q4 : a="철수는" ;b="사과를"; c=1; d="개 먹었다"
주어진 값들을 이용하여 '철수는 사과를 1 개 먹었다'를 표현해보세요