학습범위: 파이썬 기초
파이썬, 파이참, 변수, 자료형(문자, 숫자), 자료형 변환, 데이터 입력, 데이터 출력, fomat()와 형식문자, 산술연산자, 복합연산자, 비교연산자, 논리연산자, operator모듈, 조건식(if문, if~else문, if~elif문, 중첩 조건문), 횟수에 의한 반복(for문), 반복 범위 설정(range()함수), 조건에 의한 반복(while문), for문과 while문 비교, 무한루프, 반복문 제어(continue), 반복문 제어(break), 중첩 반복문
에디터모드에 코드 작성
Save 후 Run module(F5) 누르면 Shell mode에 값 출력
실행은 ctrl + shift + F10
변수설정은 추후 코드 수정시 아주 용이하다. (데이터 재사용)
프로그램을 보다 효율적으로 관리할 수 있다.
컨트롤+D : 윗 코드 복붙
변수명의 첫 글자는 소문자, 클래스의 첫 글자는 대문자
자료형: 데이터를 낭비 or 모자르게 하지 않기 위해서
정수형(int), 실수형(float), 문자형(str), 논리형(bool)
문자형은 작은따옴표 또는 큰따옴표를 사용할 수 있으나,
혼용해서 사용할 수는 없다. ex) '사과" (X)
데이터를 문자로 형변환(캐스팅): str 함수 사용
iNum = 10
print(iNum)
print(type(iNum))
#형변환
iNum = str(iNum)
print(iNum)
print(type(iNum))
(1) #
(2) 3중따옴표
(3) 주석할 부분 드래그 후 ctrl + /
true = 1, false = 0
빈문자 '' -> 데이터 없음
bool로 캐스팅(=논리형으로 형변환)하면 false 나옴
var = '' -> <class 'str'>
var = bool(var) -> False <class 'bool'>
#결과: False
공백 ' ' -> 공백 데이터 있음
bool로 캐스팅(=논리형으로 형변환)하면 true 나옴
var = ' '
var = bool(var)
#결과: True
데이터가 있는 문자(빈문자X)를 논리형으로 변환(캐스팅)하면 True나옴.
var = 'False'
var = bool(var)
print(var)
#결과: True
결론: 아예 빈 문자는 False, 뭔가 데이터가 있다? True
input으로 받은 데이터는 모두 문자형(str)이므로 형변환(캐스팅)하여 사용한다.
userInputData = int(input('입력'))
print(userInputData)
자동개행을 막기 위해 end 옵션을 사용할 수 있음
print(' 3 * 5 = ' , end='' )
print( 3 * 5 )
#결과: 3 * 5 = 15
print()함수를 이용한 기본적인 데이터 출력
age = 20
print(age)
-> 20
콤마(,)를 이용한 데이터 연속 출력
name = juhee
age = 20
print( ' NAME : ' , name , ' , AGE : ' , age)
-> NAME : juhee , AGE : 20
포맷 문자열을 이용한 데이터 출력
print( f 'NAME : { name }, AGE : { age }' )
-> NAME : juhee, AGE : 20
\t: 탭(4칸 띄우기), \n: 개행
+ = * /
% 나머지만 구함
// 몫만 구함
** 거듭제곱
나눗셈의 결과는 항상 float이다.
= : '같다'는 뜻이 아니라 '할당(대입)'의 의미
result = num1 + num2 -> 오른쪽 값을 왼쪽에 할당
>, >=
<, <=
== 같다
!= 같지 않다
and, or, not
divmod과 인덱스를 활용한 몫과 나머지 구하기
num1 = 10
num2 = 3
result = divmod(num1, num2)
print('결과: {}'.format(result))
print('몫: {}'.format(result[0]))
print('나머지: {}'.format(result[1]))
n ** (1/m)
2의 3제곱근 X = X를 3번 곱하면 2가 나옴
sqrt()는 어떤수의 (2)제곱근만 구할 수 있음
ex. 2의 (2)제곱근, 3의 (2)제곱근, 4의 (2)제곱근 ...
모듈을 사용할 때는 import 해야함
+= 덧셈 연산 후 할당
*= 곱셈 연산 후 할당
//= 몫 연산 후 할당
복합 연산자 예시
num1 = num1 + 5
num1 += 5 (위에 식과 같은 뜻)
fomat(totalRainAmmount, ' , ' ) -> 1,161
비교 연산자의 연산 결과는 bool이다. (True or False)
문자 비교는 아스키코드 참고하면 된다. (A는 십진법으로 65)
ord는 문자를 십진수(정수)로 변환
print('A -> {}' .fomat(ord('A'))) 결과 A -> 65
chr은 십진수를 문자로 변환
print('65 -> {}' .fomat(chr(65))) 결과 65 -> A
문자열 자체를 비교
==, !=만 사용가능
누군가 이미 만들어 놓은 훌륭한 기능
+ -> operator.add()
- -> operator.sub()
* -> operator.mul()
/ -> operator.truediv()
% -> operator.mod()
// -> operator.floordiv()
** -> operator.pow()
if조건식:
(들여쓰기)실행문
코드블럭을 작성할 때는 반드시 들여쓰기를 해야한다.
pass키워드 -> 나중에 작성 할때 사용
if myScore >= passSccore:
pass
else:
pass
for i in range(5):
print('Hello')
#5가 반복횟수 -> 0~4
#값을 저장하는 변수 i
for i in range(10)
print('{} * {} = {}'.format(7, i, (7*i)))
#구구단 7단이 출력됨
for i in range(시작, 끝, 단계):
for i in range(1, 11, 1):
#1부터 110까지 1씩 증가
for i in range(11):
print(i)
#0부터 10까지 1씩 증가
#단계가 1인 경우 생략 가능
#시작이 0인 경우 생략 가능
endNum = 10
n = 0
while n <= endNum
print(n)
n += 1
n = 1
while n < 10:
result = 7 * n
print('{} * {} = {}'.format(7, n, result)
n += 1
당장 처리하지 않을 부분은 pass 키워드 사용하지 않으면 오류 뜸.
코드블록 만들 시 들여쓰기의 일관성이 없으면 오류가 뜸.
for문이 적합한 경우: 횟수에 의한 반복
ex) 1부터 10까지의 합을 구하는 경우
while: 조건에 의한 반복
ex) 1부터 시작해서 7의 배수의 합이 50이상인 최초의 정수 출력
반복문을 빠져나올 수 없는 경우
while문에서 조건식의 결과가 항상 True인 경우
#무한루프
n = 1
while n < 10:
print('Hello')
#9번만 실행
n = 1
while n < 10:
print('Hello')
n += 1
조건식에서 논리형 데이터를 사용해서 무한 반복을 실행할 수 있다.
flag = True
num = 0
sum = 0
while flag:
num += 1
sum += num
print('{}까지의 합은 {}입니다.'.format(num, sum))
if sum >= 10000:
flag = Flase
continue 키워드: 실행을 생략하고, 다음 반복 실행문으로 넘어감
else 키워드: 반복이 종료된 후 실행
break: 반복문 종료
반복문 안에 또다른 반복문을 선언
for i in range(1,10):
for j in rane(i):
print('*', end='')
print()
*
**
***
****
*****
******
*******
********
*********
2022. 12. 01부터 제로베이스 데이터 스쿨 시작!
오랫동안 진로고민을 하다가 기회가 되어 제로베이스 데이터 스쿨에 참여하게 되었다. 아직 많이 부족하지만, 2년 전 전공 수업에서 딥러닝 프로젝트를 진행한 경험이 있고, 1년 전에는 매주 데이터관련 보고서를 작성했던 경험이 있어서 초반에는 비교적 수월하게 공부할 수 있었다.
끝까지 잘 마무리할 수 있도록 기초부터 튼튼하게 다져나가야겠다.