코딩 초보의 정리글입니다. 0편부터 보세요.
파이썬을 처음 접할 때 두 가지 방법으로 써봤다. 파이썬 인터프리터 셸을 띄워 쓰는 것과, 스크립트 파일을 작성해 실행시키는 것. 셸을 쓰는 방법을 먼저 할 거다. 이유는, 기본적인 명령어를 써보면서 재미가 없다면, 취미 코딩 차원에서 파이썬을 꼭 공부할 필요가 있을까 싶어서다. 흥미를 느낄 다른 언어도 많을테니까.
같은 내용의 수많은 글들이 있으니 원론적인 건 건너뛰자. 타입, 변수 등등등 검색해서 충분히 훌륭한 정보를 접할 수 있는 부분은 생략하고 어떤게 재미있었는지만 쓴다. 중고등학교 때 배운 수학 지식이 남아있다면 입문 단계에서는 그리 어려울 일도 없다.
셸 실행
셸 실행은 간단하다. 가상환경을 띄우고.
python
Python 3.9.0 (tags/v3.9.0:9cf6752, Oct 5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
python을 입력하면 바로 나온다. 여기에 입력하는 명령어는 파일에 넣어서 실행해도 동일하다. 한줄 씩 입력하느냐, 파일을 읽어서 한줄씩 실행하느냐의 차이다.
사칙연산
재미없는 사칙연산은 건너뛰고, 파이썬은 숫자의 사칙연산만 있는 게 아니라는 점만 보자.
>>> "abc"+"def"
'abcdef'
문자열도 더하기가 된다.
>>> 'abc'*3
'abcabcabc'
곱하기도 된다.
슬라이스
파이썬에는 리스트, 딕셔러니, 튜플이라는 게 있다. 수학시간에 배운 집합과 유사하다. 숫자나 문자처럼 한 뭉텅이가 아니라, 여러개를 모아 묶어놓았다는 의미다. 파이썬 자료형에 대한 명확한 설명은 아님에 유의하자. 파이썬에서 집합은 세트라는 자료형이 있고 저들은 시퀀스라고 부른다. 다만 경험적으로 이론을 먼저 아는 것보단 써보고 저런 게 왜 있고 왜 쓰는지를 아는 게 더 낫다. 지금은 재미를 느끼는 단계니까.
somelist = [1, 2, 3, 4, 5]
somedict = {'name':'somename', 'gender' : 'male'}
sometuple = (1, 2, 3, 4, 5)
각각의 예시다. 세트는 별로 써본 적이 없어서 생략했다. 리스트와 튜플의 차이는, 튜플은 한번 변수를 할당하면 해당 값을 못 바꾼다. 바꿀 일이 없는, 혹은 바뀌면 안되는 값을 설정할 때 쓸 것이다. 리스트는 값을 변경하는 게 가능하다. 딕셔너리는 안쪽에 어떻게 쓰든 순서가 없고, 앞쪽에 지정한 문자열이 인덱스 키 역할을 한다. 리스트는 순서가 있다.
슬라이스를 이해하려면 인덱스를 알아야한다. 인덱스란
>>> somelist[0]
1
처럼 할당된 변수 뒤에 대괄호로 숫자를 넣으면 해당 순서에 있는 값이 나온다는 의미다. 보통 [0]이 첫번째 값을 의미한다고 설명한다. 즉 우리가 평소 알고 있는 순서 개념에서 -1씩 계산해야 하는 것처럼 보인다. 두번째 변수는 somelist[1]이 된다고.
그런데 그렇게 외우면 평생 피곤하다. 하나만 더 기억하는 게 좋다. 인덱스는 실제 값 '앞'에 붙어있다. 내게 번호표를 붙이는데, 등이 아니라 가슴팍에 단 것이다. 내 번호를 부르려면 내 앞을 봐야 한다. 난 뒤돌아보지 않는다. 이 개념이 중요한 이유는, 슬라이스를 할 때 더 헛갈리기 때문이다.
슬라이스는 원하는 범위만큼 잘라서 보여준다.
>>> somelist[0:3]
[1, 2, 3]
리스트에서 인덱스 0에서 `2`에 해당하는 값이 슬라이스되서 나왔다. 적은 인덱스는 0과 3이다. 실제 출력된 나온 값은 3번째 값까지, 즉 인덱스로 치면 2까지 나왔다. 이걸 '슬라이스할 때 뒤쪽 값은 인덱스 전까지만 나온다'로 기억하면 또 피곤해진다. 3이라는 번호표 3에 해당하는 값의 '앞'에 있다. 즉 0에서 3까지 자를때, 3의 번호표까지만 자르고 값은 버린 것이다. 본인이 가장 편하게 생각할 수 있는 방법으로 기억하자. 은근히 헛갈린다.
:
옆에 값을 꼭 붙일 필요는 없다. 생략하면 기본값이 붙는다. 앞을 생략하면 0이, 뒤를 생략하면 리스트 끝까지다. 마지막 인덱스라. 마지막 값의 가슴팍에서 잘려나갈까? 마지막 값 뒤에 번호표만 하나 더 있다고 생각하라.
>>> somelist[:3]
[1, 2, 3]
>>> somelist[3:]
[4, 5]
>>> somelist[:]
[1, 2, 3, 4, 5]
리스트에 있는 값이 숫자라 더 헛갈린다면, 문자열로 바꿔서 놀아도 된다. 리스트 안에는 숫자, 문자, 다른 리스트, 딕셔너리, 튜플, 다른 객체까지 못들어가는 게 없다.
튜플도 리스트처럼 슬라이스 된다. 딕셔너리는 다르다. 딕셔너리는 우리가 타이핑한 순서대로 나열되지 않는다.
somedict = {'name':'somename', 'gender' : 'male'}
앞서 생성한 딕셔너리를 다시 보면, 쉼표로 구분된 값의 형태가 다르다. 앞쪽은 키, 뒤쪽은 값이다. 이 키가 앞서 리스트에서 숫자로 붙였던 인덱스의 역할을 한다.
>>> somedict['name']
'somename'
>>> somedict['gender']
'male'
키를 숫자로 붙여도 된다. 다만 그것이 순서를 의미하지는 않는다.
문자열도 슬라이스가 된다.
>>> somestr = "abcdefg"
>>> somestr[0:2]
'ab'
>>> somestr[2:]
'cdefg'
이런 기능에서 뭔가 편안하다거나, 직관적이라고 느끼고, 계속 배워나가면서 골머리를 앓지는 않겠다는 생각이 들었다면 코딩이 재미가 있을 것이다. 사실 파이썬 셸을 쓰는 건 여기서 끝이다. 텍스트 에디터를 선택해 스크립트를 작성하면, 굳이 셸을 쓸 일이 없기 때문이다.
'취미코딩 > hobby' 카테고리의 다른 글
파이썬으로 업무 자동화까지 <8> requests 3 (2) | 2020.12.19 |
---|---|
파이썬으로 업무 자동화까지 <7> requests 2 (0) | 2020.12.14 |
파이썬으로 업무 자동화까지 <6> requests 1 (0) | 2020.12.14 |
파이썬으로 업무 자동화까지 <5> HTTP (0) | 2020.12.11 |
파이썬으로 업무 자동화까지 <4> PIP (0) | 2020.12.10 |
파이썬으로 업무 자동화까지 <3> 에디터 (0) | 2020.12.09 |
파이썬으로 업무 자동화까지 <1> 가상환경 (0) | 2020.12.09 |
파이썬으로 업무 자동화까지 <0> Just Do It. (0) | 2020.12.09 |