목록Everything I Wrote (29)
Bunny Code

여태까지 파이썬을 공부하면서 여러 오류들을 보셨을 겁니다. 오류는 크게 '구문 오류' 와 '예외 오류(런타임 오류)' 로 나뉘는데 두 가지가 무엇인지 먼저 알아볼게요. 1) 구문 오류 = 프로그램 자체가 실행되지 않는 오류 예시 : print("구문 오류") print("프로그램이 실행 자체가 안되는 구만" 위와 같이 일부러 두 번째 print 구문의 괄호를 작성하지 않으면 아래와 같은 오류가 발생합니다. 저기 보이는 SyntaxError 라고 불리는 것은 '구문 오류'를 의미합니다. 첫 번째 작성된 올바른 print 구문도 실행되지 않은 것을 확인할 수 있습니다. 그렇다면 '예외 오류' 는 어떨까요? 2) 예외 오류(런타임 오류) = 프로그램이 일단 실행된 다음, 실행 중에 발생하는 오류 예시 : pr..

이번 포스팅에서는 파일 처리와 관련되는 함수들을 살펴볼게요! (파일 = '텍스트 파일' + '바이러니 파일' 로 나뉘는데, 일단 '텍스트 파일' 관련된 내용만 볼게요.) 1) 첫번째로 파일 열고 닫기 # 파일 열기 = open(, ) # 파일 닫기 .close() 이 때, 파열 열기 모드는 다음과 같습니다. 파일 열기 모드 설명 w write 모드 (새로 쓰기 모드) a append 모드 (뒤에 이어서 쓰기 모드) r read 모드 (읽기 모드) 예시 : 위의 코드가 입력된 경로, 파일에 "basic.txt" 파일이 생긴 것을 볼 수 있습니다. 클릭해서 열어 보면, 아래와 같이 텍스트가 입력된 텍스트 파일인 것을 확인할 수 있습니다. 주의사항 : 파일을 open() 함수로 열면 꼭 close() 함수로 ..

1. Perceptron 이란? 퍼센트론(perceptron) = 인공 신경망을 구성하는 하나의 작은 단위? 라고 보는 것이 이해하기 쉬울 것 같습니다. 생물을 전공하지 않으신 분들도 '뉴런' 이라는 것을 아실겁니다. 여러 신호를 입력받아 그 신호들을 전달해주는 신경계의 '뉴런' 과 역할이 비슷합니다. 인공 신경망의 '퍼셉트론'도 여러 신호를 입력받고 신호의 중요도에 따라 가중치를 곱해주어 나온 값으로 여러 activation function 을 만들어 그 값을 가지고 다음 단계에 전달해줍니다. 그림으로 표현하면 아래와 같은데, 파란 원안의 값들이 inputs 이고, 오른쪽에 보이는 step function이 activation function 의 한 종류입니다! 입력 값에 가중치 w 를 각각 곱해주어 ..

지금까지 함수를 선언할 때, 빈 괄호를 사용하거나 일반 혹은 가변 매개변수를 사용했는데 이번에는 함수의 매개변수로 함수를 전달해보겠습니다! (수학에 비유하자면 약간 합성함수 느낌..?? 으로 이해했어요.) 위에서 확인할 수 있듯이, call_10times 라는 함수에 print_true 라는 함수를 전달해, 함수와 함수의 조합을 확인할 수 있었습니다. 위의 선언한 call_10times 처럼 함수를 매개변수로 전달하는 대표적인 표준 함수로 map() 함수와 filter() 함수가 있습니다. 먼저, map() 함수는 리스트의 요소를 함수에 넣고 리턴된 값으로 새로운 리스트를 구성해주는 함수이고 map(, ) filter() 함수는 리스트의 요소를 함수에 넣고 리턴된 값이 True 인 것으로 새로운 리스트를..

튜플은 리스트와 비슷한 자료형인데, 한 번 결정된 요소를 바꿀 수 없다는 점이 리스트와 다릅니다. +) 튜플은 괄호를 생략해도 튜플로 인식할 수 있는 경우, 괄호 생략 가능 tuple = (, , ... , ) (리스트의 괄호 형태는 [], 딕셔너리의 괄호 형태는 {}) 위의 사진에서 볼 수 있듯이, 튜플의 요소를 변경하려고 할 경우 오류가 발생하는 것을 확인할 수 있습니다. 여기서 또 주의해야할 점이, 리스트는 요소의 개수에 상관없이 항상 선언하는 방법이 똑같지만, 튜플의 경우 요소를 하나만 가질 경우 특별한 방법이 필요합니다. tuple = (, ) (첫 번째 요소 뒤에 의미 없는 쉼표를 넣어줘야 함.) 튜플을 사용해 값을 할당하는 것도 간단합니다. 튜플을 사용하면 여러 개의 값을 리턴하고 할당할 수..

저번 포스팅에서 재귀 함수는 계산을 반복하기 때문에 문제점이 많다고 했습니다. 이번 포스팅에서는 이로 인해 생기는 문제점인 메모화 기술을 알아보겠습니다. 먼저, 재귀 함수도 복습할 겸, 생기는 문제점을 실감하기 위해 재귀 함수를 이용해 피보나치 수열을 작성하는 코드를 살펴볼게요! 위의 코드 처럼 입력하면 굉장히 잘 짜여진 코드라고 생각할 수 있지만 저 코드로 피보나치 수열의 40 번째 항을 계산해보세요. 코드가 바로 40번째 항을 출력해주나요?? 아닙니다!! (컴퓨터에 따라 다르겠지만 저는 한 3~4초정도 걸렸어요.) 더 높은 항을 구하려고 할 수록 걸리는 시간은 기하급수적으로 늘어나게 됩니다.(아까 언급하기도 했지만 계산을 많이 반복하기 때문) 그렇다면 코드를 작성해서, 얼마나 반복하는지도 알아보겠습니..

이번 포스팅에서는 return 이라는 키워드에 대해 다뤄보겠습니다. return 이 의미하는 바는 '함수를 실행했던 위치로 돌아가라', '함수를 여기서 끝내라' 라는 뜻입니다. (매개변수 포스팅 부터 갑자기 어려워지는 듯한 느낌이 심한데 저도 어려워서 이해하느라 힘들었어요..ㅠㅠ) 위의 입력 화면을 보시면 return 이라는 키워드가 아래의 print("버즈밴드는 못생겼어") 의 출력을 막아줍니다. print("버즈밴드는 멋있어") 까지만 출력해주고 함수를 끝내줍니다. 만약 return 뒤에 자료를 입력하면, 자료를 가지고 return 하게 됩니다. return 뒤에 써 준 100000 라는 숫자를 가지고 return 한 것을 확인할 수 있습니다. 일반적으로 함수를 만들 때 값을 만들어 리턴하는 형태로 ..

print(), len() 등 등 여태 기본함수들을 배웠는데 이번에는 원하는 함수를 지정할 수 있는 def 에 대해 배워볼게요! def () : 위의 코드 처럼 입력을 해주면 을 실행시켜주는 을 가진 함수를 정해줄 수 있습니다. 예를 들어, 입력하는 것이 무엇이든 세 배를 만들어주는 함수를 만들어주고 싶은 경우 input 함수와 def 를 이용하면 됩니다. 이 때 주의해야할 점은 input 함수로 입력하는 것이 숫자여도 문자열로 인식하기 때문에 곱셈이 되는 것이 아니라 3번 반복해줍니다. 곱셈을 원하면 int() 함수를 사용해 숫자의 자료형으로 만들어주면 됩니다. 수학을 배울 때 함수 단원에서 매개변수에 대해 배운것을 기억하시나요? 마찬가지로 파이썬에서도 매개변수를 이용해 함수를 만들어 줄 수도 있습니다..