Python
-
파이썬 for 문에서, 언패킹에서 underscorePython/이것저것 파이썬 2021. 11. 29. 21:34
파이썬 커뮤니티에서 아래 코드에서 roll_num의 의미에 대해 질문이 올라왔더군요. from random import randint def roll(): return randint(1, 6) def main(): results = [] for roll_num in range(10): result = roll() results.append(result) print(results) main() 위 코드에서 roll_num 은 의미 없는 변수입니다. 언더스코어('_', under score, 언더바)로 바꿔주는 게 더 좋습니다. 뒤에 사용되지 않지만 비워둘 수 없는 변수에는 관례적으로 '_'를 사용합니다. from random import randint def roll(): return randint(1, ..
-
tkinter로 qrcode 출력Python/이것저것 파이썬 2021. 11. 19. 14:44
구글링 해보니 pyqrcode를 사용한 코드들이 많이 보이던데요. https://stackoverflow.com/questions/69240727/create-a-qrcode-using-tkinter pyqrcode는 2016년 이후 업데이트가 없었습니다. https://pypi.org/project/PyQRCode/#history 2021년에도 꾸준히 업데이트되고 있는 'qrcode'라는 라이브러리가 있더군요. https://pypi.org/project/qrcode/#history qrcode와 tkinter를 같이 사용하는 법을 구글링 해보았으나 찾기 힘든 검색어 조합이라 그런지 찾을 수 없었습니다.... qrcode 파일을 생성하는 방법만 있더군요... 그래서 직접 해결을 했습니다. 별로 어렵지 ..
-
[파이썬/동적계획법] 동전 거스름돈 계산Python/파이썬 자료구조 알고리듬 2021. 11. 17. 10:05
최근 7일 통계 중에 배낭 문제가 1위길래... 옛 글을 다시 읽어보니... 동전 거스름돈을 언급만 하고... 풀지 않았더군요. https://comdoc.tistory.com/entry/35-%EB%B0%B0%EB%82%AD%EB%AC%B8%EC%A0%9CKnapsack-problem-%ED%8C%8C%EC%9D%B4%EC%8D%AC 그리디는 간단해서 원문에 추가했습니다만... 그 외는 내용이 많아서 새 포스트로 올려봅니다. 1. 그리디 알고리듬(탐욕법) 우리나라 동전은 500, 100, 50, 10, 5, 1원이 있습니다. 이 상황에서는 그리디 알고리듬으로 문제를 풀 수 있습니다. 각 단계에서 최선의 값을 구하는 것이 전체적으로도 맞는 답이 됩니다. * 간략한 코드를 위해 동전은 크기가 큰 순서대로 ..
-
파이썬으로 이메일(gmail) 보내기..Python/이것저것 파이썬 2021. 11. 14. 20:03
페이스북 코딩 모임에 올라온 글. 이름, 이메일, 쿠폰 번호가 들어있는 다음 CSV 파일을 이용해 이메일을 보내는 코드를 작성하십시오. 단. 파이써닉하게~! 재미있을 것 같아서... 한 번 작성해 보았습니다. list.csv 1,김씨,kim@test_email.com,1111 2,이씨,lee@test_email.com,2222 3,정씨,jung@test_email.com,3333 1. 답답한 스타일입니다. 딕셔너리나 리스트에 CSV파일의 데이터를 넣은 뒤 메일을 보냅니다. * gmail을 이용하려면, 구글 계정의 보안 수준이 낮은 앱 허용을 체크해야 합니다. * 코드 내의 비밀번호 유출 주의~! from csv import reader from email.mime.text import MIMEText f..
-
tkinter를 class와 함께 사용하면 image가 사라져요.Python/이것저것 파이썬 2021. 11. 10. 08:01
Without Class 클래스를 쓰지 않으면 이미지가 잘 출력됩니다. (JPEG 파일은 지원하지 않으니 PNG나 GIF를 이용합니다.) from tkinter import * root = Tk() root.title('컴닥') root.geometry('640x480') image = PhotoImage(file='test.png') # jpeg 파일은 지원하지 않습니다. label = Label(root, image=image, relief='sunken') label.pack() root.mainloop() With Class 같은 코드를 클래스로 옮겨 봅니다. from tkinter import * class App: def __init__(self, root): image = PhotoImage..
-
파이썬 Tkinter 가볍게 시작하기Python/이것저것 파이썬 2021. 11. 10. 08:01
2줄의 코드로 시작합니다. from tkinter import * Tk().mainloop() 임포트 문에 *을 사용하는 것은 일반적으론 추천되지 않습니다. 하지만, GUI 프로그래밍에는 임포트할 것들이 너무 많습니다. 파이썬 공식 tkinter 문서에도 *가 사용됩니다. GUI 객체와 루프를 돌려주는 메서드만 있으면 창을 볼 수 있습니다. 코드를 나눠볼까요? from tkinter import * root = Tk() root.mainloop() Tk 클래스에서 root라는 인스턴스를 만들고, root 인스턴스의 루핑 메서드를 실행합니다. root 인스턴스 설정 from tkinter import * root = Tk() root.title('컴닥') root.geometry('640x480') roo..
-
[파이썬] from itertoolsPython/파이썬 자료구조 알고리듬 2021. 11. 8. 14:09
파이썬의 이터툴즈 중 조합형 이터레이터에 대해 알아보겠습니다. 조합형 이터레이터는 다음 4가지가 있습니다. product(), permutations(), combinations(), combinations_with_replacement() 가장 익숙한 순열부터 보도록 하죠. permutations(순열) 고등학교 교육과정에서 배운 개념. '순'열에는 '순'서가 있습니다. from itertools import permutations print(tuple(permutations((1, 2, 3)))) # ((1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)) 3가지 원소를 1열로 세운다면... 모든 경우의 수는 3! 이죠. 3 * 2 * 1..
-
파이썬 + SQLite 사용 후 몇 가지 기록Python/이것저것 파이썬 2021. 11. 4. 10:09
당연한 이야기 몇 가지 기억을 위해 남깁니다. 0. commit 데이터를 조작하는 INSERT, REPLACE, DELETE 등의 명령은 커밋이 필요합니다. 오토 커밋도 가능 하지만... from sqlite3 import connect DB = 'test.sqlite3' def query_and_commit(sql): """ INSERT, REPLACE, DELETE ... """ with connect(DB) as conn: cur = conn.cursor() cur.execute(sql) conn.commit() # commit def query(sql): """ SELECT ... """ with connect(DB) as conn: cur = conn.cursor() yield from cur...