list comprehension 간단 예
·
사소한 아이의 소소한 스킬/Python
x_list = [1.2, -1.3, 0., 2.2, 0., 5.3, 3.7] # 일반 if문 만을 이용하여 데이터를 입력한다. x1 = [value for value in x_list if value > 2] # 3항 연산자를 이용하여 데이터를 입력한다. x2 = [x if x > 2 else '' for x in x_list] print(x1) print(x2) 일반 if문과 삼항을 썼을때 결과는 좀 다르게 나온다. 일반의 경우 else문이 없기에 해당 조건이 해당되지 않을때 아무것도 수행하지않지만. 3항의 경우 else문이 있기에 특정 행위를 진행한다. 그리하여 최종적으로 나오는 결과가 달라질수밖에 없는 것 # x > 2에 해당되지 않는 항목은 list에 추가되지 않는다. [2.2, 5.3, 3.7..
QRadioButton 사용법
·
사소한 아이의 소소한 스킬/PyQT5
import sys from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox, QRadioButton, QVBoxLayout from PyQt5.QtCore import Qt class MyApp(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): rbtn1 = QRadioButton('First Button', self) # 라디오 버튼 텍스트 변경 rbtn1.setText('Change Text') # 라디오 버튼 텍스트 가져오기 print(rbtn1.text()) # 라디오 버튼 체크상태 확인 print(rbtn1.isChecked()) # 라디오 버튼 체..
Window, Label, Button 사용법
·
사소한 아이의 소소한 스킬/PyQT5
개인적으로는 라이센스때문에 PySide6를 사용하나.... PyQT5와 별 차이가 없기에.. PyQT5 관련된 자료를 올려보려고 한다.. 일단 처음엔 MainWindow와 간단한 라벨, 버튼 띄우기다 import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout class MyApp(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): btn1 = QPushButton('&Button1', self) btn1.setCheckable(True) btn1.toggle() btn2 = QPushButton(self) btn2.s..
아나콘다 환경에서 패키지 설치 실패시 방법
·
사소한 아이의 소소한 스킬/Python
현재 파이썬언어를 사용해보고있다.. 파이썬은 인터넷환경에서 pip install 기능을 이용하여 기타 패키지들을 설치할 수 있다 C#을 기준으로 한다면 비주얼 스튜디오에서 nuget을 이용하여 패키지를 설치하는것과 비슷한 맥락의 설치방법이다. 하지만 이것이 좀 개같은게... 설치가 잘 안된다... 특히나 내 경우에는 업무방이 인터넷이 안되기에.... 인터넷이 되도 안되는곳이 엄청나게 많기에.... 설치가 안된다.... 그리하여 오프라인으로 설치해야한다는 것.... 오프라인 설치방법은 인터넷 찾아보면 여러개 있지만.... 난 하나도 작동되지 않았다...... 그리하여 막 혼자 쌩쇼를 하며 찾아본 결과를 적어둔다!!! 일단 아나콘다/파이참 환경을 설치해준다 https://www.anaconda.com/pro..
008. Deque
·
사소한 아이의 소소한 스킬/Python
C#을 쓰면서 주로 list, dictionary등을 사용해왔다.. 물론 Queue도 메시지 처리하면서 많이 썼다 (중간에 메시지 처리를 안하는 것을 방지 하기 위하여) Python에서도 queue, list 등 모두다 지원하지만.. 추가로 Deque라는 것을 지원한다. 코드 ㄱ from collections import deque deq = deque() # Add element to the start deq.appendleft(10) # Add element to the end deq.append(0) # Pop element from the start deq.popleft() # Pop element from the end deq.pop() deque는 queue와는 다르게 맨 끝에 추가하거나, 맨..
008. Deque
·
사소한 아이의 소소한 스킬/Python
C#을 쓰면서 주로 list, dictionary등을 사용해왔다.. 물론 Queue도 메시지 처리하면서 많이 썼다 (중간에 메시지 처리를 안하는 것을 방지 하기 위하여) Python에서도 queue, list 등 모두다 지원하지만.. 추가로 Deque라는 것을 지원한다. 코드 ㄱ from collections import deque deq = deque() # Add element to the start deq.appendleft(10) # Add element to the end deq.append(0) # Pop element from the start deq.popleft() # Pop element from the end deq.pop() deque는 queue와는 다르게 맨 끝에 추가하거나, 맨..
007. dict
·
사소한 아이의 소소한 스킬/Python
딕셔너리 메서드 메서드 설명 setdefault(키, 기본값) 딕셔너리에 키-값 쌍을 추가, 키만 지정하면 값에 None을 저장 update(키=값) update(딕셔너리) update(리스트) update(튜플) update(반복가능한객체) 딕셔너리에서 키의 값을 수정, 딕셔너리에 키가 없으면 키-값 쌍을 추가 pop(키) pop(키, 기본값) 딕셔너리에서 특정 키-값 쌍을 삭제한 뒤 값을 반환, del 딕셔너리[키]와 같음 기본값을 지정하면 키가 없을 때 기본 값을 반환 popitem() 딕셔너리에서 임의의 키-값 쌍을 삭제하고 해당 키-값 쌍을 튜플로 반환 clear() 딕셔너리의 모든 키-값 쌍을 삭제 get(키) get(키, 기본값) 딕셔너리에서 특정 키의 값을 가져옴 기본값을 지정하면 키가 없..
006. list, tuple
·
사소한 아이의 소소한 스킬/Python
메서드 설명 append(값) append(리스트) 리스트 끝에 값을 추가, 리스트[len(리스트):] = [값]과 같음 리스트를 넣으면 리스트 안에 리스트가 들어감 extend(리스트) 리스트 끝에 다른 리스트 연결, 리스트[len(리스트):] = [값, 값]과 같음 insert(인덱스, 값) 리스트의 특정 인덱스에 값을 추가 pop() pop(인덱스) 리스트의 마지막 값을 삭제한 뒤 삭제한 값을 반환 인덱스를 지정하면 해당 인덱스의 값을 삭제한 뒤 삭제한 값을 반환, del 리스트[인덱스]와 같음 remove(값) 리스트에서 특정 값을 삭제 index(값) 리스트에서 특정 값의 인덱스를 구함 count(값) 리스트에서 특정 값의 개수를 구함 reverse() 리스트에서 값의 순서를 반대로 뒤집음 so..
005. datetime
·
사소한 아이의 소소한 스킬/Python
c#에서 자주 쓰던 datetime.. python도 당연히 지원하고 있다.. 하지만 역시나 사용하는 방법은 다르지.. 사용하는 방법은 아래와 같다. from datetime import datetime datetime.now() datetime(2020, 7, 18, 13, 26, 23) datetime.datetime(2020, 7, 18, 13, 26, 23) 상단에 datetime import 후 datetime(년, 월, 일, 시, 분, 초) 출력의 경우 datetime.now().tostring("yyyy/MM/dd HH:mm:ss.fff) 였던것을.. 포맷 코드 설명 예 %a 요일을 짧게 표시합니다. Sun %A 요일을 길게 표시합니다. Sunday %w 요일을 숫자로 표시합니다. 일요일을 ..
004. 문자열
·
사소한 아이의 소소한 스킬/Python
문자열을 건드려보자.. 개발을 하면서 문자열을 정말 질리도록 쓴다.. 물론 int변수로도 처리할수있지만.. 문자열 변수야... 지난번 포스팅에서 말했고... 기초적인거부터 하나하나.. 작성.. lang = 'python' print(lang[0], lang[3]) # p h 위와같이 문자열 지정 후 인덱스를 지정하여 원하는 문구만 가져올수있다. (하지만 값 변경은 불가) license_plate = "12가 3456" print(license_plate[-4:]) # 3456 파이썬은 리스트구조에서 : 구문을 이용하여 참 여러가지 슬라이싱이 가능하다. : 문구를 기준으로 앞은 앞에서 몇번째부터 가져올것인지, 뒤는 뒤에서 length 정보 이다. -가 들어간다면 역방향을 나타내는 것. 그리하여 위 구분은 ..
003. 변수 선언
·
사소한 아이의 소소한 스킬/Python
파이썬을 이제 배우는 사람으로써... 굉장히 어색한 문법이다. 변수선언... 기존 C#을 쓰면서는 무조건 변수선언 시 int, string, double, float, bool 등을 지정하여 사용하였으나(var도 잘 안썻음..) python은... 다르다.. 변수선언 자체가 없다.. 그냥 int 변수에 10이라는 값을 넣고자 한다면... A = 10 끝이다... 뭐 이런... 그러다보니 나는 개인적으로는..(아직 적응이안되서라고 생각하는중) 어색하고.. 이게 대체 무슨 타입이지 하는 생각이 너무많이 드는 편.. 만약 다른 타입을 선언한다고 하면... B = "string" C = 223F D = 22D 이렇게 작성하면 끝.. 뒤에 세미클론도 없다.. ( Python은 기본적으로 코드 띄워쓰기로 구문을 비..
002. fstring
·
사소한 아이의 소소한 스킬/Python
2번째는 변수선언하는거를 하려고했는데... 일단 fstring을 좀 써야할 것 같다. fstring이란 string을 조금 더 편하게 쓰기 위한 방법중 1개다. C#으로 예를 들면 string.format 을 이용하여 내가 원하는 string을 변수들과 같이 작성하여 원하는 포맷으로 작성하는 함수가 있다. fstring이 이와 같은 기능을 해주는 것.. 즉, 예를 들자면 변수 A에 "Hello World", 변수 B에 123 이라는 값이 들어가있다는 가정하에 Hello, World, (123) 이라는 값을 출력한다고 하면...... 기존 대로한다면 Console.WriteLine(A + "(" + B + ")" ) 라고 작성을 하여야 원하는 대로 작성이 될 것이다. 하지만 string.format을 쓴다..
001. Python을 시작해보자
·
사소한 아이의 소소한 스킬/Python
업무상 파이썬을 배워야 하는 상황이 오고 말았다.. 그리하여 파이썬을 공부하기 시작... 첫 단추는 역시나 Hello, World 찍기가 아닐까 싶다. C printf("Hello, World"); C++ cout
내일 출근하기싫다....
·
사소한 아이의 소소한 스킬/Python
휴가가 끝나간다.... 출근하기시르다..... 하지만...해야겠지... 출근전 커피.. 오송까지 가서 먹었드아.. 뷰가좋다....... 아 낼 시렁 ㅠㅠㅠ
가즈아 대전..!!
·
사소한 아이의 소소한 스킬/Python
대전시티즌의 35라운드 부천과의 경기..!! 전반 답답함의 연속.. 축구를 배워본적도없는 사람이지만... 윙백....아..답답... 좀 더 올라와줬으면 좋겠는데...제자리에 있는 부분이... 좀..그렇다.... 못배운 사람의 생각.. 그래도 공격상황에서 정말 빠르게 사이드 돌파해주는 모습은 너무보기좋았다.. 결국 결과는 3대1 승리..!! 1위 승격은 힘들거같고... 현재 3위니 준준플레이오프부터 시작할 확률이 높은데.... 제발 승격갔으면...안가도...열심히 봐 줄 마음은 있지만..!!
2022년 여행
·
사소한 아이의 소소한 스킬/Python
일단..아직 여행이 끝나진않았다...첫날일뿐... 내 여햄의 시작은 천안을 들렸다가.. 평창 육백마지기에서 첫 차박을 하는것... 하지만... 비가옵니다..... 거기다가...천안까지 올라갔는데도... 4시간이걸린다는...네비의 시간... 이건 살짝 에바아닌가... 하는 마음.... 그래서...차를 돌려버리고야 말았다.... 집 근처 한시간 거리에서...그냥 묵는것으로..... 그리하여 간단한 저녁... 그리고 간단한..음주... 고기를 구워먹을까도 고민했으나...그건 살짝.... 그리고 첫날이 이렇게 간다.... 내일은 그냥 집으로갈지.... 아니면 또 다른곳을 찾아 떠날ji.... 집떠나면 고생인건데..... 고민이크다... 2022년 오랜만이 여행이... 참..내 계획대로 되지않는다.....
대전하나시티즌 경기관람..!
·
사소한 아이의 소소한 스킬/Python
오랜만에 직관..!! 시즌권인데...잘 안오다가...오랜만에 왔다..!! 다른 일 겸해서 온건데..다른일은 못한....하아.. 담주에 또 가야할듯... 아무튼...왔으니...승리가자..!!!
알고리즘...
·
사소한 아이의 소소한 스킬/알고리즘
개발을 하다보면 정말 많은 알고리즘을 만나게된다. 아니 알고리즘을 통해서 개발을 진행한다. 그것이 유명한것이든.. 아니면 개발중인 시스템에 맞춘 자체 알고리즘이든... 그리하여 여러가지 유명?중요?기초? 알고리즘들을 다뤄볼까 한다. 대충 추려보면... 재귀 알고리즘 최대값 또는 최소값 찾기 두 정수의 최대공약수(GCD)를 빠르게 구하기 팩토리얼 피보나치 합계 정렬 알고리즘 선택 정렬 버블 정렬 퀵 정렬 삽입 정렬 쉘 정렬 힙 정렬 병합 정렬 기수 정렬 탐색 알고리즘 순차 탐색 이진 탐색 레드 블랙 트리 탐색 해쉬 알고리즘 해쉬 테이블 그래프 알고리즘 그래프 순회 깊이 우선 검색 너비 우선 검색 문자열 검색 알고리즘 패턴 문자열 검색 일단 이정도..? 이 알고리즘들을 전부다 확인하고 C#으로 구현하는것을 ..
041. json을 처리해보자
·
사소한 아이의 소소한 스킬/C#
이번엔 JSON이다. JSON은 사실 나도 잘 모르는............ 단순 XML같은 자료라고만 알고있다... 그리하여 JSON은 언어가 아니므로 어디서든 사용할 수 있는 만국 공통 자료형태라고 생각하면 좋을 것같다. 근데.. 이런 JSON을 왜 만들었나.. XML도있는데..? 파싱의 속도, 보기편함 등의 이유로 만들어졌다고 한다. XML보다 파싱도 빠르고 보기도 편하다나....... 사실 실제 프로젝트에서 사용해본적은 없기에 아직까지 와닿진않는다.... 그렇다고 사용하는법을 몰라선 안되는 법이니.. 사용하는 법을 알아보자..!! 간단하게 class를 만들고 해당 class를 갖고있는 변수데이터를 JSON으로 만든 후 파일로 저장하는 코드를 확인해보도록 하자. 일단 JSON을 사용하기 위해서는 Nu..
039. 상속의 방법(virtual, abstract, interface)
·
사소한 아이의 소소한 스킬/C#
이전에 객체지향에 대해 알아봤다. 그 중 상속에 대해 더 적어볼까 한다. 상속은 클래스 만들지 정말 자주 쓰는 기능.. 간단하게 자동차에 대해 만든다 하더라도 자동차의 클락션 기능은 모든 자동차에 들어가는 기능이고 일부 기능들은 각 제조사에 따라 들어갈수도 안들어갈수도있다. 이러한 부분들을 생각하며 클래스를 구성한다면 중복되는 코드들을 상당히 줄여나갈 수 있다. 그리하여 상속하는 방법중 3가지 virtual, abstract, interface을 알아보도록 하자. 1. Virtual Virtual은 말 그대로 가상이다. 부모클래스에서 선언을 했더라도 자식클래스에서 재정의하여 사용하는 것이 가능하다..! 또한 재정의를 하지 않아도 사용 가능! 즉 재정의가 필수가 아닌것이다.! 하지만 재정의를 하기 위해서는..
038. 객체지향의 특징
·
사소한 아이의 소소한 스킬/C#
이번엔 클래스에 대해 알아보자... C#은 OOP(Object Oriented Programming) 언어이다. C는 PP(Procedural Programing) 언어구요 다르게 말하면 C는 절차지향언어, C#은 객체지향 언어! 이렇게 말하면 또 쉽지... 절차지향은 위에서부터 차례대로 컴파일하므로 변수 선언, 함수 선언등을 언어의 상단에다가 해주어야 한다. 하지만 객체지향은 객체단위로 컴파일을 하므로 굳이 위쪽에 선언을 해주지 않아도 된다. 또한 객체지향은 캡슐화, 다형성, 클래스 상속등의 기능등의 기능을 제공하고, 이러한 기능때문에 객체지향을 많이 쓰게 된다. ( 그래도 C가 전세계에서 가장많이 쓰는언어지만.. 그만큼 빠름 ) 여기서 클래스 상속과 캡슐화, 다형성에 대해서 알아보자. 내가 생각하기에..
037. Partial Class
·
사소한 아이의 소소한 스킬/C#
이번엔 Partial Class이다. 사실 현재까지는 많이 사용하지 않는 방식.. 하지만 코드가 길어지고 하다보니 써봐야하는생각이 많이 든다. ViewModel에 Binding 되는 Property들, 호출하는 Command, 또한 기본 생성장/소멸자/Dispose등 많아질수록 위치가 헷갈린다.. 대부분 F12키를 이용해서 이동하지만.... 생성자 한번 찾아가려면..고생이다.. 다음 플젝부터는 좀 구분해서 해보는것도 좋은 방법일듯싶다. 그리하여 코드 ㄱㄱ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Colored by Color Scripter cs UI는 어렵지 않게 꾸미겠다.. 그냥 바인딩되는 TextBlock 한개.... 코드비하인드도 ..
036. Find Window
·
사소한 아이의 소소한 스킬/C#
36번째 글... 진행합니다.... 이번엔 너무 간단한 주제... WPF를 개발하다보면 정말 많은 Window가 나온다.. 해당 Window를 제어할 수 있는 방법이다 간단한 API만 사용하면 끝난다. 바로 ㄱㄱ 1 2 3 foreach( Window window in Application.Current.Windows ) { Console.WriteLine(window.Title); } Colored by Color Scripter cs 끝이다...... Application.Current.Windows 변수에는 현재까지 생성된 Window들이 전부다 들어가있다.. 해당 Window의 Name, Window Type등을 통해 MainWindow나 Subwindow등을 찾아서 제어해주면 끝난다. 만약 응용..
035. XmlSerialize
·
사소한 아이의 소소한 스킬/C#
오랜만에 남긴다....... 35번째.. xmlserialize... xml은 정말 흔히 쓰이는 input/output 파일이다. 이 파일을 통해 parsing도 하고 넘겨주기도 하고... 그래서인지 xml에 대한 serializer는 굉장히 잘되어있는 편.. 바로 코드 ㄱㄱ 그냥 viewmodel도 필요없이... 걍 코드 비하인드로 진행해보자.....(코드는 들어가있으나..없어도 무관) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Colored by Color Scripter cs 단순 텍스트 박스 1개에 버튼 2개... 코드비하인드는 1 2 3 4 5 6 7 8 9 10 11..
034. Drag & Drop
·
사소한 아이의 소소한 스킬/C#
Drag & Drop이다. Drag&Drop은 언제해도 복잡한거같다.... 이해를 별로 하고싶지가 않아서일까....... 이번에 적는것도 이해는 잘안하고...그냥 거의 실습위주.............. 일단... ListView간의 Drag & Drop으로 데이터를 복사하는 부분을 확인해보자. 일단 XAML! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Colored by Color Scripter cs 단순 2개의 ListView를 선언해주고 각 ListView에 ViewModel의 데이터를 바인딩. 또한 드..
33. ToString Format
·
사소한 아이의 소소한 스킬/C#
이번엔 ToString 포맷이다. 개발을 하면서 굉장히 많은 데이터를 확인해보아야 한다. bool이든, int등, float이든, string이든.. 이러한 값들을 Console이나 MessageBox, Label등에 표출하기 위해 string 값으로 변환을 해야하는데.. 이때 사용되는 것이 String의 ToString() 함수! 사용법은 너무 간단하게 그냥 선언된 변수에 ToString만 해주면된다. 1 2 3 int value = 222; Console.WriteLine(value.ToString()); cs 이게 끝... 하지만.. 이거 적자고..블로그에 적을리는 없지.. ToString에는 여러 파라미터가 들어간다. 파라미터에 따라 값을 다르게 표출해주는 것.. 이 파라미터가 굉장히 많다... ..
032. Filter Grid
·
사소한 아이의 소소한 스킬/C#
DataGrid를 사용했으면... Filter도 확인해보고 싶을 것이라 생각된다. DataGrid에서의 필터기능은 단순 RecordFilter 기능을 이용해서 Filter를 넣을수도 있지만.. 해당 컴포넌트를 사용하면 더더욱 보기 좋을 것으로 생각된다. 해당 컴포넌트는 바로 FilterGrid.. Nuget에서 FilterDataGrid를 검색해보자 해당 Nuget 설치!!! 설치가 완료된 모습! 그렇다면 설치한 DataGrid를 선언해보자!! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 Colored by Color Scripter c..
031. DataGrid
·
사소한 아이의 소소한 스킬/C#
가장 많이 사용되는 Component를 할때가 된거 같다. DataGrid... DataGrid는 테이블형태로 표출하는 Component로써 굉장히 많이 사용된다. 특히 주로 사용되는 부분은 로그정보 표출이 아닐까 싶다. 아무튼 해당 DataGrid를 표출하는 방법에 대해 적어보고자 한다. 바로 코드 고고 이번엔 MVVM 패턴으로 작성해보도록 하자..!! 일단 UI 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 Colored by Color Scripter cs 복잡하게 하지않는다.. 단순 DATAGRID 1개와 BUTTON 3개가 끝....