num = int(input('숫자를 입력하시오 : '))
if num % 2 == 0:
    print('짝수')
else:
    print('홀수')

플레이데이터 인공지능 sw개발자 10기 수업이 시작되었다.

내가 이 수업을 선택한 이유는 데이터전문 회사 주관이라서, 그리고 일반 학원보다는 커리큘럼이 체계적이어 보여서다.

 

'영상처리를 위한 인공지능 sw개발자 과정' 이 정식 명칭이다.

자율주행, 영상인식, 머신러닝, ai 등을 배울 것이다.

커리큘럼은 아래와 같다.

https://playdata.io/artificial_intelligence_10th

 

인공지능 SW 개발자 10기 상세 페이지 - 인공지능, 컴퓨터비전, 머신러닝, 딥러닝, 웹 서비스

플레이데이터 인공지능 SW 개발자 양성 과정 상세 페이지

playdata.io

 

 

이번 수업에서 사용하는, 제공된 교재는

(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 : 조건 반전 (반대)

 

 

대입연산자도 있다. 이름 그대로 대입하는 연산을 하는 것이다.

 

=  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문을 짰다.

 

 

 

 

이상 금일 수업 및 과제 내용 정리를 마친다.

 

+ Recent posts