본문 바로가기

Python_programming

(24)
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. 일단 '이..
크롤링 입문(2) selenium - 시간창 대기 ,팝업창 닫기 2020 04 19 1) 시간창 대기 3가지 보통 시간창 대기는 time.sleep , implicity_wait , Explicit Waits 3가지를 씁니다. time.sleep 은 그냥 지정한 시간만큼 기다린 뒤에 작업을 진행. 파이썬 내장 모듈이죠. implicitly_wait 는 지정한 시간만큼 기다려주고 그 이후는 기다리지 않습니다. Explicit Waits 는 특정 상태가 될때까지 기다리고, 상태가 되면 바로 실행한다는 의미입니다. from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.w..
웹 크롤링 입문 (1) (selenium) 202004 크롤링을 다시 공부해보고 싶어서 스터디한 내용을 정리해보도록 하겠습니다. 2020년 4월 19일 실습한 내용입니다. 1) selenium , chromedriver 설치 크롤링에 맞게 세팅을 하겠습니다. 우선 저의 경우는 python3.6 의 가상환경을 활성화한뒤 selenium 을 설치하겠습니다. # 패키지 설치하기 $ conda install selenium # 패키지 설치 확인 $ conda list 이제 크롬 드라이버를 다운 받습니다. 크롬 버전을 확인하겠습니다. 크롬을 열고 우측 상단의 세로로 점이 3개 찍혀있는 아이콘을 누르고 help 누르고 about chrome 누르면 바로 나옵니다 :) 저의 경우는 위와 같습니다. chrome driver 를 구글에 검색하셔서 본인 컴퓨터 버전에 맞는 드..
파이썬 함수 코드 스타일 PEP20 - 1 구글링하면서 보게 되는 파이썬으로 된 오픈소스들을 보면서 왜 항상 이러한 구문들이 들어가 있을까? 라고 생각되는 코드들이 있습니다. 최근 보고 있는 책('파이썬을 여행하는 히치하이커를 위한 안내서')에서 이에 대한 실마리를 알 수 있었고, 이번 포스팅부터는 그에 대해 조금씩 정리해보고자 합니다. 우선, 대부분의 파이썬 코드들은 PEP20 을 따르는 것으로 보인다. 최근 나도 직접 함수나 클래스를 짜게 될 상황에 닥쳐 있는데, 이러한 가이드들이 도움이 된다. 1) Errors should never pass silently. (오류 앞에서 절대 침묵하지 말지어다. ) 아래 코드는 절대 실행하지 말자. while True: try: print("nyah",end =" ") except: pass except..
파이썬 알고리즘 기초 - 스택(Stack) 이번 시간에는 '스택'에 대해서 다뤄 보겠습니다. 이게 스택입니다. 말 그대로 '스택' 그 이상도 그 이하도 아니네요. 자, 저 책 하나하나를 데이터로 생각해볼게요. 일반적으로 생각해볼 때, 책을 어떻게 안정적으로 꺼낼 수 있을까요? 예를 들어, 위에서 10번째에 위치한 책(=데이터)를 꺼내고 싶은데 그 위까지 책을 한 팔로 살 짝 들어서 옆으로 싹 뺀다면, 안 무너뜨릴 자신 있으신가요? ㅎㅎ 위에서부터 9권을 내리고 10번째 책을 빼는게 안정적이겠죠? 스택 이라는 자료구조가 그렇습니다. 저 스택을 쌓을 때 위에 있을수록 더 늦게 쌓은 책이잖아요? 나중에 입력한 데이터를 먼저 빼는(LIFO) 데이터 구조가 스택입니다! 저는 스택이라는 데이터 구조를 생각할 때, 저렇게 위태위태하게 쌓은 이미지를 상상합니다..