본문 바로가기

Python_programming/초중급편

(10)
파이썬 '예외 처리' 기본 개념 파이썬에서 '예외 처리'에 대한 방법을 정리해보겠습니다. '파이썬 코딩 도장 Unit 38. 예외처리 사용하기' 내용을 예시 코드와 설명까지 대부분 따라하고 있으니 참고해주세요. (공부하면서 알게되어 추가된 내용 있음 - raise 부분) '파이썬 코딩 도장 Unit 38. 예외처리 사용하기' 링크는 맨 아래 첨부했으니, 이 포스트를 한 번 훏어보고 넘어가셔서 공부하면 더 좋습니다 :) 1. try except -기본 틀: 1.1 - try: 실행할 코드 except: 예외가 발생했을 때 처리하는 코드 예시 코드 try: x = int(input('나눌 숫자를 입력하세요: ')) y = 10 / x print(y) except: print('예외가 발생했습니다.') 기본 틀에서 나온대로 try 문은 그대..
python if not , isinstnce 이번 시간에서는 파이썬 if not 에 대해 알아보려고 합니다. 조건문의 구조는 보통 아래처럼 일반화 됩니다. if 조건문: 실행문 elif 조건문: 실행문 else: 실행문 여기서 조금 디테일하게 이해할 필요가 있습니다. if True: print('참') # True 는 참 else: print('거짓') if False: print('참') else: print('거짓') # False 는 거짓 if None: print('참') else: print('거짓') # None 은 거짓 (None 은 False 로 취급됨을 위 코드에서 확인해주세요) ----------------------------- if 와 not 조건문 을 구분해서 보셔야 합니다. 저도 처음에 같이 결합해서 보다보니 이 부분이 좀..
python 범위 규칙, 할당, assignment, UnboundLocalError: local variable referenced before assignment 파이썬 namespace 를 공부하다 보면, unboundlocalerror 때문에 혼란이 오게 되는 경우가 있다. 이 포스팅은 그러한 사람들을 위한 포스팅이다. 먼저, 파이썬 네임스페이스에 대한 기본적인 이미지는 아래와 같다. 보통 파이썬에서 네임스페이스는 3가지가 있으며, 지역 네임스페이스, 전역 네임스이스, 빌트인 네임스페이스 가 있고, 위와 같은 관계이다. 그리고 아래 코드같은 예제를 보면서 알게 된다. # case1 z = 100 def func_3(x,y): print(locals()) a = x + y + z print("func_1 z", z, a) func_3(100,100) 아하! "전역 변수를 참조하여 지역 네임스페이스에 없을 경우, 전역 네임스페이스를 참조해서 처리하는구나!" 그러다..
python 3 부터는 f-string 만 기억하자. (문자열 포매팅) 파이썬 문자열 표기법을 보면 형식 문자열이라고 해서 % 기호의 좌측에 값이 들어갈 자리를 만들고, 우측에 값을 튜플형태로 넣는다. a = 0b1011011 b = 0xc5f print('이진수 : %d, 십육진수: %d' % (a,b)) 이러한 %-formatting 방식이 있고, 또 str.format()메서드 방식이 있는데 주로 python 2 에서 사용해왔다고 한다. 이러한 표기법에는 몇 가지 문제가 있다. 1번째 문제점은 형식화 식에서 오른쪽에 있는 tuple 내 데이터 값의 순서를 바꾸거나 값의 타입을 바꾸면 타입 변호나이 불가능하므로 오류가 발생할 수 있다. 2번째 문제점은 '가독성'이다. 위 코드에서 값을 변경해야 할 경우 tuple의 길이가 길어져서 가독성이 떨어진다. 딕셔너리에 있는 키는..
파이썬 이터레이터(iterator)와 이터러블(iterable) 차이점 많이들 헷갈려하는 개념들을 정리해보았습니다. 제 이해를 쉽게 하기 위한 정리이기에 틀린 부분이 있을 수 있습니다. 정정해줄 부분이 있다면 댓글로 가르침을 주시면 감사하겠습니다 :) 1) 이터레이션(iteration) 어떤 객체의 원소에 하나씩 차례로 접근하는 것. 명시적으로든 암묵적으로든 반복문을 사용해 객체의 여러 원소에 하나하나 접근하면 그것은 이터레이션(iteration)이다. Iteration is a general term for taking each item of something, one after another. Any time you use a loop, explicit or implicit, to go over a group of items, that is iteration. 일단 '이..
파이썬 함수 코드 스타일 PEP20 - 1 구글링하면서 보게 되는 파이썬으로 된 오픈소스들을 보면서 왜 항상 이러한 구문들이 들어가 있을까? 라고 생각되는 코드들이 있습니다. 최근 보고 있는 책('파이썬을 여행하는 히치하이커를 위한 안내서')에서 이에 대한 실마리를 알 수 있었고, 이번 포스팅부터는 그에 대해 조금씩 정리해보고자 합니다. 우선, 대부분의 파이썬 코드들은 PEP20 을 따르는 것으로 보인다. 최근 나도 직접 함수나 클래스를 짜게 될 상황에 닥쳐 있는데, 이러한 가이드들이 도움이 된다. 1) Errors should never pass silently. (오류 앞에서 절대 침묵하지 말지어다. ) 아래 코드는 절대 실행하지 말자. while True: try: print("nyah",end =" ") except: pass except..
파이썬 객체 내부 검사 - dir, type, id, __dict__ ,네임 스페이스 파이썬은 클래스와 인스턴스를 알아보기 위해 내장에서 제공하는 함수와 클래스가 있습니다. 1) 객체 내부 검사 dir 함수 - 클래스와 인스턴스 내부에서 사용할 수 있는 정보를 확인한다. id 함수- 클래스와 인스턴스의 레퍼런스를 정수로 보여준다. type 클래스- 클래스와 인스턴스가 누구에 의해 만들어졌는지에 대한 정보를 확인 a 라는 변수에 type 클래스를 입력하면 str 이라고 나옵니다. 보통 이걸 보면 'a 라는 변수는 class 가 str 이구나!' 라고만 생각하실 수 있는데요. 정확히 말하면 a 라는 변수는 RoBeRt 라는 리터럴이 할당되었고, str 이라는 클래스에 의해 만들어졌다. 그리고 a 라는 변수가 사용할 수 있는 메서드가 나옵니다. 저는 upper 라고 하는 메서드를 썼는데 결과는..
파이썬 클래스 사용하기3: 클래스 상속, super,메서드 오버라이딩, 다중 상속, 추상 클래스 이번에는 클래스 상속(inheritance)을 사용해보겠습니다. 상속은 무언가를 물려받는다는 뜻입니다. 그래서 클래스 상속은 물려받은 기능을 유지한채로 다른 기능을 추가할 때 사용하는 기능입니다. 여기서 기능을 물려주는 클래스를 기반 클래스(base class), 상속을 받아 새롭게 만드는 클래스를 파생 클래스(derived class)라고 합니다. 보통 기반 클래스는 부모 클래스(parent class), 슈퍼 클래스(superclass)라고 부르고, 파생 클래스는 자식 클래스(child class), 서브 클래스(subclass)라고도 부릅니다. 클래스 상속은 다음과 같이 클래스를 만들 때 ( )(괄호)를 붙이고 안에 기반 클래스 이름을 넣습니다. class 기반클래스이름: 코드 class 파생클래스..