본문 바로가기

Python20

[python] 간단한 예제로 알아보는 재귀함수 11월에, 분명 얼마전에 재귀함수를 공부했는데 벌써 까먹은 느낌이 들어서 간단하게 복습을 해보았습니다. 저는 장기 기억력이 정말 안 좋아서 이렇게 복습을 틈틈히 해줘야 하는데 그게 어렵네요ㅎㅎ 그래서 직장에서도 저한테 복잡하거나 헷갈리는 일을 할 때 빠르게 할 수 있도록 매뉴얼을 만들어 두고 있어요 자주 있는 일이 아닌 일을 처리할 때 유용하게 쓰고있는 것 같아요 직장에서 지출 및 예산관리를 담당하고 있는데 예수금을 잡거나 카드 오사용으로 인해 카드사용대체를 한다든가 할때, 더존프로그램에서 캡쳐를 해서 설명을 붙여 저장해 두고 다음에 그런 일이 발생하면 다시 그 파일을 열어서 봅니다. 저장해둘 때는 '이런 경우가 또 있으려나'하면서 귀찮을 때도 많지만 해두면 분명 쏠쏠하게 쓰게 되더라구요 덕분에 그냥 지.. 2020. 12. 7.
[python] enumerate함수 1. enumerate 함수 순회가능한 변수의 인덱스와 내용물을 튜플의 형태로 순서에 따라 반환한다. enumerate는 “열거하다”라는 뜻이다. 이 함수는 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 리턴한다. 보통 enumerate 함수는 아래 예제처럼 for문과 함께 자주 사용된다. >>> for i, 내용 in enumerate(['갑', '을', '병']): print(i, 내용) 0 갑 1 을 2 병 for문처럼 반복되는 구간에서 객체가 현재 어느 위치에 있는지 알려주는 인덱스 값이 필요할때, enumerate 함수를 사용하면 매우 유용하다. 2. 예시 '선착순응모자.txt'파일에 사람 이름이 300개 저장되어 있다고 가정하자(n=.. 2020. 12. 4.
[python] 달팽이 배열 풀기 요즘 퇴근하고 그리고 주말에 파이썬 알고리즘 문제를 풀고 있어요. 12월부터 앱을 하나 만들어볼까 하는데 그전에 알고리즘 문제는 어떤 건지 알고싶어서 하고 있는데 재미가 있어서 계속 하다보니 11월 안에는 알고리즘 기초책 한권을 다 끝낼 것 같아요!ㅎㅎ (실력이 상승했는지는 답 못함^^;) 알고리즘에도 여러 유형이 있지만 오늘은 복습할 겸 달팽이 배열에 대해 쓰도록 하겠습니다! 책 '코딩강화파이썬'(저자 이규호 (2019)) p.237,238 참고하여 풀었습니다. 1. 문제 사용자에게 n을 입력받아 다음과 같이 달팽이 모양으로 자연수를 출력하는 프로그램을 작성하라. 단, 재귀 호출은 사용하지 않는다.(힌트: 2차원 리스트 사용) n 1 2 3 4 모양 1 1 2 4 3 1 2 3 8 9 4 7 6 5 1.. 2020. 11. 22.
[python] 람다함수, filter() 1. 람다함수 : 이름이 없는 함수. 한 줄에 정의해 간단하고 쉽게 사용한 후 없어지는 1회용 함수이다. 단순한 함수를 만들어 다른 함수의 인수로 넘겨줄때 유용하게 사용 #1_활용 >>>def mul(x,y): return x*y # 익숙한 사용자 함수 정의 >>>(lambda x,y:x*y)(3,4) # 람다함수 이용하여 함수이름 없이 정의 12 #2_활용 >>>sum = lambda x,y: x+y >>>sum(5,9) 14 #3_활용(람다+조건) >>>(lambda x,y: x if x>y else y)(2,8) 8 => 함수(function)의 인수에 함수를 또 다시 지정할때 => 함수의 return값으로 함수 지정하고 싶을 때 사용 2. filter() 함수 : 순회가능(literable)한 데.. 2020. 11. 8.
[python] list comprehension(리스트 내포) 리스트 내포란? >>> 반복문 또는 반복문과 조건문을 사용하여 리스트를 정의하는 방법 1. 예시 suit = ['♠', '♣', '♡', '◇'] denomination = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'] >>> ♠A ♠2 ♠3 ... ♣A ♣2 ... 두 리스트를 이용하여 위와 같이 출력되게 하려면 어떻게 해야할까? 1-1. 첫 번째 방법 suit = ['♠', '♣', '♡', '◇'] denomination = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'] for i in suit: for j in denomination: # 변수 j부터 .. 2020. 11. 7.
[python] for _ in range 2차원 리스트 코딩하기 >>> [[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]] 어떻게? # 2차원 리스트 만들기 a= [] count = 0 for i in range(5): a.append([]) # 결과: [[], [], [], [], []] for _ in range(5): count += 1 a[i].append(count) print(a) # 결과:[[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]] 1. 숫자들을 넣을 빈 리스트 만들기.. 2020. 10. 31.
[python_gui] Alarm 만들기_threading적용 *주의* 이거저거 딴소리 많음 thread에 관해 필요한 정보는 아래에서 찾아가세요 저번 글에서 적었던 대로 제 알람에는 큰 문제가 있었어요. 1. Problems 가. 알람을 설정하기 위해서 set버튼을 클릭하면 맨 위에 시간이 흘러가지 않고 멈춘다. 나. set버튼을 누르면 (응답없음)이 떠서 현재시간과 1분 이상 차이나는 알람을 만들지 못한다. 기껏 알람을 만들었는데 오류가 떠서 몇 분 짜리 알람도 만들지 못한다니 너무 슬펐어요 다른 사람 블로그도 참고하고 특히 해외 사이트랑 유튜브도 꽤 참고했는데 많은 분들이 While True로 해서 하더라구요. 그래서 저도 그렇게 했는데 껍데기만 알람인 창이 되었습니다ㅋㅋㅋㅋ 2. set 버튼에 command 인 set_alarm함수 정의 아래는 set버튼에 .. 2020. 10. 19.
[python_gui] 2. Alarm 만들기(오류 및 안되는 점 정리) 휴일에 집에 있으면 하루종일 침대에 달라붙어 있게 되는 것 같아요. 평일에는 출근하느라고 시간이 없어서 공부시간이 적으니 휴일에 빡세게 해야하는데 맘과 몸은 다르게 움직이네요ㅎㅎ 그래서 지금은 꾸역꾸역 도서관에 와서 파이썬키고 알람을 만들고 있어요. 하지만 열심히 검색하고 코드도 쳐보고 하지만 정말 상상하지 못한 곳에서 문제가 빵빵 터지네요 역시 실제로 해봐야 이런 게 문제가 되는구나 하고 알게 되는거 같아요. 그래서 앞으로 해야 할 것들과 현재 오류가 나는 점 등을 정리해보고 앞으로 그것들을 해결해 보도록 할거에요. ▶ 앞으로 할 것들 및 오류 정리 # set버튼 클릭 def set_alarm(): # hour 입력 확인 # h = int(hourTime.get()) if hourTime.index(".. 2020. 10. 11.
[python_gui] 1. Alarm 만들기 파이썬을 더 공부하고자 small project를 만들어 보기로 했어요! 알람을 만들어 봐야 겠다고 생각해서 만들고 있는데 제가 정말 아는게 하나도 없더라구요ㅠㅠ 틀을 만드는 법만 알지 알람 속 알멩이에는 뭐가 들어가는지 모르니까 하나부터 열까지 검색을 하면서 하고 있어요 그래서 파이썬 실력이 느는지는 모르겠고 영어독해는 확실히 느는 것 같은 느낌이 드네요ㅎㅎ 이게 맞는 건지 모르겠지만 일단 끝까지 만들어 볼거에요!ㅋㅋㅋ #1 현재 날짜와 시간을 넣어봅시다! 알람인 만큼 현재 날짜와 시간을 넣어주고 싶었어요!!(그냥 제 취향ㅎㅎ) 어제 맨 처음에 datetime으로 변수를 만들어서 root에 냅다 집어넣었더니 시간이 안 흘러가더라구요 시간이 흐르게 하는 방법을 고민하다가 오늘 우연히 발견했는데 처음 본 .. 2020. 10. 5.
[python_gui] frame 예쁘게 조정하기 오늘도 나도코딩 님의 "파이썬 무료 강의 (활용편2) - GUI 프로그래밍"을 따라하며 gui공부를 하고있습니다. 제가 gui로 알람을 만들겠다고 생각하면서 제일 처음 생각했던 것은 '내가 원하는 대로 프레임 간의 간격을 어떻게 조정할 수 있지?' 였습니다. 그당시 저는 여러 위젯들을 아래로 쭉 쌓는 것밖에 할 줄 몰랐어요. 제가 위젯들을 만들면 다 화면 중앙에 세로로 쭉 하고 배열되더라구요ㅎㅎ 그래서 모든 위젯들의 가로 세로를 일정한 간격으로 배열할 수 있는 방법에 대해 제일 궁금했습니다. ㅎㅎ(가장쓸모없는 것이 아닐까...ㅠㅠ) 다시 본론으로 돌아가서 아래 그림은 여러 frame을 만들고 각 frame에 위젯을 각각 넣어 배열한 상태입니다. 총 6개의 frame이 들어갔는데 각 frame 사이 간격이.. 2020. 10. 1.
[python_gui] DoubelVar()가 뭐였지? 추석연휴를 맞아 gui를 이용하여 작은 프로젝트를 따라 만들고 있습니다. progress var를 만들던 중 DoubleVar()라는 것이 나왔어요 분명 봤었는데 기억이 안나서 간단히 복습차원으로 정리해보았습니다. IntVar, DoubleVar, StringVar tkinter 모듈안에는 IntVar, Doublevar, Stringvar클래스가 정의되어있다. IntVar: 정수 , Doublevar: 소수, StringVar: 문자열 을 나타내는 클래스이다. 위 클래스들은 위젯에 쓰이는 값(value)들을 객체로 만들 때 이용한다. 즉 위젯에 쓰이는 값(value)은 IntVar, Doublevar, Stringvar의 객체(object)이어야만 한다. # 체크박스 chk_var1 = IntVar().. 2020. 10. 1.
[오류] 파이썬 gui _grid 오늘은 주말이니 파이썬으로 gui프로그래밍을 집중해서 공부하고 있어요 파이썬으로 알람을 만들어보고싶어서 아주 쥐똥만큼이라도 꾸준히 하려고 노력하고 있습니다.(퇴근하고 공부하기 넘 힘들어ㅠㅠㅠ) grid()로 버튼을 배치하는 것에 대해 공부하고 있는 중 뜬금없이 오류가 났어요! 분명히 강사님과 똑같이 했는데 왜 저만 오류가 났는지 그 원인에 대해 간단히 찾아봤어요. 내가 친 오류 코드 from tkinter import * root = Tk() root.geometry("350x430") # 15. 스크롤바 : 스크롤바와 대상이 되는 위젯을 하나의 프레임에 넣는게 관리하기 좋다. frame = Frame(root) frame.pack() scrollbar = Scrollbar(frame) scrollbar.. 2020. 9. 26.