본문 바로가기

Computer Science/Python

[Python] 예약어, 키워드 (keywords, reserved word) 파이썬을 그냥 기존에 언어에서 알던 개념들을 굳이 확인해보지 않고 쓰고 있다가 최근에 바쁜일이 좀 줄어 기초부터 한 번 확인 하는 시간을 가지고 있다. 예약어의 경우 사용하다 보면 코드 에디터에서 syntax highlight가 생기는걸 보고 예약어구나 하면서 눈치껏 피해쓰긴 했지만 전부 정리해두면 좋을 것 같아 정리했다. 예약된 단어(키워드라고도 함)는 언어의 사전 정의된 의미와 구문을 사용하여 정의됩니다. 이 키워드들은 프로그래밍 명령어들을 개발하기 위해 사용되어야 한다. 예약된 단어는 변수 이름, 함수 등과 같은 다른 프로그래밍 요소의 식별자로 사용할 수 없습니다. 파이썬3(3.9 기준)에는 36개의 키워드가 있습니다. 아래 코드는 예약어 리스트를 확인하는 코드입니다. import keyword p.. 더보기
[Python] enumerate를 활용한 for loop python3에서 for loop을 사용하는 경우 기존에 range를 활용한 사람들이 많다. arr = ['a','b','c','d'] for i in range(0,len(arr)): print(i, arr[i]) 0 a 1 b 2 c 3 d 그러나 이런 방식을 파이썬 전문가들은 파이썬답지(Pytonic) 않다고 한다. 그렇다면 그들이 말하는 Pytonic한 방법은 무엇인가? 그게 이번에 설명할 enumerate를 활용한 방법이다. arr = ['a','b','c','d'] for e in enumerate(arr): print(e) (0, 'a') (1, 'b') (2, 'c') (3, 'd') 이렇게 index와 value를 tuple로 받아 처리 할 수 있다. 2차원 array에서 사용하는 것도 .. 더보기
[Python] json.dumps 한글깨짐 해결 기본적으로 json출력은 ascii 문자 이외에는 모두 이스케이프 처리 하기때문에 ascii 문자가 아니라면 flag 설정이 필요하다. ensure_ascii=False 를 추가하면 된다. json.dumps(data, indent=4, ensure_ascii=False) 자세한 스펙은 파이썬 공식문서를 참고하였다. docs.python.org/3.7/library/json.html Character Encodings The RFC requires that JSON be represented using either UTF-8, UTF-16, or UTF-32, with UTF-8 being the recommended default for maximum interoperability. As permitt.. 더보기
[Python] 파이썬 call by reference, call by value 언어를 처음 시작하면서 숙지 해야할 가장 중요한 내용이 바로 해당 언어의 'Memory Management', 'argument passing' 방식이다. C언어는 기본적으로 call by value이며 사용자가 포인터를 명시하여 사용하는 경우에만 call by reference로 동작한다. 하지만 이후 언어들은 C언어처럼 '포인터' 라는 개념 자체가 명시적으로 보이지 않는 경우가 많다. 그렇기 때문에 사용하는 언어의 메모리 사용 전략에 대한 이해가 매우 중요하다. Python은 간단하게 설명하면 - 변경 가능한 (Mutable) 타입은 call by reference : list, dictionary, setanduser-defined classes - 변경불가능한(Immutable) 타입은 call .. 더보기
[Python] 파이썬 XML 데이터 읽기 혹시 간단하게 dict 타입으로 변환해서 처리하고 싶다면 다음 글을 참고하세요.(개인적으로 추천) https://yeslab.tistory.com/142 [Python] 파이썬 XML을 사전(json)으로 쉽게 처리하기(xmltodict) 이전에 작성 했던 파이썬에서 XML 데이터 읽기의 글이 요즘들어 조회수가 높게 나오는 편인데 사실 나도 이제 저렇게 xml 패키지를 사용하지 않아 업데이트의 필요성을 느껴 추가로 작성 한다. 혹 yeslab.tistory.com 아래글은 ElementTree 오브젝트로 읽어 처리하는 방법입니다. 2019-07-18 작성 내용 빅데이터 관련 업무를 하다보면 TSV(Tab Separated Value), XML(Extensible Markup Language), JSON(.. 더보기