파이썬 기초 1일차
❇️ 오늘 배운 내용
[파이썬 기초]
환경설정 하는 법, 파이썬 장점과 데이터 분석에 유용한 이유
조건문, 변수, 연산자, 입출력문 등
주요 개념
- 아나콘다3 주피터랩
- 숫자형 변수 int(정수) float(소수)
- 문자형 변수 string
- 리스트 변수 lsit[] string" " 딕셔너리{ : }
- 연산자: 산술, 비교(관계 ==, !=, <, > 등), 논리(and or)
- 입출력문 print input
- 조건문 elif
- 줄넘김 \n
| 하루종일 파이썬 강의
- 사람들이 파이썬 쓰는 이유
- 다양한 오픈소스 라이브러리가 많아서 이것저것 활용할 수 있다
- 무료로 사용할 수 있음
데이터 분석 툴도 무료고, 사용자가 많고 교육자료도 많다 - 하이레벨 언어 중에 난이도가 가장 쉽다
초보자에게 추천되는 자바, c, 파이썬 중 제일 쉬움.
c언어는 하나하나 촘촘하고 길게 입력해야 되는데 파이썬은 간결한 문법과 다양한 내장 함수가 있어서 쌉가능. - 대량의 데이터를 처리할 수 있다
[각자 다른 강점]
- c: 보안, 정밀성
- 자바: 웹
- 파이썬: 빅데이터, ai
⇒ 빅데이터 처리에 유리
- 파이썬 환경 설정
- 아나콘다3 검색해서, 스킵 누르고 설치
- 주피터랩 런처 클릭하여 가동
크롬, 엣지 등 본인이 쓰는 브라우저로 열릴텐데 그게 정상. 안정성은 크롬이 제일 낫지만 사실 상관은없다. - 데이터 분석용 폴더 생성
- 주피터랩 메인 화면의 노트북- 파이썬 클릭!
사용자명이 한글이면 아나콘다3이 안움직이는 모양이다. 설치명도 한글이면 안움직였다. 한글 차별;; -_-
나는 됐는데 안되는 분도 있었음. 대체용으로 피를? 쓰면 된다카드라.
세팅 오류나신 분들 해결하는 동안, 대충 잡코딩 끄적여봤다.
이런 간단한 코드도 오류 나길래;; 뭐지 싶었는데 옆자리 코딩 경력자분께 여쭤보니 해결되었다.
1. print (a) ⇒ 함수랑 붙여써야 한다. 근데 난 띄워쓰기 했음 ㅋㅋ
2. 리스트 출력은 따로 앞에 * 붙여야 한다.
3. 파이썬은 ; 이거 안넣어도 되는데, 난 모든 줄에 이걸 붙였다. if문 같은 조건문에만 붙으면 충분하다.
밑에 거는... 마침 입출력문부터 배우기 때문에 잡을 수 있겠다.
왜 안되는지는 추후 작성 ㅋㅋ
입출력문
문자 - "쌍따움표 안에 넣으면 문자다"
숫자 - 쌍따움표 안에 넣으면 문자 취급.
print("안녕하세요, 적당히 바람이 시원해 기분이 너무 좋아요 유후~")
인풋만 넣고 프린트 안넣으면 ...
넣는 칸만 생기고 다시 안뜨는 거임....
변수명 = input("안내문")
print(변수명)
/ 쉬프트+엔터
"안내문" [사용자가 값 입력할 수 있는 영역 - 입력 후 엔터]
/
사용자가 입력한 값
- 인풋은 변수를 지정하고 해야 한다.
- 인풋 괄호 안은 안내메세지.
- 프린트로 변수를 출력하면 사용자가 입력한 값이 나온다. 출력 안하면 안나옴.
- 인풋으로 입력한 값은 문자열로 출력된다. 숫자 처리 하려면 변환해줘야 함. (int, float)
- 파이썬은 절차 지항 언어라 아래에서 변수 지정값 바꿔도 잘 작동됨. 물론 오류 생길 수는 있겠으나 실습하는데는 문제 안됨.
참고: 자바 스크립트 객체 지향 언어 - 객체 지향 언어와 절자 치향 언어의 장단점을 여쭤봤으나 아직 잘 모르겠음.
주피터랩은 단락마다 따로 처리해서 (함수 지정은 이어지지만) 오류에 덜 민감하다는 것은 잘 알았다.(원리는 모르겠다)
(저번에 개발자 친구에게 들었었는데 객체 지향의.. 원리 생각안남. 객체, 자바 스크립트, 위로 끌어올려줘서 어쩌고만 간신히 기억함. 더 떠올려봐야지.)
문자형 변수
- 변수란? 다양한 값을 저장하는 공간. 파이썬에는 한글 명칭 가능함.
- 딕셔너리: {키:vaiue, 키:vaiue, ...} 데이터베이스에 활용
- srting " "로 감싸져 있으면 모두 문자열 변수.
- 이것도 일종의 list라서 index로 일부 글자 뺴낼 수 있음.
- 인덱스해서 빼낸 글자끼리 합쳐 새로운 문장 만들 수 있다.
- list[ ] : 여러 데이터로 이루어진 변수. 숫자, "문자" 등
- index로 값 뺴낼 수 있음.
- "ㅁㅁ" + "ㅁㅁ" 하면
ㅁㅁㅁㅁ (문자열끼리 붙음)
"ㅁㅁ" + " " + "ㅁㅁ" 하면
ㅁㅁ ㅁㅁ - "ㅁㅁ", "ㅁㅁ" 하면
ㅁㅁ ㅁㅁ
- 함수명[?:?] 인덱스
- 첫번째부터 0 1 2 이케 셈. 0부터 시작.
- [0:2] 하면 첫번째(0)부터 2번째까지(3 이전)라는 거임. 3번째 까지 아님.
내가 1~3번째 자리 숫자 구하고 싶다 하면 -1:그대로 하면 됨. - 마이너스 붙이면 뒤에서부터 시작. 뒤에서부터 -1 -2...
- [2:] 2 이후 (그러니까 세번쨰 포함한 그 이후부터)
- [:2] 2 이전 (세번째를 포함하지 않고 그 전부터)
*이거 자꾸 헷갈림 ㅋㅋㅋ
숫자형(데이터 타입) 변수
a = int(input("몇 살임? 숫자로 입력해줘."))
print(a)
- 숫자형 (음수 포함)
- int() : 정수, 0
- 소수점 입력하면 오류가 난다. → 조건문 달아서 오류 띄워주면 됨.
- 대신 바이트가 적다.
- float : 소수점
- 정수를 입력해도 오류가 안남. 소수점이든 정수든 사용자가 뭘 입력할지 모를 땐 이걸 쓰기.
→ 조건문 안달아도 되니까 코딩 초보나 귀찮고 양 많은 거 싫으면 이걸로? - 대신 소수점이 붙어서 깔끔해 보이지는 않는다. 바이트도 더 나감.
- 정수를 입력해도 오류가 안남. 소수점이든 정수든 사용자가 뭘 입력할지 모를 땐 이걸 쓰기.
- 둘이 저장하는 방식이 다름.
- input으로 받은 값(입력받은 값)은 string(문자열)이기 때문에 input 바깥을 int이나 float로 감싸야 한다.
- int() : 정수, 0
- int : 버림
- round : 반올림
- 변수 지정할 때 int 같은 거 달아버리는 게 편함. 나중에 print 할 때 넣으려면 하나하나 달아야 하니까.
사칙연산 (산술 연산자)
- ==
- /
- *
- //
- %
- 부호가 조금 다르지만 일반 수학처럼 괄호 넣기 가능
- "문자열"에 * 곱하기 하면 반복해서 입력이 됨.
연산자
- != 같지 않다 ( ... =! 아님)
- 비교 연산자는 문자끼리도 비교할 수 있다!
각자 부여받은 번호가 있는데 먼저 만들어진 순, 통상적으로 정렬된 순(앞에 있는 것이 적은..)으로 숫자가 작다
- 대문자 < 소문자
- a < b
- 한국어 < 일본어 < 영어
string method (편리한 문자열 내장함수)
- print(변수명.capitalize())
첫글자만 대문자로 - print(변수명.upper())
전체 대문자로. - lower 전체 소문자로.
- 이미 다 소문자인 거 로워 씌워도 오류 안남. 원래 대부분 이미 그렇게 된 거 다시 처리해도 오류 안난다.
- print(upper(변수))
print(capitalize("apple"))
이런 거 오류 뜸.
보통 함수 안의 괄호는 뭐를 넣으라는 뜻 넣어도 된다는 뜻이지만 이런 몇몇 거는 특이하게도 앞에 달아야 한다.
왜인지는 다음에 알려주시겠다고 하셨음. - len(변수명)
길이 계산해서 숫자로 돌려줌. 평범하게 괄호 안에 이름 넣는 형태. - 이런 거에 인덱스 넣어서 몇몇 부분만 활용해도 됨.
조건문
변수 =
if 무슨 조건:
print( ...
elif 뭐시기...:
print( ...
else:
print( ...
여기는 엑셀과 다르게 end if 같은 게 없다.
elif, : , 들여쓰기 명심하기.
필요한 변수는 미리 정의해놓기.
int도 필요하면 미리 둘러놓기.
초반에 오류 났던 부분 고쳤다
오늘 수업 초반에 혼자 끄적거리고 오류 왕창 났던 부분, 오늘 진도로 다 나갔기 때문에 고쳐보았다.
함수가 리스트 형일 때 *붙여서 뽑냐 안뽑냐의 차이
오류 없애고 맞는 거 쳤음
else에는 칠 필요 없다.
요 부분 틀린 이유는 아마... int 처리를 안해서라고 생각. (왜 안되는진 원리까지는?)
여백 두기
/n 아님
\n 이거임
강사님이 가르쳐주시는 거 받아적었는데 저렇게 됐다.
어떻게 돌리는지는 내일 여쭤봐야지.
- 출력칸 가독성 있게 띄우는 법
print("\n") - print 안에서 줄바꿈 하는 법
print(내용\n 내용\n 내용...)
+) 다음날 추가 ㅋㅋ
이렇게 바꾸면 됨 ㅋㅋ 마크다운으로 되어있었음 ㅋㅋ
여담
정리하기 전레드 귀찮고
잘 정리된 블로그는 많으니
걍 내가 헷갈릴 수 있는 부분 위주로만 올린다.
다음에 복습하면서 연습문제 다시 풀어봐야지.
이번에는 안풀고 대충 머리속으로만 생각하고 넘긴 파트도 많다.
엑셀이든 뭐든 걍 수식 통일하라고. -_-
노션 등에 글 쓰려면 어디서는 쉬프트 엔터해서 줄넘기니까
여기서 자꾸 쉬트 엔터 해서 결과값 보고 난리다.
헷갈려헷갈려
[회고]
1. 나 왜 나름대로 잘 따라가고 있지? 올 ㅋ 나름 자신감 생기는구만.
- 응용해서 알아서 뭔가 뚝딱뚝딱 하고 있다.
- 강사님이 설명해주시는 부분 주석 달면서 잘 적어놓고 잘 이해했다.
- 연습문제도 별로 어렵지 않게 풀었다.
물론 오늘은 기초 내용이고, 이전에 개발 기초 영상 같은 거 본 적 있고, 주변 개발자분들이 개발 지식 대강이나마 알려준 적도 많았긴 하다. 그게 아무래도 도움된 거 같다.
아니었으면 대체 변수는 무슨 개념이고 함수는 뭐지 무슨 관계지 갑자기 이런 개념이 왜 나오지 왜 인풋 할 때도 넣고 프린트 할 떄도 넣지 했을 것이다.
2. 왜 저번에 개발 공부를 했을 때는 어렵고 복잡하고 귀찮다는 생각만 들었는데 지금은 다를까? 좀더 자세히 추측을 적자.
- 파이썬이 쉬워서?
자바 스크립트도 쉬운 편에 속하는 언어. 그리고 그럴거면 파이썬 배웠을 때 흥미 느꼈어야 함. - 개발 필요성을 더 느껴서?
개발 기획 기타 등등 잘하는 사람을 더 많이 보기도 했고 주변에 개발자가 많은 편이라 그들을 이해하고 싶다는 욕망이 축적되어서? - 강사님이 쉽게 가르쳐주셔서?
일단 초장부터 질문하기 편한 환경을 조성해주신 점, ppt 깔끔하게 구성하신 점, 주피터랩이라는 좋은 실습도구로 하는 점은 도움이 되었다.
그러나 나는 원리를 이해해야 되는 사람 같은데 이 교육의 특성 상 빨리빨리 지나가야 하다 보니 원리부터 차근차근 가르칠 시간은 없는 것 같다. 이건 전공자도 같은 생각이었다. - 기반 지식이 있어서? 많진 않아도 아예 없는 건 아니므로? < 유력한 추측
그러나 이걸로 영향이 그렇게 큰가? - 아침 역질문에 잘 대답해서 자기효능감이 상승했기에?
아침에 강사님이 역질문으로 파이썬 왜 쓰냐고 했는데 내가 잘 알고 있엇다. 여기서 뿌듯해서 자기 효능감이 올라간건가? 그게 영향을 끼친건가? - 오늘 컨디션이 좋아서?
잠 = 부족해서 아까 살짝 졸았다. 기술블로그 쓰는 시간에도 20분 정도 잠들었다.
기분 = 걍 크게 나쁘진 않다. - 약을 먹어서 내 본래 뛰어난 집중력이 발휘되었나?
내가 본래 뛰어난 집중력을 가지고 있는지 미지수고
약을 먹는다 해서 그런 웅장한 효과가 나오는지도 미지수고
3. 개발 이전에 체계화 사고 훈련부터.
아마 체계화 사고를 습득한 경향도 있는 것 같다. 이게 핵심 이유지 않을까? 10년 전 나라면 강사님께 질문도 제대로 못하지 않았을까? 강사님이 잘 가르쳐 주셔도 내가 일단 ..
2년 전인가? 개발을 처음 접할 떄는 코드를 입력하면서 오류도 더 많이 냈다.
난 제대로 입력한 거 같은데, 뭐가 틀린지도 모르겠는데, 자꾸 오류가 나서 진행이 안되고, 그렇다고 여기저기 물어보기에는 너무 기초인 거 같고...
나는 여러 가지 이유로 체계화하는 법을 습득해왔다.
평소 생각을 전개할 때도 정리해서 말할 떄가 많아졌고, 그 점은 마음에 든다. (물론 늘 정리하는 건 아님 ㅋ)
이런 점 때문에 개발적 사고가 내면화 되어 가고 있을지도 몰른다.
예전에 부트캠프에서 이런 질문을 했었다.
"개발자들의 뇌구조는 어떻게 되어 있길래 개발이란 무시무시한 걸 합니까?"
이제는 좀 감이 온다.
그들은.... 그들은 무시무시한.. 개발적 사고의 소유자들...
그러니, 개발을 더 쉽게 이해하려면
당장 코드 학습에 뛰어들기 보다
무언가를 체계화하고 정리하는 훈련부터 하는 게 좋을 거라는 생각이 든다.
그런 걸 해본 학생이 더 잘배우지 않을까?
4. 좀더 인내심이 생겻을지도 모른다.
개발을 못하는 사람이란 걸 납득해서 욕심이 없는 걸 수도 있고...
좀더 세부사항을 잘 보게 된걸지도 모른다. 그래서 오류는 좀 적어졌다.
아니 사실 어려운 부분이아니라서 그런 걸 수도.
뭔가 내려놓은 것도 있는듯,
원래라면 왜 연산자라고 부르지
왜 이건 되고 저건 어쩌고 저쩌고 무슨 원리지?! 했을지도 모른다.
#청년취업사관학교 #데이터분석가 #데이터분석가부트캠프 #DA교육 #데이터분석교육 #실무프로젝트 #실무경험 #취업포트폴리오 #포트폴리오 #취업연계교육 #코멘토 #모비니티
'새싹 데이터 분석 교육 (24.05.13~24.08.16) > TIL' 카테고리의 다른 글
[성동2기 전Z전능 데이터 분석가] 0620 (0) | 2024.06.20 |
---|---|
[성동2기 전Z전능 데이터 분석가] 0618 (1) | 2024.06.18 |
[성동2기 전Z전능 데이터 분석가] 0530 (1) | 2024.05.31 |
[성동2기 전Z전능 데이터 분석가] 0529 (1) | 2024.05.30 |
[성동2기 전Z전능 데이터 분석가] 0524 (0) | 2024.05.24 |