1일차 파이썬 개발환경 구축
파이썬 3개의 버전(3.9.13, 3.10.11, 3.11.5)을 설치하였다.
과정은 매우 간단하니 생략한다.
기기에 설치된 Python의 버전들을 확인해보기 위해서 윈도우키 -> 시스템 환경 변수 편집 -> 환경변수 -> path와 편집 버튼을 눌러 설치한 python이 잘 설치되어있나 확인가능합니다. 나중에 나의 개인 컴퓨터에서도 파이썬 버전을 확인해보자. 아마 많은 파이썬 버전이 설치되어 있을 것으로 확인된다.

Powershell에서 실행 권한 관련하여 설정을 하였다.
IDE 통합개발환경에서 개발을 진행하기 위하여 로컬 스크립트를 모두 승인하는 RemoteSigned상태로 변경하였다.

IDE라는 단어가 생소하여 구글링을 해보았다. 가장 직관적인 설명은 "소프트웨어 개발에 관련된 모든 작업, 즉 패키지 인클루딩, 문서 편집, 컴파일, 디버그, 원격 서버 액세스, 바이너리 배포 등을 하나의 프로그램 안에서 모두 처리하는 환경을 제공하는 툴. 비슷한 말로는 고속 개발 도구가 있다."
IDE 종류는 익숙한 IDLE, Jupyter Notebook, Visul Studio와 Visual Studio Code가 있다. 그 중에서도 이번 교육 기간 동안에는 VS Code를 사용할 예정이다. VScode를 새로 설치할 때마다 항상 생각나는 것이 한가지 있다. 개발자는 영어를 많이 사용하기 때문에 VScode의 언어를 영어로 설정하고 해보자는 생각을 한다. 하지만 항상 킹받아서 다시 한글로 변경했던 기억이 있다. 물론 이번에도 영어로 설정하고 진행할 예정이다. :D
VS Code 설치과정 역시 간단하기에 생략한다.

VSCode를 설치했다면 이후에는 확장자들을 추가하고 설정을 변경해주면 개발 환경이 더욱 용이해진다.
먼저 Extention은 보기 편하게 해주는 Prettier, indent-rainbow, Material icon theme과 D2coding font를 추가하여 코드의 가독성을 높였다.
그리고 기본 언어인 Python과 Jupyter를 설치하여 주었다.
D2coding font는 네이버에서 만든걸로 한국인에게 친화적이다. Git hub에서 D2coding font를 다운 받은 후 설정해두면 된다. 설정하는 과정은 File -> Preference -> Settings 에서 검색에 font를 검색한다. 검색 결과에서 Font Family칸에서 제일 앞에 D2Coding ligature를 추가하고 콤마를 찍어주고 아래에 Edit in settings.json을 클릭하고 editor.fontLigatures가 false로 되어있을텐데 이것을 true로 바꿔주면 D2Coding font가 설정완료 된다.


마지막으로 가상환경을 만드는 것을 정리해보자. 가상환경은 하나의 컴퓨터에서 다양한 개발을 진행하기 위하여 만드는 것이라고 생각된다. 많은 프로젝트를 진행해야하는데 그때마다 컴퓨터를 포멧시키고 새로운 환경을 만드는 것은 현실적으로 불가능하기에 가상환경을 만들어 그곳에 필요한 모듈들을 집어넣고 프로젝트를 진행할 수 있다. 위에서 ExecutionPolicy를 RemoteSigned로 변경해주어 IDE 환경을 만들었기때문에 VS Code내부에서 가상환경을 쉽게 설정할 수 있다. 하나의 폴더를 잡고 새로운 터미널을 개통한다. 그리고 사용할 파이썬 버전을 정한 후 가상환경을 만들어주면 된다.
Powershell 터미널에서 py 3.? -m venv .venv 라는 코드를 입력해주면 된다. ?에는 원하는 파이썬 버전을 넣으면 된다. venv는 가상환경을 설정한다는 명령어이고 뒤에 .venv에는 다른 이름의 가상환경을 넣어줘도 되지만 통상적으로 .venv를 사용한다.

이제 만들어준 가상환경을 활성화해보자.
.\.venv\Scripts\activate
이 과정을 조금 더 간단하게 해주는 방법은 .v 탭, S 탭, a 탭을 눌러주면 된다. 탭키를 누르면 뒤에는 폴더내에 있는 파일이름을 자동으로 완성시켜준다. 이후에는 활성화된 가상환경에 자유롭게 모듈을 추가하여 활용하면 된다. 가상환경을 종류할 때는 deactivate를 입력해주면 된다.
마무리 과제:
3개의 폴더 Naver, Kakao, Samsung을 만들고 파이썬 버전이 각각 11,10,9인 가상환경을 만들기.
새로 배운 함수들을 알아보자
인덱싱이라는 것은 객체에 부여된 번호를 의미한다. 이건 대괄호로 사용할 수 있는데 예시를 보면서 설명하는 것이 쉬울 것이라고 생각한다. 코딩 공부라는 것이 이론적인 것보다는 직관적인 것이 중요하기 때문이다.

a라는 문자열이 있는데 이것에 부여된 인덱스가 있다. b는 그냥 a의 인덱스를 직관적으로 보여주기위해 만들어 놓은 것이니 크게 신경쓰지 않아도 된다.
find 함수는 ()안에 들어가는 것이 문자열안에 존재하는가를 확인시켜준다. 존재한다면 인덱스 번호를 알려주고 없다면 -1을 출력한다.

count 함수는 문자열안에 ()에 들어가는 문자가 얼마나 들어가는 지를 알려준다.

len은 그냥 뒤에 들어가는 문자열의 길이를 정수로 알려준다.
join은 ?에 들어갈 문자를 ()안에 있는 문자열의 인덱스 사이사이에 넣어주는 함수이다.

첫 줄은 공백, 즉 띄어쓰기를 하나씩 넣어준 것이다.
이쯤되면 위에 함수 형태만봐도 어떤 함수인지 유추할 수 있다. split은 join과 연계를 하면 문자열이 list 타입으로 변한다. 근데 그냥 list 함수 써도 결과는 같다.

문자열을 모두 대문자 만들어주는 함수
문자열을 모두 소문자 만들어주는 함수
차례로 전체 공백을 제거, 왼쪽 공백을 제거, 우측 공백을 제거해주는 함수이다. 하지만 아쉽게도 문자와 문자사이에 공백은 제거해주지 않는다.
문자열 안에있는 a들을 b로 바꿔주는 함수이다. 꽤나 유용하다.

리스트에서 [] 적용되는 인덱스를 제거해준다.

리스트 맨뒤에 ()에 들어가는 것을 추가해준다.
리스트를 오름차순, 알파벳 순으로 정렬해준다
리스트를 뒤집어준다.
index는 ()안에 들어가는 값이 리스트 안에 있다면 몇번째 인덱스에 있는지 번호로 알려준다.
dic은 key값과 value값을 갖는다. 중괄호를 사용하여 지정한다. 이것은 복잡할 수있으니 괄호를 하나씩 천천히 넘어가며 분석하는 것이 좋다.

name과 age는 key이고 그 안에 들어가 있는 두개의 값들이 value이다.
dic안에 있는 key값들을 모두 알려준다
dic안에 있는 value값들을 모두 알려준다.
오늘은 정리할게 많았던 것같아. 강의 중에 제대로 집중하여 바로 정리할 수 있는 습관을 들이는게 좋을것으로 보인다. 수업중 문제를 몇개 내주셨는데 문제푸는 재미가 있었다.
if 조건문:
위 조건이 참이면 실행할 코드
elif 조건문:
위 조건이 참일때 실행할 코드
else:
if와 elif의 조건이 거짓일때 실행할 코드
if의 조건과 elif의 조건이 겹치면 위에 있는 if의 값을 출력한다. 그렇기때문에 if와 elif의 조건을 겹치게 설정하는 것은 좋지 못하다. 즉 if문이 참이면 그 아래 조건들은 확인하지 않는다.
Pass: 딱히 실행하는 것은 없다. 다음 줄으로 이동한다.
Break: 현재 반복문 밖으로 나간다.
continue: 다음 회차의 loop를 시작한다.
for
else
for문도 else를 추가할 수 있는데 이것은 for문이 완전히 다 끝난 경우에 실행되는 else 구문이다.
except:
형태로 되어있다. 오류가 발생하여도 오류코드가 나오는 것이 아닌 except에 있는 코드를 실행한다.
range(a,b)
a~b-1까지의 정수들을 갖는 range값이다. range(a,b,c)일 때 c는 정수 사이의 간격이다.
