# planb

20개의 포스트

[파이썬 튜토리얼] 음수 인덱스

Level 1 음수 인덱스 Sequence의 첫 번째 요소를 가르키는 index는 0번이며, 오른쪽 방향으로 갈수록 1씩 증가하는 index가 부여된다. 반대로, 마지막 번째 요소를 가르키는 index는 -1번이다. 왼쪽 방향으로 갈수록 1씩 감소하는 인덱스가 부여되는 형태다. 요소마다 양수 인덱스와 음수 인덱스를 둘 다 가진다고 할 수 있다. 이를 통해 Sequence의 맨 뒤를 기준으로 요소에 접근할 수 있다. 다음은 음수 인덱스를 사용한 예다. 결과 Slicing에 응용 음수 인덱스는 Slicing에서도 사용할 수 있다. 결과 연습문제 Indexing 결과 예상하기 다음 코드의 실행 결과를 예상하자. 결과 Slicing 결과 예상하기 다음 코드의 실행 결과를 예상하자. 결과

2023년 5월 31일
·
0개의 댓글
·

[파이썬 튜토리얼] Indexing과 Slicing

Level 1 앞의 두 단원을 통해 list와 tuple에 대해서 알아봤다. 이 둘은 요소들이 모두 순서를 가지고 나열되어 있기 때문에, Sequence라는 범주에 포함시키곤 한다. 이렇게 Sequence에 해당하는 타입들은 0으로 시작하는 정수 번호가 순차적으로 부여된다. 이러한 순서를 인덱스라고 부른다. Sequence의 각 요소에 접근하기 위해 인덱스를 사용할 수 있다. > Sequence가 되기 위해서는, 파이썬에서 정해 둔 몇 가지 요구사항을 만족해야 한다. 당장은 이해하기 어려우므로, 순서를 통해 요소에 접근할 수 있는 타입을 sequence라고 생각하면 된다. Indexing 인덱스를 통해 Sequence의 요소에 접근하는 것을 인덱싱(Indexing)이라고 한다. 다음은 그 예제다. 결과 Sequence의 뒤에, 접근하고자 하는 요소의 번호를 대괄호로 감싸 명시하는 식이다. 이러한 Inde

2023년 5월 31일
·
0개의 댓글
·

[파이썬 튜토리얼] tuple 타입

Level 1 tuple은 list처럼 연속된 요소의 나열을 다루기 위한 타입이다. 문법은 list와 비슷하다. 결과 요소들을 콤마로 구분해 나열하고, 이를 소괄호로 감싸는 것으로 tuple을 표현할 수 있다. 다음과 같이 소괄호를 생략해도 tuple로 해석된다. 결과 특별히 기억해야 할 것은, 요소가 하나 뿐인 tuple을 정의하는 방법이다. 단일 요소를 소괄호로 감싸기만 하는 것으로는 이를 표현할 수 없다. 결과 a = (1)은 a = 1로 해석된다. '산술 연산자' 단원에서 배웠던 것처럼, 소괄호가 단지 우선순위를 높여주는 역할로 사용되어서 그렇다. 떄문에, 모양이 조금 이상하긴 하지만 요소의 뒤에 콤마를 붙여줘야 한다. 결과 연습문제 tuple 찾기 다음 코드에서, tuple 타입에 해당하는 변수가 무엇인지 찾아보자. Level 3 list와 tup

2022년 12월 31일
·
0개의 댓글
·
post-thumbnail

[파이썬 튜토리얼] list 타입

Level 1 기본적인 타입 개념과 산술 연산자를 배웠으니, 파이썬으로 할 수 있는 것이 조금 많아졌다. 이제 기본적인 산수 계산 정도는 할 수 있게 되었다. 그러나 아직 우리가 알고 있는 개념 내에서는 한계가 많은데, 타입의 범위에서 지금 풀어볼 수 있는 것은 많은 개수의 값을 다루기 어렵다는 것이다. 학생들의 키 평균을 파이썬으로 계산하기로 했다고 쳐보자. 먼저, 키 정보를 변수에 저장해야 한다. 만약 3명의 학생을 대상으로 한다면, 다음처럼 3개의 변수가 만들어져야 한다. 당장은 다뤄야 할 값의 개수가 적어서 이 정도로 끝났지만, 만약 학생 수가 30명, 300명처럼 많아진다면 변수의 개수도 그만큼 많아져야 한다. 이런 문제를 해결하기 위해, 다음처럼 변수 하나에 값을 여러 개 묶는 방

2022년 10월 9일
·
0개의 댓글
·
post-thumbnail

[파이썬 튜토리얼] None

Level 1 None은 값이 없음, 알 수 없음 정도의 의미를 가진다. 정수 0이나 빈 문자열 ''과 비슷하다고 생각할 수 있는데, 이들과 None은

2022년 10월 4일
·
0개의 댓글
·
post-thumbnail

[파이썬 튜토리얼] bool 타입

Level 1 프로그래밍에게 필수적인 개념 중 하나로 조건문이 있다. 대표적으로 뒤에서 다룰 if문이 있다. 이러한 조건문은 특별한 경우에만 실행되어야 하는 코드를 구분시키기 위해 사용된다. 모바일 어플리케이션을 예로 들어 보겠다. 지도 앱을 켰을 때, GPS가 켜져 있으면 현재 위치를 기준으로 지도를 보여주고, GPS가 꺼져 있으면 'GPS를 켜달라'는 알림을 노출한다. 온라인 쇼핑몰에서 상품을 장바구니에 추가할 때, 사용자가 로그인되어 있으면 장바구니에 상품을 추가하고, 그렇지 않으면 로그인 화면으로 이동시킨다. 이처럼 어떤 대상의 상태를 확인하고, 상황에 맞게 코드를 실행하게 만드는 것은 프로그래밍에서 매우 중요하다. 조건 만족의 여부를 표현하기 위해서는 참과 거짓을 의미하는

2022년 10월 4일
·
0개의 댓글
·

[파이썬 튜토리얼] 문자열 포매팅

Level 1 터미널로 입력된 문자열의 앞에, input was: 라는 내용을 붙여 다시 출력해야 한다고 하자. 앞의 내용을 되짚어보기 위해, 입력된 값을 그대로 출력해주는 코드를 먼저 작성했다. 입력 결과 hello가 입력되었을 때 input was: hello라는 내용을 출력하기 위해서는, 터미널에서 입력된 내용을 담고 있는 변수 x의 앞에 문자열을 붙여줘야 한다. 다음처럼 문자열 내에 변수의 이름을 넣는 것만으로는 해결할 수 없다. 입력 결과 이번 단원에서 소개할 문자열 포매팅을 통해 이 문제를 풀어낼 수 있다. 문자열 포매팅은 '이 자리에 무언가 값이 채워질 것임'을 명시하는 placeholder(자리 표시자)를 문자열 내에 포함시키고, 그 placeholder를 대체할 값을 명시하는 것이 기본적인 흐름이다. 파이썬은 문자열 포매팅을 지원하기 위한 기능을 지속적으로 추가해 왔다.

2022년 9월 28일
·
0개의 댓글
·

[파이썬 튜토리얼] 문자열 타입

Level 1 첫 단원에 등장했던 print('Hello, world!')에서, 'Hello, world!'는 문자열이다. 파이썬에서는 따옴표로 감싸진 대상을 문자열 타입의 값으로 해석한다. 결과 여기서 'hello', "world"와 같이 따옴표가 감싸져 있는 것은, 문자열 타입의 값으로 해석된다. 따옴표를 떼면 에러가 발생하는 것을 볼 수 있다. 결과 hello와 world라는 이름의 변수를 사용하는 것으로 해석되어 그렇다. 이처럼, 따옴표는 그 안의 내용이 문자열로 해석될 수 있도록 한다. 이번 단원의 첫 예제를 보면, 'hello'와 "world"와 같이 두 종료의 따옴표(작은따옴표와 큰따옴표)를 사용한 것을 볼 수 있다. 파이썬은 따옴표로 감싸져 있는 것이 있으면, 그 종류에 상관 없이 대상을 문자열로 해석한다. 단, 문자열의 시작에 사용된 따옴표와 동일한 따옴표만이 문자열의 종

2022년 9월 27일
·
2개의 댓글
·

[파이썬 튜토리얼] 산술 연산자

Level 1 이번 단원에서는 사칙연산의 범위에 있는 산술 연산자(arithmetic operator)에 대해 알아본다. 산술 연산자 정해진 특수문자를 통해 덧셈, 뺄셈, 곱셈, 나눗셈을 표현할 수 있다. 곱셈에 asterisk(*) 기호, 나눗셈에 slash(/) 기호를 사용한다. 결과 a + b는 a와 b의 합, a - b는 a에서 b를 뺀 값, a * b는 a와 b의 곱, a / b는 a에서 b를 나눈 몫으로 평가된다. 여기에 더해 나눗셈의 나머지, 소수부를 버리는 나눗셈, 거듭제곱을 수행하는 연산자도 있다. 결과 소수부를 버리는 나누기(//)는 반올림을 신경쓰지 않는다는 점을 주의하도록 하자. 예로 5를 3으로 나눈 결과는 1.666...이므로 반올림하면 2가 되지만, 5 // 3의 결과는 1이 된다. 복합 대입 연산자(Augme

2022년 9월 27일
·
0개의 댓글
·

[파이썬 튜토리얼] 숫자 타입

Level 1 파이썬은 숫자 타입으로 정수, 소수, 복소수를 제공한다. 정수 정수 타입은 음의 정수와 양의 정수, 0을 포함한다. 정식 명칭은 정수를 의미하는 integer를 축약한 int다. 결과 실수 소수부가 있는 수는 실수로 분류한다. 실수 타입은 음의 실수와 양의 실수, 0.0을 포함한다. 정식 명칭은 float이다. 소수부의 자릿수 제한은 17자리로 정해져 있다. 결과 정수부나 실수부가 0인 경우 생략해 표현할 수 있다. 결과 0.0의 정수부와 실수부를 한꺼번에 생략해 .으로 표현할 수는 없다. 결과 복소수 복소수 타입은 허수부가 포함된 수를 표현하기 위한 타입이다. 정식 명칭은 complex다. 허수단위를 나타내는 기호로 imaginary number의 약자 i 대신 j를 사용한다. 대문자로 J를 사용할 수도 있다. *

2022년 9월 27일
·
0개의 댓글
·
post-thumbnail

[파이썬 튜토리얼] 타입

Level 1 1234라는 값이 있을 때, 각각을 따로 읽어 일이삼사라고 할 수도 있고, 숫자로 따져 천이백삼십사라고 읽을 수도 있다. 실생활에서는 값이 사용되는 문맥에 따라 숫자인지 문자인지를 판단할 수 있지만, 프로그래밍에서는 컴퓨터가 값의 형태를 알 수 있게 해주어야 한다. 이는 값에 따옴표, 괄호, 콤마 등을 붙이는 것으로 할 수 있다. 예로 파이썬에서 '1234'는 따옴표로 감싸져 있으므로 문자열, 1234는 그렇지 않으므로 정수로 해석된다. 이러한 데이터의 형태를 타입이라고 말한다. 타입을 명시해야 하는 이유는, 타입마다 고유하게 가지고 있는 기능이 각기 다르기 떄문이다. 예를 들어, 문자열끼리의 더하기 연산은 두 문자열을 연결시키고, 숫자끼리의 더하기 연산은 덧셈을 수행한다. 결과 다음 단원부터 파이썬이 자체적으로 지원해 주는 타입들을 알아볼 것이다. 다음은 앞으로 설명할 타입들을 순서대로, 정식 명칭대로

2022년 9월 27일
·
0개의 댓글
·
post-thumbnail

[파이썬 튜토리얼] 변수

Level 1 값을 가지고 있는 이름을 아울러 변수(variable)라고 부른다. 예로, 다음 코드에서 이름 a는 0이라는 값을 가진다. 결과 파이썬에서는 첫 번째 줄처럼 등호(=)를 기준으로 좌측에 이름을, 우측에 값을 두어 변수를 만들 수 있다. 이를 변수 정의라고 한다. 두 번째 줄의 print(a)는 변수를 사용한 예다. a가 글자 그대로 출력되지 않고, 대신 그 이름이 가지고 있던 값인 0이 출력되었다. 이처럼 변수는 값을 저장하고 있기 때문에, 특정 값을 계속해서 유지시키고 재사용하는 데에 응용할 수 있다. 값에 의미를 담기 위해 변수를 사용 점수를 계산하는 프로그램을 작성하고 있다고 하자. 반 평균 점수와 본인의 점수를 비교해서, 평균과 얼마나 차이나는지를 계산하는 단순한 계산 코드다. 예제에 나오는 식은 그냥 산수와 동일하게 생각하면 된다. 결과 이 프로그램은 한

2022년 9월 27일
·
0개의 댓글
·

[파이썬 튜토리얼] PEP(Python Enhancement Proposals)

Level 1 PEP PEP는 Python Enhancement Proposal의 약자다. 파이썬 개선 제안서라는 의미 그대로, 파이썬을 개선(Enhancement)하고자 하는 제안서(Proposal)에 번호를 붙여 공개한 것이다. PEP 페이지에 접속하면 찾아볼 수 있다. 파이썬의 기능들 중에는 PEP에서 시작된 것들도 꽤 있다. PEP의 각 주제는 번호를 부여받는다. 예로 앞 단원들의 Level 2에서 설명한 파이썬 파일의 이름을 짓는 관례, [주석 작성의 관례](https://planb.hashnode.dev/comment#heading-7ko87isdioyekeyeseydm

2022년 9월 27일
·
0개의 댓글
·

[파이썬 튜토리얼] 주석 (Comment)

Level 1 남이 작성한 코드를 읽게 되면, 코드를 이해하는 시간이 생각보다 오래 걸리는 경우가 있다. 심지어 자신이 작성했던 코드를 나중에 다시 읽어볼 때도 비슷한 일이 생길 수 있다. 코드가 하는 행동 자체는 쉽게 이해 되더라도, 예상과 다르게 만들어진 부분을 마주쳤을 때 그 의도를 파악하느라 시간이 오래 걸리는 경우가 많다. 코드는 프로그램의 동작에 완전히 관여한다. 그런데 코드는 무엇을 하는지(what)와 어떻게 하는지(how)만을 설명하고, 왜(why) 그렇게 만들어졌는지는 설명하지 못한다. 이는 코드를 이해하는 시간을 늘리는 원인이 된다. 이런 문제를 극복하기 위해 각각의 코드가 왜 만들어졌는지를 설명해야 하고, 이를 위해 주석(Comment)이라는 기능을 사용할 수 있다. 이전 단원에서 만들었던 코드를 다시 열어서, print문이 작성된 줄의 맨 앞에 # 기호를 삽입해 보자. 내용이 다음처럼 변하면 된다. 글자들이 모두 회색으로 보여지는

2022년 9월 27일
·
0개의 댓글
·

[파이썬 튜토리얼] print('Hello, world!')

첫 단원에서는, 제목처럼 print('Hello, world!')라는 한 줄의 파이썬 코드를 실행해볼 것이다. 이는 Hello, world!라는 텍스트를 터미널에 표시하는 내용의 코드다. Level 1 프로젝트 생성하기 먼저 PyCharm에서 새로운 프로젝트를 생성해야 한다. PyCharm을 켜고, New Project를 클릭하자. 1.PNG 원하는 프로젝트 생성 위치를 설정하고, Create 버튼을 눌러 생성을 마무리하자. 2.PNG 모듈 만들기 이제 프로젝트에 파이썬 모듈을 생성해야 한다. .py 확장자의 파일을 모듈이라고

2022년 9월 27일
·
0개의 댓글
·

[파이썬 튜토리얼] 프로젝트와 모듈 만들기

파이썬 프로그래밍을 위해서는, 프로젝트와 모듈 하나를 생성해야 한다. 프로젝트와 모듈이 무엇인지에 대해서는 당장 구체적으로 알 필요 없다. 먼저 이번 단원의 목표를 달성하는 것에 집중하면 된다. 프로젝트 생성하기 PyCharm을 통해 새로운 프로젝트를 생성하도록 하자. PyCharm을 켜고, New Project를 클릭하자. 1.PNG 원하는 프로젝트 생성 위치를 설정하고, Create 버튼을 눌러 생성을 마무리하자. 2.PNG 모듈 만들기 이제 프로젝트에 파이썬 모듈을 생성해야 한다. .py 확장자의 파일을 모듈이라고 부른다. PyCharm 버전에 따라

2022년 9월 27일
·
0개의 댓글
·

[파이썬 튜토리얼] 파이썬과 PyCharm 설치하기

이번 단원에서는 파이썬 인터프리터와 PyCharm을 설치하는 과정을 다룬다. 파이썬 인터프리터는 파이썬 문법으로 적혀 있는 텍스트를 해석하고 실행할 수 있게 만들고, PyCharm은 파이썬 프로그래밍을 더 효율적으로 할 수 있게 해주는 도구다. 설치 과정은 Mac과 Windows로 나누어 설명한다. 너무 간단하게 설명되어 어렵다면 다른 가이드를 참고해도 무리가 없을 것이다. Mac 파이썬 설치 터미널(Command + Space > 터미널 > Enter)을 연다. 다음 명령어를 실행한다 : xcode-select --install 다음 명령어를 실행한다 : /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 다음 명령어를 실행한 뒤 정상적으로 동작하는지 확인한다 : `b

2022년 9월 27일
·
0개의 댓글
·

[파이썬 튜토리얼] 파이썬에 대해

파이썬에 입문하기에 앞서, 파이썬이라는 프로그래밍 언어에 대해 간략히 알아보도록 하겠다. 비교적 주관이 많이 들어가는 장/단점에 대해서 단정적으로는 얘기하지 않고, 객관적인 내용을 위주로만 언급한다. 어차피 파이썬을 배우는 과정에서 각자 많은 것을 느낄 것이므로, 간단하게만 다루고 마무리하도록 하겠다. 형식적인 순서이므로, 관심 없다면 넘어가도 좋다. 탄생 파이썬(Python)은 네덜란드 출신 프로그래머 귀도 반 로섬(Guido van Rossum)에 의해 1991년에 공개되었다. 1989년이나 1990년에 개발되었다고 설명하는 곳도 있으나, 발표가 이루어진 1991년이 시작이라고 보는 것이 좋다. 1989년, 귀도는 '몰두할 만한 취미 프로젝트'가 있었으면 했고, 그렇게 파이썬이 개발되기 시작했다. 당시 귀도는 ABC라는 언어 개발에 참여하고 있었기 때문에, 그냥 뜬금없이 만들기 시작한 것은 아니다. 근황 파이썬을 개발한 귀도 반 로섬은 2018년 7월에 파이

2022년 9월 27일
·
0개의 댓글
·

[파이썬 튜토리얼] 이 튜토리얼에 대해

이 튜토리얼은 프로그래밍 언어 파이썬(Python)에 대해 다룬다. 필자가 약 2년에 걸쳐 작성하던 파이썬 입문서 집필을 취소하고, 블로그에 업로드하기로 했다. 책은 URL을 넣기가 어렵고, 수정이 어려우며, 소비자의 비용 부담이 큰 지면이었기 때문에 필자가 가장 편하다고 느끼는 '블로그'에서 튜토리얼을 진행하고자 한다. 이 튜토리얼이 다루는 것 이 튜토리얼은 다음의 내용을 다룬다. 파이썬에 대한 입문부터 심화적인 내용까지 유용한 빌트인/서드파티 라이브러리 테스트 작성과 실행, tox/detox와 같은 테스트 환경 구성, backport, 라이브러리를 직접 만드는 과정 등 virtualenv, pyenv, pipenv, poetry와 같은 가상 환경과 의존성 관리 mypy, pylint, black과 같은 코드 퀄리티 검사 File Watcher, 단축키나 여러 편의 기능들을 다룬 PyCharm 팁 이 튜토리얼이 다루지 않는 것 이 튜

2022년 9월 27일
·
0개의 댓글
·
post-thumbnail

FastAPI의 시대. 아직도 Flask 쓰시나요?

repost from hashnode FastAPI는 파이썬 웹 프레임워크의 새로운 트렌드로 자리잡고 있다. Flask를 사용하던 조직은 FastAPI로 옮겨가고 있고, 새 프로젝트들은 Flask를 후보에도 올리지 않는 경우도 생기고 있다. 파이썬 생태계에서 Flask의 숨은 꺼지고, FastAPI를 쓰는 것이 당연해지게 될 것이라고 단언한다. 어떤 Flask 튜토리얼의 마지막 글은 Why I'm Leaving Flask 이기까지 하다. Untitled.png 전반적으로 '현대적인 프레임워크'라는 평가로, 2019년부터는 production에서 운영을 시작한

2022년 3월 24일
·
3개의 댓글
·