001. 데이터 취업 스쿨 스터디 노트_1주차_파이썬기초

Julia-jh·2024년 4월 12일
0

1주차

수강한 분량

교육 첫 주에 배정된 분량은 파이썬 기초의 개념 강의와 실습 강의였다. 개인의 일정에 따라 몰입형과 병행형으로 나누어졌는데, 평일 중에 수업을 듣는 나는 몰입형으로 하루에 3~4시간의 분량이 추천되었다.

각 강의별 학습한 핵심 내용 정리

1. pyCharm 설치

pycharm에서 붙여넣고 싶을 때 단축키 ctrl + d (duplicate 약자)
pycharm에서 실행하고 싶을 때 shift + F10

2. 변수

  • 변수: 데이터가 저장되어 있는 특정한 공간
  • 변수명: 메모리 주소가 너무 어려워 인간이 이해할 수 있는 언어로 지칭하는 것
  • 변수를 사용하는 이유: 반복과 수정이 용이함
  • 변수명 규칙
    - 데이터의 의미를 유추할 수 있게 작명
    - 영문
    - 소문자 시작(추후에 나올 클래스와 혼동 가능성 줄이기 위함)
    - 카멜 표기법: myAge
    - 스네이크 표기법: myage
    - 예약어,
    제외한 특수문자, 공백문자 사용 금지
    - 숫자는 첫 번째 자리 제외하고 사용 가능

3. 자료형

메모리를 낭비하지 않고 효율적으로 관리하기 위해서

  • 정수형
    - int
    - 메모리가 허용되는 한 무한 사용 가능

  • 실수형
    - float
    - 대략 소수점 이하 17~18번째에서 데이터 손실이 일어남

  • 문자형
    - str
    - '' 혹은 "" 로 묶어서 표현

  • 논리형
    - bool
    - True 혹은 False 존재

  • type(변수): 변수의 타입을 확인할 수 있다

  • # 내용 :단행 주석, ctrl + \ 로 가능

  • '''내용''': 다행 주석

  • 자료형 변환
    - 문자로
    - str()
    - 숫자로
    - int()
    - float()
    - 논리형을 숫자로 바꾸면, True는 1로 False는 0으로 변환됨
    - 논리로
    - bool()
    - 빈 문자 / 공백 문자
    - '': 빈 문자
    - False
    - ' ': 공백 문자
    - True
    - 글자 내용과 관계없이 채워진 문자라면 True

4. 데이터 입력

  • input('가이드 문구'): 입력 함수
    - 입력받은 데이터는 모두 str 타입

5. 데이터 출력

  • print(): 출력함수
    - ,를 이용해 데이터 연속 출력 가능
    - 옵션
    - end
    - 자동으로 마지막에 개행문자가 삽입되어 있다
    - end = '': 옵션값에 빈 문자 넣기 가능, 그 다음 내용이 바로 붙어서 나옴
    - f'내용 {변수명}': format함수 사용
  • 특수문자
    - \t: 탭
    - \n: 개행
  • format()
    - print('라라라{}라라라{}'.format(변수명, 변수명))
    - print('라라라{0}라라라{1}'.format(변수명, 변수명))
  • 형식 문자
    - %s: 문자열
    - %d: 정수
    - %f: 실수
    - %.1f: 소수점 첫 번째자리까지 표현, 사사오입 적용됨
    - 사용법
    - print('lala: %s' % VariableName)

6. 연산자

산술

  • 더하기
    - +
    - 숫자끼리 덧셈: 더하기 연산
    - 문자끼리 덧셈: 문자열 이어 표현
    - 숫자와 문자의 덧셈: 불가능
  • 빼기
    - -
    - 숫자끼리 뺄셈: 빼기 연산
    - 문자끼리 뺄셈: 불가능
    - 숫자와 문자의 뺄셈: 불가능
  • 곱하기
    - *
    - 숫자끼리 곱셈: 곱셈 연산
    - 문자를 이용한 곱셈: 곱해진 수만큼 반복
  • 나누기
    - /
    - 숫자끼리 나눗셈: 나눗셈 연산
    - 0을 나누는 경우 항상 결과는 0
    - 0으로 나누는 경우 항상 결과는 ZeroDivisionError: division by zero로 0으로 나눌 수 없다는 에러가 나옴
    - 나눈 결과는 항상 float
  • 나머지
    - %
    - 나머지만 구한다
    - divmod(num1, num2)[1]

  • - //
    - 몫만 구한다
    - divmod(num1, num2)[0]
  • 나머지와 몫을 한 번에 구하기
    - divmod(num1, num2)
    - (몫, 나머지) 의 tuple 형태로 결과가 나옴
  • 거듭 제곱
    -
    - 앞의 수를 뒷 수만큼 거듭 제곱한다.
    - n의 m제곱근 공식
    - n
    (1/m)
    - math 모듈
    - sqrt() 함수
    - math.sqrt(n): n의 제곱근 구하기
    - pow() 함수
    - math.pow(n, m): n의 m제곱값 알려줌
    - format(숫자, ',')
    - 숫자를 3자리마다 ,로 구분하고 데이터 타입을 str로 바꿈

복합

  • 할당
    - =
    - 오른쪽의 값을 왼쪽에 할당(대입)
  • 덧셈 연산 후 할당
    - +=
  • 뺄셈 연산 후 할당
    - -=
  • 곱셈 연산 후 할당
    - *=
  • 나눗셈 연산 후 할당
    - /=
  • 나머지 연산 후 할당
    - %=
  • 몫 연산 후 할당
    - //=
  • 거듭 제곱 연산 후 할당
    - **=

비교

  • 연산 결과는 bool이다
  • 숫자인 경우 크기 비교
  • 문자인 경우 아스키코드를 이용해 크기 비교
    - A: 65
    - a: 97
    - ord() 함수
    - 문자를 십진수로 표현하기
    - ord('A') = 65
    - chr() 함수
    - 십진수를 문자로 표현하기
    - chr(97) = a
  • 문자열인 경우 문자열 자체를 비교
    - 하나라도 다르면 False
  • 크다
    - >
  • 크거나 같다
    - >=
  • 작다
    - <
  • 작거나 같다
    - <=
  • 같다
    - ==
  • 같지 않다
    - !=

논리

  • 그리고
    - and
    - A와 B 모두 True인 경우만 결과 값이 True
  • 또는
    - or
    - A와 B 중 하나가 True인 경우 결과 값이 True
  • 아니다
    - not
    - A 상태를 부정하는 결과

7. operator모듈

  • 산술 연산자 모듈
    - operator.add()
    - +
    - operator.sub()
    - -
    - operator.mul()
    - *
    - operator.truediv()
    - /
    - operator.mod()
    - %
    - operator.floordiv()
    - //
    - operator.pow()
    - **
  • 비교 연산자 관련 모듈
    - operator.eq()
    - ==
    - operator.ne()
    - !=
    - operator.gt()
    - >
    - operator.ge()
    - >=
    - operator.lt()
    - <
    - operator.le()
    - <=
  • 논리 연산자 관련 모듈
    - operator.and()
    - and
    - operator.or
    ()
    - or
    - operator.not_()
    - not
    난수 모듈
  • random
    - random.randint(n, m)
    - n에서 m사이의 난수를 하나 만들기

8. 조건식

  • 조건식
    - 어떤 조건에 따라 실행이 분기되는 식
  • A if 조건식 else B: 조건식의 결과가 True면 A 실행, 아니면 B실행
  • 너무 길 때는 \를 끝에 두고 개행하면 연결 문장으로 읽힌다.

if문

  • 단일조건
if 조건식:
	실행문 # 조건식이 True일 때 수행

if~else문

  • 양자택일
if 조건식:
	실행문 # 조건식이 True일 때 수행
else:
	실행문 # 조건식이 False일 때 수행
  • 삼항연산자 사용법
    - 조건식 결과에 따른 실행만 하는 경우
    실행문1 if 조건문 else 실행문2
    - 조건식 결과를 변수에 할당하는 경우
    변수 = 변수값1 if 조건문 else 변수값2

if~elif문

  • 다자택일(다중조건)
if 조건식1:
	실행문1  # 조건식1이 True일 때 수행
elif 조건식2:
	실행문2  # 조건식2가 True일 때 수행
  • 조건식 중 하나를 만족하면 나머지 조건식은 비교X 조건식 순서가 중요
  • 조건 범위를 명시한다.

중첩 조건문

  • 조건문 안에 또 다른 조건문이 있을 수 있다
  • 3단계 이상 중첩은 코드 식별이 어려워 논리적 오류가 나기 쉽다.

9. 반복문

  • 특정 실행을 반복하는 것
  • 프로그래밍이 간결하고 유지 보수가 쉽다
  • 횟수에 의한 반복
    - 회수 지정하여 그만큼 반복 실행
  • 조건에 의한 반복
    - 조건을 지정하여 그에 만족하는 동안 반복 실행

for문

for 반복구조 적용될 변수 in 반복구조:
    실행문
  • 횟수에 의한 반복일 경우 적합한 반복문
  • range(시작, 끝, step)
    - 시작부터 끝-1까지 step만큼 증가하면서 반복
    - step이 1일 경우 생략 가능
    - 시작이 0인 경우 생략 가능

while문

while 조건문:
	실행문
  • 조건에 의한 반복문일 경우 적합한 반복문
  • 조건문이 True이면 영원히 반복하게 됨
  • 무한루프: 반복문을 빠져나올 수 없는 경우
    - 외부, 내부에 조건문 관련하여 값이 조정되는 실행문을 넣어두어야 무한반복이 안 됨
    - 실행문에 n < m, 실행문에 n += 1 등으로 for문과 비슷하게 제어
    - flag = True로 두고, 어떤 조건을 만족 시 flag = False로 하여 반복 중지

반복문 제어

  • continue
    - 실행을 생략하고 다음 반복문 실행문으로 넘어간다
  • else
    - 반복문이 종료된 후 실행되는 실행문이다
  • break
    - 반복 실행 중 break를 만나면 반복문을 빠져나온다

중첩 반복문

  • 반복문 안에 다른 반복문을 선언하는 것
  • 중첩은 2단계가 보편적이고 최대 3단계로 하는 것이 부하를 막는 좋은 방법

10. 연습문제

  • datetime 라이브러리
    - datetime.datetime.today()
    - 순간의 날짜와 시간을 불러올 수 있음
    - ~~~.month, year, day, hour, minute, second 등 사용 가능
  • \t 를 이용하면 글씨 갯수와 관계없이 동일한 여백을 가질 수 있다.
  • len(): 문자 길이를 반환한다
  • find(): 특정 문자열의 위치를 찾아 반환함
  • isdigit(): 숫자이면 True 반환, 아니라면 False 반환
  • random 라이브러리
    - random.randint(a, b): a와 b 사이의 정수 중 랜덤으로 하나 반환

느낀 점

개념 강의에도 예시 문제 풀이가 있었지만, 직접 해볼 수 있는 문제 풀이 강의를 통해 손에 익힐 수 있어 좋았다. 주에 한 번씩 추가 퀴즈를 풀어야 하는 점도 적당한 긴장감을 갖고 강의에 집중할 수 있는 요소였다.

이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.

profile
데이터 직무로 먹고 살고 싶은 사람

0개의 댓글