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 사이의 정수 중 랜덤으로 하나 반환
느낀 점
개념 강의에도 예시 문제 풀이가 있었지만, 직접 해볼 수 있는 문제 풀이 강의를 통해 손에 익힐 수 있어 좋았다. 주에 한 번씩 추가 퀴즈를 풀어야 하는 점도 적당한 긴장감을 갖고 강의에 집중할 수 있는 요소였다.
이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.