Python

이번 포스팅은 파이썬을 사용하면서 오픈소스를 사용하며 클래스나 함수에 나왔던 @ 를 이해하기 위한 정리 포스팅입니다. 1. @ 는 무엇인가? @decorator_ def function(): print("what is this?") 오픈소스를 이용하여 파이썬을 이용할 때 @로 시작하는 것들을 볼 수 있습니다. @는 데코레이터(decorator)로 장식하다의 decorate에 er(or)을 붙임으로 장식하는 도구로 설명할 수 있습니다. 어디에 장식하는 걸 까요? 데코레이터는 함수를 수정하지 않고 추가 기능을 구현할 때 사용합니다. 예를 들어 볼까요? def func1(): print("func1 시작") print("func1 실행") print("func1 끝") def func2(): print("fu..
이번 포스팅은 파이썬을 사용하면서 assert 를 이해하기 위해 정리한 글입니다. - 가정설정문 assert 란? 파이썬에서 assert 는 예외처리에 사용하는 방법 중 하나 입니다. assert 는 파이썬에만 있는 것이 아닌 대부분의 언어에도 포함되어 있습니다. assert 는 뒤의 조건문이 True 가 아니면 AssertError를 발생시키는 함수 입니다. 예를 들어, x = int(input('2의 배수를 입력하세요: ')) assert x % 2 == 0, '2의 배수가 아닙니다.' print(x) assert 조건문 혹은 assert 조건문, 에러 메세지 형식으로 쓸 수 있으며 위의 코드는 2의 배수가 아니면 '2의 배수가 아닙니다' 라는 에러 메세지를 나타내게 했습니다. 이렇게 예외 상황을 확..
이번 포스팅은 파이썬을 사용하면서 __call__ 을 이해하기 위해 정리한 글입니다. 1. __init__ 이란? 앞서 파이썬의 클래스에 대해 포스팅했을 때 __init__이라는 생성자 함수에 대해 설명했습니다. 다시 한번 설명하자면 __init__ 은 생성자입니다. class Calc: def set(self, n1, n2): self.n1 = n1 self.n2 = n2 def add(self, n1, n2): return self.n1 + self.n2 위의 함수에서 add라는 더하기 메서드를 set으로 먼저 정의하지 않고 사용한다면 오류가 발생합니다. 그것을 방지하기 위해 class Calc: def __init__(self, n1, n2): self.n1 = n1 self.n2 = n2 def ..
이번 포스팅은 파이썬을 사용하면서 함수에서 *와 **를 이해하기 위해 작성하는 포스팅입니다. 1. *args 이해 - args는 arguments의 줄임말입니다. 함수 인자로 *args를 대표적으로 쓰지만 다르게 써도 아무 상관이 없습니다. - 결론적으로 *args는 함수에서 여러 개의 매개변수를 쓰기 위해 사용하는 것입니다. def location(kor ,*args): print(kor, args) location("한국", "부산") location("한국", "서울", "부산", "대전", "대구") 예를 들어 위치를 출력하는 함수를 만들었을때 *args를 사용하여 출력하도록 하였습니다. 결과를 보시면 *args 로 받은 매개변수는 튜플로서 출력하는 것을 볼 수 있었고 여러 개의 인자를 주어도 출..
이번 게시물은 제가 파이썬을 공부하며 보았던 if __name__ == "__main__" 이 구문에 대해 정리한하여 포스팅 해보려고 합니다. - if __name__ == "__main__" 이란? 그대로를 풀어서 얘기하자면 " __name__ 이 __main__ 이라면 실행한다. " 입니다. 이것을 이해 하기 위해서 저는 __name__ 과 __main__ 이 무엇인지 이해 하려고 했습니다. __name__ 은 모듈의 이름을 가지고 있는 파이썬의 내장 함수 입니다. 직접 실행되는 경우에는 __main__ 을 반환하고 모듈을 import 해서 실행하는 경우는 모듈을 이름을 봔환하는 함수입니다. - 예시 def func1(): print("함수 1 수행") print(__name__) func1() if..
이 포스팅은 점프 투 파이썬을 보고 정리하여 작성한 것입니다. 혹시나 수정해야 할 부분이나 질문이 있으면 댓글로 알려주세요! 파이썬에서 클래스란 함수나 자료형처럼 꼭 필요한 요소는 아니지만 프로그램 작성에 있어 보다 쉽게 만들 수 있게 해주는 것이다. 클래스(Class)와 객체(Object) 점프 투 파이썬에서는 클래스와 객체를 과자 틀과 과자 틀로 만든 과자로 비유하고 있다. 클래스는 도면이고 객체는 도면(클래스)으로 만든 것을 뜻한다. 객체는 객체마다 고유한 성격을 가진다는 특징이 있다. 무슨 말인가 하면, 동일한 클래스로 만든 객체들은 서로 영향을 전혀 주지 않는다는 것이다. 객체와 인스턴스의 차이 a = Calc() - 관계 위주로 설명 할 때 사용하는 것 똑같지만 어떤 것이 주체인가에 따라 다르..
이번 포스팅은 www.acmicpc.net/problem/2292에서 푼 것을 토대로 작성했습니다. 기본 수학 1의 두 번째 문제인 벌집입니다. 문제 문제 해석 1부터 시작하여 1씩 증가하는 벌집 모양 1에서 N까지 거치는 방의 개수를 출력으로 구해야 함 Python 코드 n = int(input()) cnt = 1 six_cnt = 6 count = 1 while n > cnt: count += 1 cnt += six_cnt six_cnt += 6 print(count) Python 코드 풀이 벌집 문제에서 1-7-19-37 칸이 이동되는 범위가 6씩 증가하는 것을 보고 입력 n이 cnt, 즉 1-7-19-37로 이어지는 숫자보다 작을 시 while문을 빠져나오고 count를 출력하게 만들었습니다. c..
이번 포스팅은 www.acmicpc.net/problem/1712에서 푼 것을 토대로 작성했습니다. 기본 수학 1의 첫 번째 문제인 손익분기점입니다. 문제 문제 해석 첫째 줄에 A, B, C가 빈칸으로 입력 A : 고정 비용 B : 가변 비용 C : 노트북 가격 손익분기점 nC > A+nB 손익분기점이 존재하면 n 출력, 손익분기점이 존재하지 않으면 -1 출력 Python 코드 a,b,c = map(int, input().split()) if b >=c : print(-1) else : print(int((a/(c-b))+1)) Python 코드 풀이 if b >=c : print(-1) else : print(int((a/(c-b))+1)) nc-nb > a n(c-b) > a n > a/(c-b) 이..
우준세
'Python' 카테고리의 글 목록 (4 Page)