<1>

 

가장 중요한 건 영상을 처리하는 것과

머신러닝, 딥러닝을 이용해서 영상학습을 하는 것이다. 이걸 할 줄 알아야 한다.

 

요새 이것을 활용한 딥페이크도 유행을 하는데, 영상을 처리할 때 가장 중요한 것은

잡음을 제거하고 중요한 것에 대한 이미지를 추출해서 컴퓨터를 학습시키는 것이다.

 

 

학습을 시키는 것을 통해 모델을 만들고 그 모델을 통해 서비스를 제공해야 한다.

영상처리 알고리즘이 수학, 미적분으로 되어있다.

 

OpenCV 함수는 C++ 용, Python용이 있는데 이번 수업에서는 파이썬을 통해 구현하는 것을 학습할 것이다.

데이터를 영구적으로 보관하기 위해 데이터베이스에 대해 배울 것이다. (MySQL)

 

빅데이터 : 의미없는 데이터들에서 필요한 의미있는 데이터를 수집하여 분석하고 결과를 만드는 것

 

대개 그러한 데이터는 공공데이터에서 배울 수 있어서 공공데이터를 활용하는 방법을 배울 것이다.

다양한 형태의 파일 (엑셀, csv, json, xml) 을 가져다가 어플리케이션에 활용할 것이다.

파이썬 UI 프로그래밍도 배울 것이다.

또한 파이썬 GUI 프로그래밍 (tkinter) 도 배울 것이다.

OpenCV 머신러닝 라이브러리를 제공해주기때문에 그도 배울 것이다.

 

소켓통신 pc용 프로그램(tcp)도 학습이 필요하다.

 

취업의 길이 가장 넓은 부분은 웹 기반이다. (Java, Spring)

그 중에서도 몸값을 높이려면 스프링을 학습을 해두는 것이 도움이 많이 된다.

 

국가 프로젝트가 스프링 기반이다. (법원, 공공기관 등)

스프링을 할 줄 안다 = 취업의 문이 넓어진다.

 

 

<2>

 

100까지 출력하는 루프를 만들 것이다.

\t ( \탭)를 하면 역슬래쉬 모양이 된다. ( / ) 의 반대방향 모양

이것을 사용하면 프린트할 때 띄어쓰기를 할 수 있다. 즉, 키보드 상의 Space바와 같다고 보면 된다.

 

한 줄에 여러개를 출력하고 싶다면 end를 통해 \t를 사용할 수 있다.

end 파라미터는 마지막에 자동출력되는 문자를 등록할 수 있다.

dafault 값은 \n 이 들어가있다. \n은 줄바꿈문자이기 때문에, 키보드 상의 Enter와 같은 역할을 한다고 보면 된다.

 

i = 1
while i <= 100:
    print(i, end = '\t')
    if i % 10 == 0:
        print()
    i += 1

i가 100과 같거나 작아질때까지 i를 1씩 증가시키며 출력한다.

출력을 하며 빈칸을 같이 출력한다. 만약 나머지가 0이 된다면 줄바꿈을 한다.

 

결과값은 위와 같다.

 

이중 루프도 사용할 수 있다. 물론 이중 뿐만 아니라 삼중, 사중 등등 가능하다.

while문 안에 if를 넣는다든지 

while문 속 while문을 만든다든지 등등 가능하다.

이중 루프가 필요한 이유는 원하는 것을 여러번 반복하며 출력이 필요할 수 있기 때문이다.

 

 

그리고 보통 변수를 증가시키며 up-counting을 하는데 감소시키며 down-counting을 하는 것도 가능하다.

i = 3
while i > 0:
    print('#', end = '')
    i -= 1
print()

 

ㅇㅇㅇ

j = 1
while j < 3:
    i = 1
    while i < 4:
        print('#', end = '')
        i += 1
    print()
    j += 1

 

 

 

Quiz.

1. 1-100 사이의 소수를 출력

 

 

 

 

 

 

<3>

 

 

 

앞에서의 while 이 횟수에 의한 반복이었지만, 조건에 의한 반복을 하는 경우도 많다.

예를 들어 어제 만들었던 합격, 불합격 프로그램을 조건에 따라 만들 수 있다.

 

 

score = 200
while score > 100 or score < 0:
    score = int(input('score (0-100) : '))

if score >= 60:
    print('합격')
else:
    print('불합격')

위와같이 프로그램이 정상적으로 작동하는 것을 확인할 수 있다.

break는 프로그램이 무한루프에 빠지지 않고 루프가 종료될 수 있도록 하는 문구이다.

 

 

<4>

 

 

 

Quiz. 피카츄 프로그램만들기

* hp   [체력]   : 30으로 시작 (0 이면 죽음)

* exp [경험치] : 0으로 시작

* lv    [레벨]   : 1로 시작 (경험치 20마다 레벨 1 증가)

hp = 30
exp = 0
lv = 1


while True:
    menu = int(input('1.밥먹기 2. 잠자기 3. 놀기 4. 운동하기 5. 종료 : '))
    if menu == 1:
        print('밥먹는다.')
        hp += 5
    elif menu == 2:
        print('잠잔다.')
        hp += 10
    elif menu == 3:
        hp -= 5
        exp += 7
        if hp <= 0:
            print('피카츄가 죽었습니다.')
            break
        else:
            print('논다.')
        if exp >= 20:
            exp -= 20
            lv +=1
            print('레벨이 1 증가하였습니다.')
    elif menu == 4:
        print('운동한다.')
        hp -= 15
        exp += 15
    elif menu == 5:
        print('종료')
        break
print('게임종료')

 

 

죽을까봐 밥먹고 재운 다음에 체력을 증가시키고 놀게 했더니 레벨이 증가한 것을 확인할 수 있다.

 

 

그냥 놀게했더니 픽 죽어버렸슈..

 

 

 

 

 

<점심시간>

<5>

 

list : 값 여러개 담는 변수의 확장판 (메모리에 저장한다)

[ ] 형태로 저장을 한다. 

 

b = [1, 2, 3, 4]

이런식이다.

 

 

변수는 변수 하나에 값 한 개만 담을 수 있지만, 리스트는 한 번에 여러개를 담을 수 있다.

 

위의 b 리스트에서 항목을 불러오려면

print(b[0])
print(b[1])
print(b[2])
print(b[3])
print(b[4])

이런식으로 출력이 가능하다.

 

 

첫번째 항목은 1이 아니라 0이다. 메모리는 0부터 시작하기 때문에 0번째부터 시작한다고 생각하면 된다.

 

값이 여러개인 것을 할 때 보통 반복문(for문)을 사용하는데, 이런 반복문에서 list를 많이 사용한다.

위의 반복문은 다섯개이기 때문에 저렇게 쓸 수 있지만 항목들이 매우 많다면 위의 방법으로는 어렵다.

 

그런 경우에 사용할 수 있는 다른 것이 있는데

 

for i in b:
    print(i)

순서대로 b라는 목록에 있는 것에서 하나씩 i를 꺼내서 출력하는 것이다.

결과는 동일하다. 굳이 리스트 목록대로 출력하지 않고 단 두 줄로 전체를 출력할 수 있는 것이다.

 

 

리스트 뿐만 아니라 문자열도 위와 같이 할 수 있다.

for i in 'hello world':
    print(i)

이렇게 하면 결과는.. 

두구두구두구두구

이렇게 문자열에서 하나씩 가져와서 출력하는 것을 확인할 수 있다.

 

 

range는 처음와 끝을 지정해주고 범위의 리스트를 자동으로 생성해주는 것인데, for문과 함께 자주 사용된다.

주의할 점은 헷갈릴 수 있으니 주의해야한다는 점이다.

for i in range(0,5):
    print(i)

이처럼 처음(0)에서 시작해서 끝(5)을 하면 0부터 5까지 리스트에 담기는 것이 아니라

0부터 4까지 생성이 된다.

 

 

그래서 결과는 이렇게 나온다.

 

또 range함수에서는 간격을 설정해줄 수 있다.

for i in range(1, 10, 2):
    print(i)

가장 끝에오는 2가 간격이다.

1부터 10까지 2의 간격으로 리스트를 만들어서 출력하는 것이다.

결과는 1부터 2의 간격씩 출력이 된다.

 

<6>

 

반복문을 작성할 때 탭(tab), 들여쓰기를 주의해야 하는데

a = 10
if a > 10:
    print('true1')
    print('true2')
print('asdf')

 

이런식으로 작성을 하면 asdf는 if문에 속하지 않고 true1, true2만 if문에 속한다는 점을 참고해야 한다.

 

Quiz. 1부터 10까지 출력하시오.

for i in range(1, 11):
    print(i, end= ', ')
print()

Quiz. 1부터 10 사이의 짝수를 출력하시오.

 

Quiz. 1부터 100까지의 합을 구하시오.

Quiz. 구구단 3단을 출력하시오.

 

 

break 가 loop를 마치는 문구라면

continue는 계속해서 다음문장을 실행하지 않고 loop로 다시 올라가서 다음 루프를 다시 실행을 하는 문구다.

 

 

 

 

 

 

 

 

<7>

 

if 조건문에 대한 내용 복습

 

if 조건:
    실행문1
    실행문2
    실행문3
else:
    실행문

조건이 만족할 시 실행하고 싶은 문장이 많다면 이렇게 

 

 

if 조건:
    실행문
elif 조건:
    실행문
else:
    실행문

조건을 흑백논리가 아니라 여러가지 조건을 나열하여 확인하고 싶다면, elif 를 사용하는 방법이 있다.

 

 

while 조건:
    실행문

조건을 만족하는 동안 블록을 실행시키는 것

 

 

100% 이해를 해야 다음으로 넘어가는 건 안 좋은 습관이라고 하셨다.

사실 처음보는 내용은 낯설기 때문에 이해가 잘 안가는 건데, 

개념을 적용하면서 익숙해지는 부분도 있기 때문에 많이 해보면서 터득하는 것도 좋은 방법이라고 말씀하셨다.

 

 

<8>

 

 

Quiz. 1부터 100 사이의 소수 출력

Quiz. 크기 입력받아 삼각형 출력 (왼쪽이 직각)

Quiz. 크기 입력받아 삼각형 출력 (오른쪽이 직각)

Quiz. 크기 입력받아 삼각형 출력 (트리 형태)

Quiz. 크기 입력받아 마름모 출력

 

+ Recent posts