공부하며 성장하기/파이썬 Python
![List comprehension보다 for문이 빠른 경우](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUnKrZ%2FbtsklmP0Kwv%2FzDtUqqbKlu24iMeh1AmCl1%2Fimg.png)
List comprehension보다 for문이 빠른 경우
보통은 list comprehension이 반복문보다 처리 속도가 빠르다고 알고 있다. 그런데 그렇지 않은 경우도 존재한다. 다음과 같은 경우를 예로 살펴 보자. 어떤 pattern과 text를 입력 받아, 해당 pattern이 text에 포함되어 있는지 검사하는 코드이다. 결과로 pattern이 시작되는 text의 index를 반환한다. def read_input(): return (input().rstrip(), input().rstrip()) def print_occurrences(output): print(' '.join(map(str, output))) def get_occurrences(pattern, text): return [ i for i in range(len(text) - len(pa..
![[파이썬 코딩의 기술] 클래스 합성으로 복잡한 내포 관계 정리하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccKZnN%2FbtrGgJEv2OK%2Fv8M5bbUEUb1151Qjc6gD6K%2Fimg.jpg)
[파이썬 코딩의 기술] 클래스 합성으로 복잡한 내포 관계 정리하기
파이썬 내장 딕셔너리 타입은 객체를 동적으로 사용할 수 있도록 해줍니다. 이때 동적(Dynamic)이라는 말은 어떤 값이 들어올지 미리 알 수 없는 상태에서, 값이 들어오면 그때 그때 능동적으로 처리하는 것을 뜻합니다. 예를 들어 다음과 같은 코드가 있습니다. 학생들의 점수를 기록해야 하는데, 학생의 이름은 미리 알 수 없는 상황입니다. 이럴 때는 각 학생별로 미리 정의한 attribute를 사용하는 대신 딕셔너리에 이름을 저장하는 클래스를 정의할 수 있습니다. class SimpleGradebook: def __init__(self): self._grades = {} def add_student(self, name): self._grades[name] = [] def report_grade(self, ..
![🏆 2021 노마드 어워즈 후기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3QQpz%2FbtrpcQm03Wb%2FpgbqB9psH4NnYZn8hS0V90%2Fimg.png)
🏆 2021 노마드 어워즈 후기
안녕하세요, 니ㄲ.. 조이입니다! 🙋♀ 이번 글에서는 얼마 전 진행된 '2021 노마드 어워즈 NOMAD AWARDS' 참여 및 수상 후기를 담아 보았습니다. 노마드 어워즈? 노마드 코더? 그게 뭔가요? 최근 코딩에 대한 관심이 뜨거워지면서 비전공자도 쉽고 재미있게 입문할 수 있도록 도와주는 다양한 콘텐츠와 강의가 매우 많아졌죠. 저는 이공계열 전공이어서 학창 시절에 기본적인 코딩을 배우기는 했지만, 당시에는 이론 위주여서 크게 흥미를 느끼지 못했어요. 무엇보다 특출 나게 잘하는 친구들과 스스로를 비교하면서 오히려 '코딩은 천재들만 하는 거다' 같은 불필요한 오해와 편견을 가지게 되었습니다. 그래서 본격적으로 코딩을 해봐야겠다고 마음먹었을 때에도 무척 막막함을 느꼈었습니다. 그런데 이런 한계를 깰 수 ..
![[파이썬 코딩의 기술] 03/ 협업의 확장](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPB8Fi%2Fbtq8Oj6a6CD%2FeH0tD56alEpfjS9ubkk6OK%2Fimg.png)
[파이썬 코딩의 기술] 03/ 협업의 확장
BETTER WAY 85/ 패키지를 사용해 모듈을 체계화하고 안정적인 API를 제공하라 프로그램 코드베이스 크기가 늘어나면 코드 구조를 체계화하게 된다. 특히 모듈이 너무 많을 경우에는 다른 계층을 추가로 도입하게 되는데, 이를 위해 파이썬은 패키지package 를 제공한다. 이 패키지는 다른 모듈들을 포함하는 모듈이라고 할 수 있다. 패키지를 정의하기 위해서는 __init__.py 라는 이름의 빈 파일을 디렉터리에 추가해야 한다. (python3.3부터는 이 파일이 없어도 패키지로 인식되지만, 버전 호환을 위해 추가하는 것이 좋다.) 이미 __init__.py가 있는 디렉터리가 있다면, 다른 파이썬 파일은 이를 상대적인 경로를 통해 import하면 된다. 패키지는 주로 두 가지 기능을 한다. 1. 이름..
![[파이썬 코딩의 기술] 02/ 협업의 미덕](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbosLW5%2Fbtq8H4gK87d%2FhBbqZo1tqkrLdPNIn3KEG0%2Fimg.jpg)
[파이썬 코딩의 기술] 02/ 협업의 미덕
책 『파이썬 코딩의 기술(개정 2판)』 미리 보기 파이썬 코딩의 기술(개정2판) 구글의 프린시펄(principal) 소프트웨어 엔지니어다. 구글 설문지(Survey)의 기술적 공동 설립자이며, 구글의 첫 번째 클라우드 컴퓨팅 제품(앱 엔진(App Engine))을 출시했다. 14년 전 구글의 엄청난 서 books.google.co.jp BETTER WAY 84/ 모든 함수, 클래스, 모듈에 독스트링을 작성하라 다른 언어와 달리 파이썬은 프로그램의 독스트링docstring 에 직접 접근할 수 있다. def palindrome(word): """주어진 단어가 회문인 경우 True를 반환한다.""" return word == word[::-1] assert palindrome('tacocat') assert ..
![[파이썬 코딩의 기술] 01/ 협업의 기초](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F10oPj%2Fbtq8KQv5HUL%2FdEPgoZxQnMIz1HEttxNXtk%2Fimg.jpg)
[파이썬 코딩의 기술] 01/ 협업의 기초
책 『파이썬 코딩의 기술(개정 2판)』 미리 보기 파이썬 코딩의 기술(개정2판) 구글의 프린시펄(principal) 소프트웨어 엔지니어다. 구글 설문지(Survey)의 기술적 공동 설립자이며, 구글의 첫 번째 클라우드 컴퓨팅 제품(앱 엔진(App Engine))을 출시했다. 14년 전 구글의 엄청난 서 books.google.co.jp 파이썬 프로그램을 작성하면서 다른 사람과 잘 협업하기 위해 필요한 협업의 기술들을 핵심만 정리해보았다! BETTER WAY 82/ 커뮤니티에서 만든 모듈을 어디서 찾을 수 있는지 알아두라 파이썬 커뮤니티의 모듈은 파이썬 패키지 인덱스(PyPI)에서 찾을 수 있다. 패키지 인덱스를 사용하려면 pip 명령어를 통해 쉽게 설치할 수 있다. PyPI · The Python Pac..