목록프로그래밍 언어/파이썬 (23)
나의 지식 보관소
들어가기에 앞서 이 글은 후에 복습 목적으로 저의 얄팍한 영어를 사용해 https://flask.palletsprojects.com/en/2.0.x/quickstart/ 그대로 해석해서 올린 것임을 알립니다. 커맨드라인에서 실행하는 명령어 같은 경우 원글에서는 Bash Shell, CMD, Powershell등 종류마다 친절하게 기입되어있으나 제 글에서는 Bash 명령만을 기재하였으므로 CMD나 Powershell의 명령이 필요하시면 원글에서 확인해주시길 바랍니다. 혹 잘못된 해석이나 정보를 발견하셨을 경우 댓글에서 알려주시면 따뜻한 커피 한잔 대접해드리겠습니다. Quickstart 플라스크를 시작하시길 원하시나요? 이 페이지는 플라스크 입문에 도움을 줄 것입니다. 먼저 플라스크 설치와 프로젝트 설정을 ..
Map map() 함수는 매개변수로 function과 iterable를 전달 받아 iterable의 모든 항목에 fuction을 적용한 후 그 결과를 이터레이터로 돌려줍니다. 만약 iterable 두개를 인자로 전달하면 function 또한 두개의 인자를 받아들여야합니다. 가장 짧은 iterable이 모두 소모되면 멈춥니다. def multiply(x, y): return x * y a = [1, 2, 3, 4, 5] b = [6, 7, 8, 9, 10] print(*map(multiply, a, b)) # 6 14 24 36 50 print(*map(lambda x, y: x + y, a, b)) # 7 9 11 13 15 Reduce functools 모듈안에 있는 reduce() 함수는 map() ..
Enumerate 파이썬에는 enumerate() 라는 내장함수가 존재한다. 이 함수는 매개변수로 iterable한 데이터를 받는데, 이 enumerate() 함수에 의해 반환된 iterator의 __next__() 메서드는 기본적으로 0부터 시작하는 카운트와 iterable 객체를 이터레이션해서 얻어지는 값을 포함하는 튜플을 돌려준다. seasons = ['Spring', 'Summer', 'Fall', 'Winter'] list(enumerate(seasons)) # [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] list(enumerate(seasons, start=1)) # [(1, 'Spring'), (2, 'Summer'), (3, 'F..
파이썬에서 클래스에 직접 접근할 수 있는 메서드 즉 정적메서드는 두가지로 @staticmethod와 @classmethod라는 데코레이터를 사용하여 정의한다. 정적메서드이기 때문에 인스턴스 메서드처럼 self 인자를 갖지 않는다. 또 다른 언어들과 다르게 인스턴스에서도 정적메서드에 접근이 가능하다. 우선 @staticmethod는 다음과 같이 사용한다. class MyClass: @staticmethod def add(a, b): return a+b myclass = MyClass() print(myclass.add(1,2)) @classmethod는 다음과 같이 사용한다. class MyClass: @classmethod def add(cls, a, b): return a+b myclass = MyCl..
제네레이터 제네레이터는 이터레이터를 만드는 도구이다. 제너레이터는 일반함수와 많이 닮았지만 데이터를 반환할때 return 대신 yield를 사용한다. 함수는 yield를 만나면 값을 반환하고 그 자리에서 실행을 멈춘다. 그리고 다시 next메서드가 호출되면 중단된 지점 부터 다시 실행한다. def Generator(data): for index in range(0, len(data)): yield data[index] + '!' for char in Generator('Hello'): print(char) temp = Generator('World') print(temp.__next__()) print(temp.__next__()) print(temp.__next__()) print(temp.__next..
리스트 컴프리헨션 리스트 컴프리헨션은 리스트를 사용할때 선언과 할당을 동시에 한줄로 할수있게 해주는 문법이다. 리스트 컴프리헨션의 기본적인 문법은 다음과 같다. [ for in ] 예를 들면 다음 두 표현은 같은 표현이다. # 이 표현과 size = 10 arr = [0] * size for i in range(len(arr)): arr[i] = i * i # 이 표현은 결과가 같다. size = 10 arr = [i * i for i in range(size)] 바깥을 감싸는 기호가 []라면 리스트가 만들어지고, {}라면 집합이, {}를 사용하면서 for문 앞에 key: value 쌍을 써주고 사용하는 변수를 두개로 두면 딕셔너리가 만들어진다. ()는 튜플이 아니라 제너레이터가 생성되며 튜플을 생성하려..
이터레이터 ( Iterator ) 이터레이터는 반복자라는 뜻으로 객체 지향 언어에서 배열이나 배열과 유사한 자료 구조의 내부 요소를 순회하는 객체이다. 파이썬에서는 for문을 써서 데이터를 하나씩 처리할 수 있는 시퀀스들을 Iterable Object라고 부르고 list, dict, set, str, bytes, tuple, range 등이 해당된다. for a in [2,9,3,6,7]: print(a) for b in "Hello World": print(b) 파이썬의 내장함수인 iter()는 "iter(Iterable객체)"와 같이 사용하여 해당 Iterable 객체의 Iterator를 리턴한다. Iterator 객체의 next 메서드를 사용하면 다음 요소를 가져올 수 있고 만약 next요소가 없으..
피이썬의 예외 처리는 기본적으로 아래와 같은 구성을 띤다. try: ... except [ 발생 오류 [ as 오류 메세지 변수 ] ]: ... []로 둘러싼것은 생략 가능하다는 표현이다. 만일 except:만 사용하면 발생하는 모든 오류를 except블럭에서 처리하고 오류를 지정하면 해당 오류일때만 처리한다 오류 메세지 변수는 말그대로 오류메세지를 저장한다. except는 여러개 올 수 있고, 하나의 except에서 여러 오류를 처리하고 싶다면 except(error1, error2): 처럼 괄호를 사용해 묶어서 처리하면 된다. pass 오류를 그냥 통과시킬때에는 except블럭내에 pass만 써주면 된다. pass 명령은 단순히 실행할 코드가 없음을 나타낸다. raise 오류를 일부러 발생시킬때에는 ..