본문 바로가기
728x90
반응형

python81

[Python tkinter] 7. Entry 위젯 생성 Entry 위젯은 현대인들에게는 너무나 익숙한 위젯이다. 사이트 로그인 시 ID와 비밀번호를 입력하는, 또는 가입 시 인적정보를 작성하는 한 줄 짜리 입력창을 tkinter에서 Entry 위젯이라고 한다(html 등 웹 페이지 앞단에 대해 공부하셨던 분들이라면 Input이라는 단어가 더 익숙하다). 이번 포스팅은 tkinter에서 Entry 위젯의 생성과 그 사용법에 대해 알아보려 한다. 1. Entry() 클래스 Entry 위젯 생성을 위한 클래스 호출은 아래와 같이 진행하면 된다. Entry 객체 변수명 = tkinter.Entry(master=위젯을 배치할 창 객체명) 글자를 입력받는 Entry 위젯의 특성 상, 기본 인자는 master를 제외하면 특별히 요구되는 것은 없다. 다른 위젯과 다른 점이.. 2022. 2. 18.
[Python tkinter] 6. Listbox 위젯 생성 및 목록 설정 이번 포스팅에서는 tkinter의 Listbox에 대해 알아보려 한다. Listbox는 간단하게 말하면, 여러 리스트 항목 중 하나를 선택할 수 있도록 만든 위젯이다. 이 위젯의 형태를 가장 많이 볼 수 있는 곳이 Excel인데, Excel에서 '셀 서식'을 누르면 나오는 좌측의 목록이 바로 Listbox 위젯이라고 생각하면 된다. 사실상 요즘에는 Combobox라고 불리는 위젯이 있기 때문에 많이 사용되는 위젯은 아니지만, 목록 자체의 양이 많지 않은 경우 종종 사용되기도 한다. 이번 포스팅에서는 Listbox 위젯의 생성과 사용에 대해 알아보려 한다. 1. Listbox() 클래스 Listbox 위젯 생성을 위한 클래스 호출은 아래와 같이 진행하면 된다. Listbox 객체 변수명 = tkinter... 2022. 2. 6.
[Python tkinter] 5. Button 위젯 생성 및 클릭 시 동작 지정하기 GUI 프로그램을 만들다보면, Button은 반드시 하나 이상 들어가기 마련이다. 당장 문서 열기 메뉴를 클릭하면 나오는 창 역시, "열기" 버튼과 "취소 버튼이 존재하고 있다. GUI 프로그래밍에서 그만큼 자주 쓰이는 위젯이고 클릭 시의 동작도 바로바로 확인할 수 있기 때문에, tkinter로 위젯을 배울 때 보통 Button의 생성/배치부터 접하게 되는 경우가 많다. 물론 필자는 Frame이 더 중요하다고 생각해서 Button 관련 포스팅을 지금에야 하게 되었지만 말이다. 본격적으로 Button 위젯의 생성과 설정, 배치에 대해 알아보자. 1. Button() 클래스 Button 위젯 생성을 위한 클래스 호출은 아래와 같이 진행하면 된다. Button 객체변수명 = tkinter.Button(mast.. 2022. 1. 23.
[Python tkinter] 4. Label 위젯으로 창에 글자 각인하기 tkinter에서 Label 위젯은 단순히 창에 글자를 각인해주는 용도로 많이 사용한다. 워드나 메모장에서 문서 열기를 진행하면 나타나는 창에서 각 항목에 대해 간단하게 설명하는 부분들이 Label 위젯으로 생성된다고 보면 된다. 따라서 Label 위젯은 동작을 지정해주어야 하는 버튼, 항목을 추가해야하는 Combobox나 LIstbox와는 달리, 매우 사용하기가 쉽다. 본격적으로 Label의 사용 방법에 대해 알아보자. 1. Label 클래스 생성 Label 클래스는 아래와 같은 방식으로 호출한다. Label객체변수명 = tkinter.Label(master = 위젯을 배치할 창 객체명, text=Label에 출력할 문자열) 호출 시 사용하는 필수 인자는 master와 text 뿐이다. fg, bg, .. 2022. 1. 23.
14. [Python] tkinter로 생성한 Window 창 x버튼 클릭 시 동작 설정 필자가 요즘 진행하고 있는 프로젝트에서 Python의 tkinter 모듈을 매인으로 사용하고 있다. 무려 작년 5월부터 진행하려 했던 프로젝트지만, 밀리고 밀리다 새해가 되어서야 시작하게 된 프로젝트인만큼, 관련 공부를 계속 진행하고 있는 상황이다. 이제 겨우 로그인 창 모양과 동작만 어느정도 흉내낼 정도로 만들어놓긴 했는데, 한 가지 고민거리가 생겼다. 서두에 링크를 걸어놓은 포스팅을 보면 알겠지만, 프로그램 자체가 워낙 민감한 정보를 담고 있다보니, 하나의 계정이 프로그램에 중복 로그인하는 것을 방지하고자 한다. 따라서, 매인 창에서 로그아웃 버튼을 누르면, 창이 닫히면서 계정과 관련된 특정 파일에서 "xxx 계정이 로그아웃 되었다는" 표식을 남기려는 작업을 진행 중이다. 그런데, tkinter로 생.. 2022. 1. 19.
[Python tkinter] 3. Frame 위젯으로 창 구획 나누기 GUI로 프로그램을 만들 때, 필자가 가장 중요하게 생각하는 것은 디자인이다. 굉장히 뜬금없이 들릴 수 있는데, 외관을 삐까번쩍하게 만드는 그런 디자인을 말하는 것이 아니라, 위젯을 적절한 위치에 배치할 수 있도록 공간을 할당하는 것을 의미한다. 가령 예시를 하나 보자. 로그인 창을 만든다고 하자. "아이디", "비밀번호" 텍스트가 작성된 Label 위젯과 로그인 폼을 입력받는 Entry 위젯은 전부 place로 창에 배치가 되었다. 만약, 개발을 진행하다가 누군가가 "이거 위젯 위치 오른쪽으로 40 픽셀정도 옮겨주세요"라는 부탁을 받는다면, 필자는 place 함수에 있는 x인자의 값을 전부 하나씩 변경해주어야 한다. 위의 예시야 위젯 개수가 단 4개 뿐이니 그냥 노가다라도 하면 된다지만, 코드가 늘어나.. 2022. 1. 16.
[Python tkinter] 2. 빈 창에 위젯(Widget) 생성하기 지난 포스팅에서는 tkinter 패키지의 Tk() 클래스를 선언하여 Window 창을 생성하고, 생성한 창의 설정을 진행하는 방식에 대해 알아보았다. tkinter로 생성한 창은 아무것도 없는 완전무결한 빈 공간이다. 실제 우리가 프로그램에서 볼 수 있는 텍스트 입력 창이나, 버튼이나, 스크롤 등은 별도로 추가해주어야 한다. 창 내의 버튼, 텍스트 입력창, 드롭 박스 등을 tkinter에서는 위젯(Widget)이라고 하는데, 이 위젯들을 생성하고 창 내에 배치해주는 작업을 거쳐야 한다. 이번 포스팅에서는 위젯을 창에 생성하고 배치하는 방법에 대해 간략하게 알아보려 한다. I. 위젯 클래스 선언 및 위젯 생성 이 위젯들 역시 Tk() 클래스와 마찬가지로 tkinter 패키지에 클래스 형태로 존재한다. 따라.. 2022. 1. 12.
[Python tkinter] 1. tkinter 패키지로 윈도우 창 생성하기 필자가 지금까지 python이나 Linux Bash로 진행한 프로젝트들을 보면, 하나같이 Command Line Interface - 명령어를 입력하는 방식으로 구동하는 - 형태의 프로그램 뿐이다. 따라서 필자가 혼자 쓰기 아까운 프로그램들을 주변 가족들에게 소개시켜주더라도, 옛 도스와 비슷한 방식으로 작동하는 필자의 프로그램을 스마트폰에 익숙해진 사람들이 쓰기에는 많은 무리가 있다. 이 때문에 필자가 기존에 진행했던 프로젝트 중 일부를 Window에 익숙한 대부분의 현대 사람들도 쉽게 사용할 수 있게 Graphic User Interface 방식으로 변경하는 작업을 다시 진행하려고 마음먹었던 것이 무려 1년하고도 반년 전이다. 이 당시 찾아본 결과 python의 tkinter 패키지와 PyQt5라는 패.. 2022. 1. 9.
[Python Data Analysis] 14. pandas 데이터 전처리 - 학습/검증 데이터 특성치 분류 필자가 앞서 작성한 데이터 분석 과정에 대해 간략하게 작성한 포스팅을 보면, 분석에 필요한 데이터 중 일부는 학습 데이터와 검증 데이터로 나누는 과정이 있다. 학습데이터는 말 그대로 분석 모델 생성 후, 해당 모델의 학습에 사용하는 데이터이고, 검증 데이터는 생성한 학습 모델이 학습한 내용에 따라 얼마나 정확한 결과가 나오는지 테스트하는 데이터라고 보면 된다. 예를 들어, 소득, 성별과 비만의 상관관계 조사를 위해 데이터를 수집하고, 해당 상관관계에 대해 학습하는 모델을 생성한다고 해보자. 그럼, 수집한 데이터의 일부를 모델 학습에 사용하고(학습데이터), 나머지 일부는 모델에 적용하여 수집한 데이터와 유사한 결과가 나오는지 확인하는데 사용한다(검증 데이터). 그런데, 데이터를 학습/검증용으로 나누기가 생.. 2021. 12. 23.
[Python Data Analysis] 13. pandas 데이터 전처리 - One-Hot-Encoding 특성치가 연속적인 값을 가지는 경우, 이 특성치를 최대최소척도(MinMaxScaler)나 표준정규화(StandardScaler) 클래스를 바로 사용하더라도 큰 문제가 되지 않는다. 하지만, 연속성을 가진 특성치가 아닌 범주형, 그것도 숫자가 아닌 문자값을 가지는 특성치라면, 분석을 위해 이들 값을 정규화하는 것도 매우 어려워진다. 그런다고 이들 값들을 함부로 숫자로 변경할 수도 없는 것이, 숫자로 변환되는 순간 sklearn의 정규화모듈들은 이들 값을 연속적인 값으로 인식하여 정확한 분석이 불가능해지기 때문이다. 만약, 남성을 10, 여성을 20으로 변환한 값으로 정규화를 시도한다면, 이 변환된 값을 분류 척도가 아닌 이산형 변수로 인식한다는 말이다. 따라서, 분류 척도의 경우 다음과 같은 방식으로 분류.. 2021. 12. 23.
[Python Data Analysis] 11. 데이터 분석 절차 지금까지의 Python Data Analysis 포스팅에서는 필자가 분석용 데이터를 pandas 패키지의 DataFrame이나 Series로 변환하고, 변환된 데이터를 편집, 삭제, 추가, 변형하는 기본적인 과정에 대해서 살펴보았다. 이번 포스팅에서는 날 것의 데이터를 분석하는 절차에 대해 이론적인 정리를 할까 한다. 데이터 분석은 크게 지도학습과 비지도학습으로 나뉜다. 지도학습의 경우 측정하려는 결과와, 결과에 영향을 주는 요인을 분석 모델에 적용하여 학습하고, 학습한 결과를 바탕으로 특정 요인값에 대해 결과를 예측하게 된다. 비지도학습은 지도학습과 달리 학습 데이터가 별도로 없다. 이번 포스팅에서는 지도학습에 대해서 먼저 정리를 하려 한다. Python은 scikit-learn이라는 패키지를 통해, .. 2021. 12. 12.
[Python Data Analysis] 9. DataFrame 데이터 조건 검색 및 수정 이번 포스팅은, 앞서서 보았던 DataFrame 데이터에 대해 특정 조건을 만족하는 값을 지니는 데이터 행을 추출하고, 기존에 존재하는 데이터를 바꾸는 방법에 대해 알아보려 한다. 특정 조건을 DataFrame에 명시하기 위해서, DataFrame의 특정 위치를 찾는 방법에 대해 어느정도 익숙한 상태여야 한다. 이 부분이 궁금하신 분들은 필자의 Python Data Analysis 이전 포스팅들을 참고하도록 하자. 오늘 확인할 내용은 아래와 같다. [데이터 조건 검색] # pandas.DataFrame[ 검색 조건1 & 검색 조건2] : 검색 조건1, 2를 모두 만족하는 데이터만 출력 # pandas.DataFrame[ 검색 조건1 | 검색 조건2] : 검색 조건1, 2 중 하나를 만족하는 데이터만 출력.. 2021. 11. 20.
728x90
반응형