예외처리에 대해 알아봅시다. 프로그램을 실행하다 보면 의도치 않게 오류가 발생하는 경우가 많이 생깁니다. 오류가 나서 프로그램이 중단될 수도 있고 있는 파일이 없어져서 처리가 안될 수도 있습니다. 오류가 나면 프로그램이 중단되기 때문에 어떤 오류가 났는지 확인하거나 프로그램상 없어도 되거나 예외적인 상황이 발생했을 때 패스를 하는 방식으로 처리를 해줘야만 프로그램을 원활하게 실행할 수 있습니다. 이런 처리를 예외처리라고 합니다. 파이썬에서는 try;except 명령으로 할 수 있습니다. stock = ['삼성전자', '엘지전자', 'SK텔레콤'] stock.index("삼성") 리스트에서 찾고자 하는 이름이 없다면 위 같은 오류가 발생합니다. 그럼 코드 진행이 안 되겠죠? 이럴 때 try;except를 ..
클래스 작성방법 위주로 설명을 하겠습니다. 예제는 'Byte of ptyhon' 을 참고했습니다. class Person: pass p = Person() print(p) 클래스는 객체를 가지고 하나의 오브젝트를 만드는 것입니다. object로써 정의됩니다. class Person: def __init__(self, name): self.name = name def say_hi(self): print( 'Hello, my name is', self.name) p = Person('Swar') p.say_hi() def를 정하고 그 안에 say_hi 라는 함수를 정의하면 클래스 안에 있는 say_hi 함수를 위와 같이 사용할 수 있습니다. init 함수를 클래스에 거의 대부분 넣는데 그 이유는 파이썬 중에..
많이 쓰지는 않지만 어디선가 들을 수 있는 용어를 정리하겠습니다. 주석 주석은 # 뒤에 오는 문장들을 얘기합니다. print('hello world') #output 'hello world' # 으로 코드에 대한 부연설명을 하는데 주로 쓰입니다. 옆에 주석을 달아서 코드 이해를 쉽게 할 수 있고 중요한 부분이나 아직 완성되지 않은 코드, 애매한 코드에 대한 설명을 쓸수 있으니 자신이 짚고 넘어가거나 해결해야하는 문제가 있다면 옆에 써놓는 것도 코드 작성을 하는데 큰 도움이 됩니다. 이스케이프(Escape)문자 이스케이프 문자는 문자열을 작성할 때, 시작과 끝을 컴퓨터에게 알려주는 법칙이라고 생각하면 되겠습니다. 물론 우리가 스스로 바꿔도 되지만 일일히 줄바꿈을 하려면 더 많은 코드를 작성해야 합니다. 문..
Lambda 함수로 함수의 남발(?)을 줄여봅시다. Lambda 함수는 단일문으로 표현되는 익명함수입니다. 즉, 이름의 정의 없이 구현만으로 존재하는 함수를 뜻합니다. 함수를 작성하다보면 한문장으로 끝나게 되는 함수가 종종 생기는데 그런 함수를 만들지 않고 람다 함수를 이용할 수 있습니다. def square(x): return x**2 x의 제곱을 만들면 함수가 굳이 있을 필요가 없을정도로 짧습니다. 이럴 때 람다 함수를 사용합니다. square = lambda x:x**2 # 파라미터 : 결과 간단하게 할 수 있습니다. 보통 람다함수는 리스트 정렬이나 필터, 간단한 연산처리에 쓰입니다. 리스트 정렬 strings = ['abcd','edfge','tereaas','fef'] strings.sort(k..
variable scope(변수 범위)에 대해 알아보겠습니다. 전역변수와 지역변수 함수를 정의하면 그 안에 변수가 있습니다. 그 변수같은 경우 자신이 속한 코드 블록이 종료되면 소멸됩니다. 이런 특징을 갖는 변수를 지역변수(local variable)이라고 합니다. 반대로 프로그램 종료 전까지 유지되는 변수를 전역변수(global variable)라고 합니다. num1 = 10 num2 = 40 def add(num1,num2): print(num1,num2) add(30,50) print(num1,num2) 먼저 num1 과 num2 를 각각 10과 40으로 정의했는데 함수 add 안에 num1,num2 를 변수로 선언하고 사용해보겠습니다. 즉, num1= 10, num2 = 40 은 전역변수, add..
함수 만드는 방법을 설명하겠습니다. 먼저 함수는 입력(input) 값에 대해 출력(output)를 하는 역할을 합니다. 수학에서의 함수과 비슷합니다. 한개 값을 넣으면 그 값에 따라 값이 나옵니다. 예를 들면, f(x) =2x 라는 함수가 있을때, x에 1을 넣으면 2가 나옵니다. 파이썬에서 함수도 이런 역할을 합니다. 내장함수(built-in function) 파이썬 내부에 이미 정의되어 있는 함수가 있는데 이 함수를 내장함수라고 합니다. 많이 쓰는것 3개만 살펴보고 넘어가겠습니다. range 함수는 앞 포스팅에서도 많이 썼는데 리스트를 생성하는 함수입니다. 범위는 구간으로 표현하면 [start,end) 가 되겠습니다. 자세한건 앞 포스팅을 봐주시기 바랍니다. ex) range(0,10) = [0,1,..
가끔 파이썬을 실행하려고 하면 python37.dll 이 없어서 실행이 안 된다는 에러가 뜹니다. 어떤 이유인지 모르지만 파일손상이나 제거가 되서 생기는 현상이라서 다시 파이썬을 다시 깔면 정상작동합니다. 그런데 그건 너무 번거로우니 python37.dll 을 백업하고 있던지 해서 system 폴더에 넣으면 다시 파이썬이 실행됩니다. 안되면 다른 문제도 겹치는 거니 다시 원인을 찾고 해결을 하던지 새로 깔던지 결정해야겠지만요... 이 파일은 파이썬 3.7.6 버전을 기준으로 된 백업파일입니다. 아니면 다른 걸 찾아보시는 걸 추천합니다. 이 파일을 어떻게 하느냐 하면 두 폴더에 넣으면 됩니다. C:\windows\system32\ (32bit) C:\windows\Syswow64\ (64bit) 위 폴더에..
for 반복문의 특징으로 말하면 범위를 정하고 그 범위 내에서 하나씩 순회하는 방식입니다. 범위는 리스트, 문자열 등등으로 순회 가능한 객체면 됩니다. for는 while과 같이 반복을 시행하지만 범위를 정하고 반복을 시작하기 때문에 무한루프에 빠지지 않습니다. for에 대해 천천히 알아보도록 합시다. for 작성방법 for는 in을 사용해서 작성합니다. in 뒤에는 리스트, 문자열, 딕셔너리 같이 순회가 가능한 객체가 들어갑니다. 또는, range 함수가 들어갈 수도 있습니다. 리스트 a = [1,2,3,4,5] for x in a: print(x*2) 여기서 x 는 변수를 얘기합니다. 수학에서 방정식의 x와 같은 의미로 받아들이시면 될 것 같습니다. x는 정해져있는 값이 아닌 데다가 x 말고 다른 걸..
코딩을 한다고 하면 반복문을 하지 않고는 할 수 없을 정도로 중요합니다. 사실, 반복문(loop)을 쓰는 이유는 자동화를 위해서라고 해도 과언이 아닙니다. 우리가 해도 되는 것이지만 시간적인 문제와 끊임없는 반복 노동을 하지 않을 수 있다면 그것만큼 좋은 게 없습니다. 우리의 체력을 아끼고 시간을 아끼면서 일을 이루려면 컴퓨터가 알아서 계산해서 알아서 하는 게 제일 좋습니다. 파이썬에서는 while 과 for 문으로 반복문을 생성합니다. 두 가지만 알면 모든 반복문을 다 쓸 수 있습니다. while 은 특정 조건을 만족하는 경우 수행하고 for는 우리가 정한 범위 내에서 순회하면서 하나씩 수행하는 방식입니다. 주의할 점은 while을 쓴다면 범위가 없으므로 반복을 멈추게 하는 장치가 필요합니다. 그렇지 ..
앞서 보았던 리스트나 튜플, 딕셔너리, 문자열 등등은 파이썬을 수행하기 위한 기본 재료들이었다면 조건문과 반복문은 이 재료들을 사용해서 괜찮은 완성품을 만들어내는 방법이라고 여기면 되겠습니다. 그래서 조건문과 반복문만 할 줄 알아도 대부분의 코딩은 할 수 있습니다. 조건문에 대해서 알아보겠습니다. 조건문은 특정 조건을 만족하면 작업을 수행하려고 할 때 사용합니다. 그래서 모든 조건은 boolean으로 표현됩니다. 제가 boolean으로 작성하지 않아도 조건문 안에서는 boolean으로 받아들입니다. 즉, boolean 이 아님에도 boolean으로 표현되는 경우가 있습니다. 자세한 건 예를 보면서 살펴보겠습니다. IF 사용법 조건문은 if 로 작성됩니다. 그냥 쓰는 게 아니고 몇 가지 규칙이 있습니다. ..
파이썬에서 자주 사용되는 자료구조로 리스트, 튜플, 딕셔너리(dictionary)가 있습니다. dictionary는 '사전'이라는 뜻을 가지고 있습니다. 우리가 사전을 사용하는 이유는 단어의 뜻을 모를 때 사용하는데 사전에서 찾고자 하는 단어의 뜻을 찾기 위해서 단어로 사전에서 찾고 뜻을 알아냅니다. 즉, 단어와 뜻이 쌍으로 정리했기 때문에 우리가 단어만 가지고 뜻을 알아낼 수 있는 것입니다. 이와 유사하게 파이썬의 딕셔너리도 키(key)와 값(value)이라는 것을 쌍으로 저장해서 저장된 값을 찾을 수 있게 만든 구조입니다. 리스트는 [] 를 사용했고 튜플은 ()을 사용했습니다. 딕셔너리는 {}를 사용합니다. 딕셔너리는 리스트와 튜플과는 확실히 다릅니다. 예를 들면, 만약 주식 종목의 현재가를 저장하는..
리스트와 튜플은 복수개의 값을 담는 데이터 구조를 말합니다. 실생활에서 쓰는 명단과 같은 의미입니다. 즉, 전학생 명단, 출석 명단 등등 한 주제 안에 모아진 것들을 의미합니다. 리스트는 생성된 후에 값 변경이 가능하고 튜플은 값 변경이 불가능합니다. 그런 이유로 파이썬에서는 리스트를 정말 많이 씁니다. 무언가 데이터를 가져오면 대개 리스트 형식으로 가져오거나 리스트로 만들어서 알고리즘을 만드는 것이 일반적입니다. 반면에 튜플은 정말 변하면 안 되는 리스트를 설정할 때 씁니다. 그럼 튜플을 다루지 못하나 걱정하실 수도 있는데 다행히도 튜플을 리스트로 변경해서 쓸 수 있으니 데이터 다루는 데에는 큰 문제가 없을 겁니다. 그래서 잘 쓰면 알고리즘을 쉽게 만들 수 있습니다. 이번 포스팅에서는 리스트의 대한 개..
알면 편하지만 모르면 코드 진행이 안되는 문자열에 대해 살펴보고자 합니다. 문자열은 복수개의 문자를 순서대로 나열한 것인데 여기서 순서가 있다는 것이 중요합니다. 아무 생각없이 문자를 나열해도 python 에서는 하나의 순열로 생각한다는 것입니다. 그런 인식 차이로 저희가 개발을 하면서 편한 부분이 많습니다. 어떤 부분이 편한지 문자열을 직접 보면서 느끼셨으면 좋겠습니다. 문자열 쓰기 문자열을 쓰려면 '' 또는 "" 사이에 문자를 넣으면 됩니다. 숫자도 마찬가지로 저 따옴표 사이에 가면 문자열로 인식하게 됩니다. 이미 따옴표 안에 들어간다면 뭐든 문자열로 인식합니다. "" 조차도 가능합니다. 위의 예에서 a 같은 경우 작은 따옴표 안에 큰 따옴표를 넣어서 출력을 했더니 큰 따옴표가 그대로 나왔습니다. b..
python 의 변수에 대해 설명하겠습니다. 변수란 말 그대로 변하는 값을 의미합니다. python에서는 제가 설정하는대로 변하기 지정값으로 여기시면 되겠습니다. = 대입 연산자, 비교 연산자python 에서 대입연산자인 '=' 은 수학에서 같다 라는 의미가 아닙니다.'3=9' 을 수학에서 보면 우리는 틀렸다라고 여기지만 python 에서는 '3를 9로 여기겠다' 라는 의미로 받아들입니다.예가 그렇다는 것이지 위의 예가 정말로 되면 큰일납니다. 만약 python 에서 '3=9' 가 허용이 되면 모든 숫자를 다 바꾸게 되어 개발할 때 굉장히 복잡하고 힘이 들것이 눈에 선합니다. 그래서 python에서는 변수 이름을 숫자로 시작하면 아예 대입연산자가 적용되지 않게 설계되어 있습니다. 그럼 변수 이름 규칙이 ..
Jupyter notebook에 대해 알아볼까 합니다. Jupyter notebook 은 웹브라이저에서 파이썬 코드를 작성하고 실행하는 개발도구로 주로 계산하거나 python 연습할 때 많이 씁니다. 다른 파이썬 인터프리터와는 다르게 note 안에 cell 형식으로 되어 있어서 cell에 채운 코드만큼만 실행할 수 있어서 편합니다. 물론 spyder에서도 드래그해서 원하는 만큼만 실행을 할 수 있는데 내장이 안 돼서 할 때마다 처음부터 다시 시작해야 하지만 Jupyter에서는 한번 실행을 시켜놓으면 따로 실행을 취소하거나 새로 시작하지 않는 한 계속 실행상황을 유지하면서 할 수 있습니다. Jupyter를 켜시면 도스 창이 하나 뜨고선 웹브라우저에서 실행이 됩니다. 처음 실행하면 보통 C:\ 의 모습이 보..