num = int(input('숫자를 입력하시오 : '))
if num % 2 == 0:
print('짝수')
else:
print('홀수')
플레이데이터 인공지능 sw개발자 10기 수업이 시작되었다.
내가 이 수업을 선택한 이유는 데이터전문 회사 주관이라서, 그리고 일반 학원보다는 커리큘럼이 체계적이어 보여서다.
'영상처리를 위한 인공지능 sw개발자 과정' 이 정식 명칭이다.
자율주행, 영상인식, 머신러닝, ai 등을 배울 것이다.
커리큘럼은 아래와 같다.
https://playdata.io/artificial_intelligence_10th
이번 수업에서 사용하는, 제공된 교재는
(1) 이것이 MySQL이다 (개정판)
(2) 데이터분석을 위한 파이썬 철저입문
이렇게 두권이다.
앞으로 수업 내용을 여기에 정리해보려 한다.
<1>
계산 : CPU ; 사용할 수 있는 언어는 어셈블리어/이진수(binary) 뿐
기억 : 메모리 (RAM)
프로그램 : 관련된 작업을 위한 명령어의 집합
프로그램을 짠다 = 기계한테 명령을 내린다. 다만, 명령어를 순서에 맞게 입력해야 한다.
1) 소스를 작성 : 사람의 언어이지만 파이썬 문법에 맞게 작문한다. 컴퓨터에게 편지를 쓰듯이 적어야 한다.
2) 컴파일 : 번역한다. 에러가 뜨면 틀린 부분을 알려주기 때문에 그 부분을 수정하면 된다.
3) 프로그램 실행 : 어떠한 결과값이 나오거나 프로그램이 실행된다.
프로그래밍은 눈으로 하는 공부가 아니라 몸으로 하는 공부이기 때문에 많이 작문을 해봐야 실력이 증가한다.
이 수업에서는 python을 사용할 것이다.
IDLE 를 실행한다.
언어는 두가지 방식의 언어가 있는데 파이썬은 interpreter 방식 언어다. (java, c++ 도 마찬가지)
이는 컴파일한 결과를 저장하지 않고 바로바로 실행하는 방식이다.
Python에서 파일을 저장하고 Run Module 을 하면 컴파일과 실행이 동시에 이뤄진다.
만약 Run Module에서 에러가 있다면 Invalid Syntax 라고 뜨며 실행이 되지 않는다.
<2>
PyCharm(파이참)에서 하려면 파이썬을 굳이 설치하지 않아도 된다.
파이참 툴에 기본적으로 파이썬이 들어있기 때문이다.
변수 : 값을 담는 그릇. 변수는 값이 바뀔 수 있다.
파이썬은 변수를 미리 선언하지 않고 바로 사용한다.
변수 이름 규칙 : 영어(대소문자 구분), 한글, 첫글자 제외하고 숫자포함 변수명도 가능, 특수문자는 _ 만 가능
변수 이름은 어떤 값을 가지고 있는지 예측할 수 있는 이름으로 짓는 게 가장 좋다.
컴퓨터에서 = 은 같다가 아닌 '대입'의 의미 ; 우측의 값을 좌측에 대입한다.
메모리를 할당하기 때문에 메모리에 저장이 되는데, 메모리값은 사실 주소값이다.
다만, 일일이 주소값을 기억할 수 없기 때문에 이름을 지정하는 것이다. 그 이름이 바로 변수명이다.
변수이름 = 값
함수는 기능을 사용하는 것이다. ex) print() : 콘솔에 출력기능
print 함수는 출력하고 싶은 것을 괄호 안에 넣으면 된다.
변수에 ' ' 형태로 넣으면 그것은 문자열로 인식이 된다.
<3>
연산에 필요한 값을 담기 위함.
값의 종류가 많다.
문자열(텍스트), 숫자(정수/실수), boolean(참/거짓)
str : 문자열타입 ('asd, "asdf")
int : 정수타입 (12, 3535)
float : 실수타입 (12.345)
bool : boolean 타입 (True, False)
앞에다 샵 (#) 을 붙이면 주석을 달 수 있다.
주석으로 프로그램에 대한 설명을 작성할 수 있다. 주석은 프로그램 실행에 전혀 영향을 주지 않음.
여러 줄을 주석처리 하고 싶다면 작은 따옴표 3개로 할 수 있다. (''')
type 함수는 괄호 안에 넣은 값의 타입을 반환한다.
변수의 타입은 할당한 값의 타입을 따라간다.
연산자라는 것이 있다. 계산기와 비슷하다.
+ : 덧셈
- : 뺼셈
* : 곱셈
/ : 나눗셈. 나눈 몫을 소숫점까지 반환
// : 나눗셈. 나눈 몫을 정수로 반환
% : 나눗셈. 나눈 나머지 값을 반환
** : 거듭제곱
연산작업은 우선순위 순서대로 진행을 한다.
대입연산자는 우선순위가 제일 낮다. ex) c = a+b
여러가지 연산자를 실행해봤다.
a = 10
b = 20
c = 0
c = a + b
print(a, '+', b, '=', c)
c = a - b
print(a, '-', b, '=', c)
c = a * b
print(a, '*', b, '=', c)
c = a / b
print(a, '*', b, '=', c)
c = a // b
print(a, '*', b, '=', c)
c = 2 ** 3
print('2**3=', c)
c = 5 % 2
print('5%2=', c)
결과는 이러하다.
print() : 출력
input() : 키보드 입력을 받는 것
name = input('이름을 입력하시오')
print('name: ', name)
age = input('나이를 입력하시오')
print('age: ', age)
이렇게 하면 사용자에게 이름을 입력받고, 그 이름이 출력된다.
그 다음 사용자에게 나이를 입력받고, 그 나이가 출력된다.
만약에 나이를 입력받고 10년뒤 나이를 출력하고 싶다고 하면
age = input('나이를 입력하시오')
print('10년 뒤 age: ', age+10)
으로 입력을 하면 에러가 뜬다.
왜냐하면 age 는 문자열이기 때문이다.
age를 숫자형으로 바꿔줘야 연산을 할 수 있는데, 이럴 때 필요한 것이 캐스팅함수이다.
age = input('나이를 입력하시오')
print('10년 뒤 age: ', int(age)+10)
age를 int() 안에 넣어 실행하면 정상적으로 실행되는 것을 확인할 수 있다.
Quiz. 숫자 2개를 입력받아 +, -, *, / 연산의 결과를 출력하시오.
과제를 내주셨고
구글 클래스라는 서비스를 통해 과제를 제출하였다.
비대면 시대에 맞춰 발빠르게 움직이는 갓구글 대단하다!
a = input('숫자를 입력하시오 : ')
b = input('숫자를 입력하시오 : ')
print('a + b : ',int(a)+int(b))
print('a - b : ',int(a)-int(b))
print('a * b : ',int(a)/int(b))
print('a / b : ',int(a)*int(b))
위와 같이 제출했는데
일일이 캐스팅 연산자 int()를 넣어주는 것보다 효율적으로 하는 방법이 있다고 알려주셨다.
a = int(input('숫자를 입력하시오 : '))
b = int(input('숫자를 입력하시오 : '))
print('a + b : ', a+b)
print('a - b : ', a-b)
print('a * b : ', a*b)
print('a / b : ', a/b)
이렇게 처음부터 캐스팅연산자를 통해 변환한 값을 할당해주면
훨씬 효율적으로 할 수 있다.
결과는 아래와 같다.
비교연산자도 있다.
> ,< 등 연산자 기호를 기준으로 크기를 측정하는 연산자가 있다.
>=, <= :같거나 크다(작다)
== : 같다.
!= : 다르다.
논리연산자도 있다.
조건을 연결하여 연산하는 것인데
(조건1) AND (조건 2) : 두 조건이 모두 참이어야 True, 하나라도 거짓이면 결과는 False.
(조건1) OR (조건 2) : 두 조건 중 한 개라도 참이면 True
not : 조건 반전 (반대)
대입연산자도 있다. 이름 그대로 대입하는 연산을 하는 것이다.
a = b : a에 b를 넣는다.
a += b : a에 a+b를 넣는다.
a -= b : a에 a-b를 넣는다.
a *= b : a에 a*b를 넣는다.
a /= b : a에 a/b를 넣는다.
a %= b : a에 a%를 넣는다.
<점심시간>
<4>
제어문 : 프로그램의 흐름을 제어하는 문장으로, 프로그램의 가장 기초적이고 기본적인 부분
프로그램의 뼈대라고 생각하면 된다.
제어문은 크게 조건문과 반복문으로 나뉜다.
● 조건문 : 조건에 따라 실행유무가 달라진다.
'만약에 조건이 참이라면' 의 뜻으로 if문을 사용할 수 있다.
if 조건 :
111
222
333
이런 형태로 작성을 하는데, 들여쓰기를 무조건 해야 한다.
333은 if문과 관계가 없고, 111, 222는 조건을 만족할 때 실행이 된다.
만약 조건을 만족하지 않으면 실행하지 않고 건너뛴다.
a = 10
b = 13
if a > b:
print('a는 b보다 크다')
if a == b:
print('a는 b와 같다')
if a < b:
print('a는 b보다 작다')
이런식으로 실행을 하면 조건을 만족하는 부분인
a<b 의 조건문에 대한 부분만 실행되기 때문에 결과는 'a는 b보다 작다'가 출력된다.
else문은 if 조건이 만족되지 않으면 실행되는 구문이다.
그렇기 때문에 따로 else 뒤에 조건을 달아줄 필요가 없다.
점수를 입력받아 합격/불합격 체크문을 만들어보도록 하겠다.
score = int(input('점수: '))
if score >= 60:
print('합격')
else:
print('불합격')
60점 이상이면 합격, 60점 미만이면 불합격이 출력된다.
3개 이상의 조건이 있으면 if - elif - elif - else 처럼 사용할 수 있다.
다양한 조건이 있을 때, else 대신에 계속 elif로 사용이 되다가 마지막에 else를 사용하면 된다.
짝수, 홀수 체크문을 만들어보도록 하겠다.
num = int(input('숫자를 입력하시오 : '))
if num % 2 == 0:
print('짝수')
else:
print('홀수')
숫자를 입력받아 2로 나눈 나머지가 0일 경우에 짝수, 아닐 경우 홀수가 출력된다.
성인 여성 인증문을 만들어보도록 하겠다.
age = int(input('나이 : '))
gender = input('성별(여:f, 남:m): ')
if age >= 20:
if gender == 'f':
print('입장')
else:
print('여성만 입장 가능')
else:
print('성인만 입장 가능')
조건이 두 가지가 있다.
이런 경우에 위에서 배운 AND 연산자로 묶을 수 있다.
if age >= 20 and gender == 'f':
print('입장')
else:
print('성인 여성만 가능')
이렇게 표현하면 훨씬 간결하고 효율적으로 표현할 수 있다.
Quiz. 점수를(0-100) 입력받아서 학점 출력하시오.
A: 90-100
B: 80-89
C: 70-79
D: 60-69
F: 60 미만
grade = int(input('점수를 입력하시오 : '))
if grade > 100 or grade <0:
print('잘못된 점수입니다.')
else:
if 90 <= grade <= 100:
print('A')
elif 80 <= grade < 90:
print('B')
elif 70 <= grade < 80:
print('C')
elif 60 <= grade < 70:
print('D')
else:
print('F')
점수가 100점을 초과하거나 0점 미만일 경우에는 에러 메시지가 뜨도록 설정하였고,
그 외에 점수별로 구분을 해두었다.
● 반복문 : 특정 동작을 반복하는 문장이다.
while문 : 조건을 만족할 때까지 조건문이 계속 실행되는 것. 불만족되는 순간 while문 밖으로 나옴.
while 조건 :
실행문
형태로 작성하면 된다.
a = 5
while a > 0:
print(a)
a -= 1
print('while밖')
이렇게 되면 5부터 순차적으로 1씩 내려가다가 loop를 빠져나온다.
Quiz.
1. 1-100 합 구하기
a = 1
b = 0
while a < 101:
b += a
a += 1
print(b)
a가 101보다 작아질때까지
b에 b+a를 넣는다.
a는 1씩 증가한다.
2. 1-100 짝수만 출력하기
a = 1
while a < 101:
a += 1
if(a % 2 == 0):
print(a)
a가 101보다 작을때까지
1씩 증가시킨다.
그리고 만약 2로 나눈 결과가 0이면(짝수이면) 그것을 출력한다.
else는 홀수의 경우라 따로 적지 않았다.
3. 구구단 단수를 입력받아 한 단 출력하기
num = int(input('구구단 단수를 입력하시오 : '))
a = 1
while a < 10:
print(num, '*' ,a, '=', num * a)
a += 1
단수를 입력받아 1단부터 9단까지 출력한다.
출력 이후에 단수를 하나씩 증가시킨다.
4. 약수 구하기 (약수 구할 숫자 입력 받기)
num = int(input('약수 구할 숫자를 입력하시오 : '))
a = 1
while a <= num:
if(num % a == 0):
print(a)
a += 1
숫자를 입력 받고, 약수 1부터 시작하여
그 약수가 입력받은 숫자와 동일해질때까지 나눗셈을 하여
나머지가 0인 경우에만 출력하는 while문을 짰다.
이상 금일 수업 및 과제 내용 정리를 마친다.
'개발' 카테고리의 다른 글
[Android] 안드로이드란? 안드로이드 스튜디오 개발 도구 설치하기 (0) | 2022.01.13 |
---|---|
영상처리를 위한 인공지능 sw개발자 과정 10기 수업 4일차 (0) | 2021.06.03 |
영상처리를 위한 인공지능 sw개발자 과정 10기 수업 3일차 (0) | 2021.06.02 |
영상처리를 위한 인공지능 sw개발자 과정 10기 수업 2일차 (0) | 2021.06.01 |
R studio 설치 , 라이브러리 설치 방법 (0) | 2020.12.15 |