반응형

파이썬 16

파이썬 주석/독스트링에 대하여

오픈소스를 분석하다보면 잘 작성된 주석과 독스트링에 고마움을 느끼곤 한다. 잘 설명된 주석과 독스트링이 없었다면, 오픈소스를 분석하는 것에 더 많은 시간을 쏟아야 했을 것이다. 이를 교훈삼아 나도 오픈소스를 개발할 때면, 주석과 독스트링 작성에 더 신경쓰게 되었던 것 같다. 해당 포스팅은 [클린코드, 이제는 파이썬이다] 저서의 일부입니다. 주석 Comment 주석은 다음과 같이 나타낼 수 있다. # comment ''' This is several rows comment. we can explain more '''주석의 특징 코드 행 끝(인라인 주석) 보다는 새로운 행에 독자적으로 작성할 것 적절한 대문자를 포함한 하나의 문장으로 작성할 것 코드와 마찬가지로 행..

파이써닉한 함수 만들기

함수 또한 파이썬스럽게 만들면 좋다. 함수 작성은 프로그래밍의 가장 중요한 부분 중 하나이기 때문에 규칙을 잘 준수하고, 사용하기 쉬운 함수를 만드는 것이 중요하다. . . 해당 포스팅은 [클린코드, 이제는 파이썬이다] 저서의 일부입니다. 함수명 함수는 특정 동작을 수행하기 때문에 대부분 '동사'가 들어간다. 명사도 대부분 들어가지만, 특정 모듈에서는 동사만 존재하기도 한다. webbrowser 모듈에서 open() 함수는 당연히 웹브라우저를 열어주겠다는 의미이다. 짧고 단순한 이름보단 길지만 무슨 기능인지 알 수 있는 함수명이 좋다. 당연히 open, min, random, list 등 내장 함수와 중복되는 함수명을 사용하는건 옳지 않다. 함수 크기의 트래이드 오프 함수는 가능한 짧으면 ..

파이썬 내부 동작을 알아보자

파이썬 기초 문법을 다 익혔다면 파이썬 내부 동작하는 구조와 파이썬만의 독특한 특징을 이해할 필요가 있다. . . 해당 포스팅은 [클린코드, 이제는 파이썬이다] 저서의 일부입니다. 256 is 256 == True but 257 is 257 == False 아주 기이한 현상이다. 파이썬은 value 비교를 == 연산자를 통해, id 비교를 is 연산자를 통해 한다. 물론 id()를 통해 value 비교로 == 연산자를 활용하면 id 비교가 가능하다. 파이썬은 모든 프로그램이 시작할 때 자주 쓰이는 정수 리터럴 객체를 미리 생성한다. -5 부터 256까지가 그 범위이다. CPython 인터프린터가 자동으로 -5에서 256까지의 객체를 미리 생성하고 시작한다. 그래서 다음과 같은 결과가 나오기도 한다. >>..

파이썬 용어/개념 정리부터 확실하게 #2

1편에서 가비지 컬렉션, 리터럴, 객체, 아이디 등에 대해 알아보았다. https://tech-diary.tistory.com/55 파이썬 용어/개념 정리부터 확실하게 #1 모든건 기초가 튼튼해야 한다. 개발자들끼리 의사소통할 때 용어에 대한 이해가 부족하면 말릴수밖에 없다 누군가가 물어볼 때, 좀 안다 싶은데 용어 설명을 못하면 난감하기도 하다 용어에 대 tech-diary.tistory.com 모든건 기초가 튼튼해야 한다. 개발자들끼리 의사소통할 때 용어에 대한 이해가 부족하면 말릴수밖에 없다 누군가가 물어볼 때, 좀 안다 싶은데 용어 설명을 못하면 난감하기도 하다 용어에 대 tech-diary.tistory.com](https://tech-diary.tistory.com/55) 2편도 더 알아가보자..

파이썬 용어/개념 정리부터 확실하게 #1

모든건 기초가 튼튼해야 한다. 개발자들끼리 의사소통할 때 용어에 대한 이해가 부족하면 말릴수밖에 없다 누군가가 물어볼 때, 좀 안다 싶은데 용어 설명을 못하면 난감하기도 하다 용어에 대한 확실한 정리, 그리고 개념에 대한 확실한 이해가 필요하다 이제 알아보자 . 해당 포스팅은 [클린코드, 이제는 파이썬이다] 저서의 일부입니다. 이번 포스팅에서는 가비지 컬렉션, 리터럴, 키워드, 객체, 아이디에 대해 다룹니다. 가비지 컬렉션 (Garbage Collection) 유명 유니콘 기업에서 면접을 볼 때 들어왔던 기술 질문중 하나다. 사실 그 전까진 이런 개념이 있는 줄도 몰랐다. 가비지 컬렉션 : 파이썬 내부에서 메모리 할당과 해제를 자동으로 해주는 메모리 관리 기법 초기 프로그래밍에서는 메모리를 프로그래머가 ..

Python 이해하기 쉬운 코드 이름 짓기

혹시 이런 통계를 본 적 있는가? 아무래도 내가 이해하기 쉽기 위해, 그리고 남들도 이해하기 쉽게 하기 위해 함수명, 파일명, 변수명 등등 이름 짓는 것이 가장 귀찮은 일들중 하나일 것이다. 그렇다면, 변수명을 잘 짓는 방법도 배워두면 어떨까 여기서는 파이썬에 특화된, 변수명 잘 짓는 방법을 알려주고 있다. 해당 포스팅은 [클린코드, 이제는 파이썬이다] 저서의 일부입니다. 대소문자 표기법 파이썬은 대소문자가 구분되는 언어이며, 공백이 포함될 수 없는 특징이 있다. 널리 알려진 몇 가지 표기법에 대해 알아보자. 스네이크 표기법 : this_is_snake_case 이와 같이 언더바 _ 와 영문 소문자를 사용한다. 카멜 표기법 : thisIsCamelCase 이와 같이 단어를 언더바가 아닌 대문자로 구분한다..

가독성 좋은 파이썬 코드 작성방법

보기 좋은 코드로 작성하는 것은 프로그래밍 유지 보수를 도와주는 필수 스킬이다. 초심자는 단순히 기술적 지식을 늘리거나, 코드를 작동하게 하는 것에 의의를 두어 이런 부분을 신경쓰지 않을 수도 있다. 하지만 자신의 코드를 나중에 볼 때, 혹은 남에게 보여주며 도움을 구할 때, 함께 프로그래밍 할 때 등 생각보다 가독성 좋은 코드를 작성해야하는 것은 기술을 구현하는 것만큼 중요하다. 지금부터 파이썬만의 가독성 좋은 클린코드를 작성하는 방법을 알아보자. 해당 포스팅은 [클린코드, 이제는 파이썬이다] 저서의 일부입니다. 용어 정리 Code Formatting : 코드 포매팅, 소스코드에 일련의 규칙을 적용하여 특정 형식을 갖추게 하는 것 Style Guide : 스타일 가이드는 특정 집단에서 일련의 코드 포메..

파이썬으로 신입 취업하기

학부 생활동안 파이썬만 주구장창 팠습니다. 물론 학교 수업을 통해 C, JAVA도 배우긴 했지만, 기초 수준에서 벗어나지 않았습니다. 웹 개발도 Django, Flask로 개발하였고, 데이터 분석이나 ML/DL을 다루면서 자연스럽게 파이썬을 더 많이 더 깊게 파게 되었습니다. 그리고 취업 시즌이 다가왔고, 멘붕이 올 수밖에 없었습니다. 저와 같은 고민을 가지신 모든 이들을 위해 적습니다. 우선 파이썬으로 지원할 수 있는 직군에 대해 살펴봅시다. 크게 아래와 같은 세 가지로 구분될 수 있습니다. 1. 웹 백엔드 개발 Django나 Flask로 웹 백엔드를 개발하는 직군에 지원해볼 수 있습니다. 하지만 대한민국은 흔히 스프링 공화국이라 불릴만큼 대부분의 기업에서 Java Spring 좋아합니다. 대충 취업 ..

경험/취업 2021.12.12

[Python] 백준 14499번 : 주사위 굴리기

※문제 출처 https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도 www.acmicpc.net 명령을 통해 주사위가 계속 움직이는 프로그램입니다. 주사위를 클래스로 설정하여 구현했습니다. 주사위 모든 면의 숫자를 알 수 있게 dictionary를 선언해줍니다. dice = { key : 주사위 면, value : 적힌 숫자 } changeDice 함수 방향을 입력하면 주사위의 모양이 변경됩니다. 주사위 모양은 바..

baekjoon 풀이 2021.04.18

[Python] 백준 16637번 : 괄호 추가하기

https://www.acmicpc.net/problem/16637 [Problem] 길이가 N인 수식이 있다. 수식은 0보다 크거나 같고, 9보다 작거나 같은 정수와 연산자(+, -, ×)로 이루어져 있다. 연산자 우선순위는 모두 동일하기 때문에, 수식을 계산할 때는 왼쪽에서부터 순서대로 계산해야 한다. 예를 들어, 3+8×7-9×2의 결과는 136이다. 수식에 괄호를 추가하면, 괄호 안에 들어있는 식은 먼저 계산해야 한다. 단, 괄호 안에는 연산자가 하나만 들어 있어야 한다. 예를 들어, 3+8×7-9×2에 괄호를 3+(8×7)-(9×2)와 같이 추가했으면, 식의 결과는 41이 된다. 하지만, 중첩된 괄호는 사용할 수 없다. 즉, 3+((8×7)-9)×2, 3+((8×7)-(9×2))은 모두 괄호 안..

baekjoon 풀이 2021.03.28