목록전체 글 (99)
한다 공부
파이썬 실습을 슬슬 마무리 짓고자한다 파이썬에서 tkinter랑 제일 안친했는데 이번에 좀 친해진... 듯 하다 마지막은 인치를 입력받아 센티미터로 변환하는 프로그램이다! 아주 단순하다 from tkinter import * #entry값을 .get()해서 센티미터로 변환하는 함수 def do_convert(): inch_val = float(cvt_from.get()) centimeters_val = inch_val * 2.54 cvt_to.set('{0} cm'.format(centimeters_val)) root = Tk() cvt_from = StringVar() #entry textvariable와 연결시킬 예정 cvt_to = StringVar() #Label textvariable과 연결시킬..
그림판이라고 하기에도 너무나도 단순한 그림 그리는 프로그램이다. 기능은 왼쪽 마우스를 누르고 그림을 그리면 파란펜으로 그림이 그려지고 '빨간펜' 이라는 버튼을 누르고 그림을 그리면 빨간펜으로 그림이 그려진다 canvas.create_oval을 쓰면 x0 y0을 왼쪽 상단 점으로 x1 y1을 오른쪽 하단 점으로 하는 사각형에 내접한 타원이 그려진다. 이걸 펜으로 쓸 예정이다. 작은 원들이 모여서 선을 그린다고 생각하면 된다. 가시적으로 보이게 하기 위해 두툼한 펜으로 그어봤다 원이 보이나용? canvas.create_rectangle을 써도 되는데, 이 경우에는 작은 네모들이 모여서 선을 그려낸다 아래가 canvas.create_rectangle을 쓴 것이다 네모네모가 보미나묘? 취향에 맞게 고르자 fro..
파이썬 실습하는데 재밌는 기능들이 많았다. 이번엔 메모장.. 비슷한 프로그램을 구현해보자 기능은 파일 아래에 '열기, 저장하기, 종료' -> 종료시 메세지 박스 도움말 아래에 '프로그램 정보' -> 메세지 박스 정도이다 from tkinter import * from tkinter import filedialog from tkinter import messagebox def open(): #파일 대화창을 askopenfile을 이용해서 만들고, 동시에 읽는다 file = filedialog.askopenfile(parent=window, mode='r') if file != None: lines = file.read() # 1.0은 line.column이다. #line은 1부터 시작하고 column은 0..
이번에는 파이썬으로 행맨을 해보자 행맨은 익히들 아는 그 게임.. 단어를 랜덤으로 고른다. -> 수많은 영어 단어를 적어둔 words.txt라는 파일을 준비한다. (첨부파일) 랜덤으로 고른 단어의 알파벳을 추측한다. 해당 단어에 알파벳이 있으면 어디에 그 알파벳이 있는지 알려준다 없으면 재시도한다. 총 기회는 10번이고 10번 안쪽으로 맞추면 성공이고 10번을 추측했는데도 틀리면 실패이다. import random guesses = "" turns = 10 #words파일을 열기 infile = open("words.txt", "r") #파일에서 모든 줄을 읽어서 리스트로 반환한다. =readlines() lines = infile.readlines() #랜덤으로 하나를 고른다 word = random...
평안하신지요? . . 드디어 계절학기가 끝났다 계절학기로 Python관련된 수업을 들었는데 일부 실습 코드를 포스팅하고자 한다 계절학기 때문에 정신이 없어서 일주일간 블로그 방치.. 하지만 종강한 날 포스팅하는 나, 칭찬해 첫 번째 프로그램은 누적 합 계산기이다. 덧셈, 뺄셈이 가능하고 위에 Label로 계산 결과가 뜬다 그 전에, Tkinter에 대해 알아보자! 팅커 아니고 킨터 아니고 티 케이 인터이다. tkinter란, 파이썬에서 그래픽 사용자 인터페이스(GUI: graphical user interface)를 개발할 때 필요한 모듈이다. (모듈이란, 프로그램의 일부를 가지고 있는 독립적인 파일이다. 모듈을 import해서 다양한 기능을 사용할 수 있다) 자바의 Label, Button등을 Tkin..
안녕하이소.. 큐 문제를 풀어봤다.. 아니 근데 이거 어제 금방 다 했는데 런타임 에러가 떠가지고 한 3시간 고민하다가 모르겠어서 백준 질문 게시판에 올리고 늦게 잤다. 아침에 일어나니 어떤 정말 고마우신 분께서 에러난 부분 알려주셨는데 int main() 써야하는걸 void main() 써서 에러난 거였다 약간 슬펐다.. 그 분 아니었으면 평생 몰랐을 듯 ㅠㅠ 근데 나 void main 쓰던 사람 아닌데 왜 void main 이라 했지? 봤더니 처음에 return값 관련해서 에러가 나서 이것 저것 만져보다가 (해당 에러는 중간에 수정 완료..) void로 고쳐보기도 하고.. 그랬었던 것 같은데 원래대로인 int로 수정을 안한 것 같다. 그러니까.. 오늘의 교훈 : 평소에 안하던 짓 좀 하지말자 문제를 ..
방가방가 안녕들 하신가요. 오늘은 큐에 대해 복습을 하려고 합니다. 큐란? 선입선출 (FIFO: first in first out) 구조로, 먼저 들어온 데이터가 먼저 나가는 자료구조를 의미한다. 쉽게 말하면 선착순이다. 추상 자료형의로 정의하면.. create(max_size) >> 최대 크기가 max_size인 비어있는 큐 생성 init(q) >> 큐 초기화 is_empty(q) >> 큐의 사이즈가 0이면 return true, 아니면 return false is_full(q) >> 큐의 사이즈가 max_size와 같으면 return true, 아니면 return false enqueue(q,e) >> is_full 검사를 하고 자리가 있다면 q의 끝에 e를 추가 dequeue(q) >> is_emp..
스택 하는김에 하나 더 해봤다. "맞았습니다" 뜨는게 상당히 기쁘다 ^^ 이 맛에 코딩하남 괄호를 검사하기위해 check_vps 라는 함수를 만들었다. 리턴값이 1이면 yes를 (메인에서) 출력하도록 리턴값이 0이면 no를 출력하도록 했다. check_vps에서는 문자열의 길이만큼 반복을 하고 ' ( ' 를 만나면 push ' ) ' 를 만나면 pop, 빈 상태에서 ' ) ' 를 만나면 return 0, 문자열을 다 돌았는데 스택에 뭔가 남아있으면 return 0 정도를 구현했다 #include #include #include typedef char element; typedef struct { element data[50]; int top; }StackType; void init_stack(StackT..
첫번째 공부할 자료구조는 스택! 스택이란? LIFO(Last in First out)으로, 데이터의 삽입과 삭제가 후입선출인 자료구조를 말한다. 가장 나중에 들어온 데이터가 가장 먼저 나가게 되고 가장 먼저 들어온 데이터는 가장 나중에 나가게 된다... 추상 자료형으로 정의하면 . . creat(size) >> 최대 크기가 size만큼인 비어있는 스택 생성 is_full(s) >> 스택의 원소수 == size면 true (stack is full), 아니면 false is_empty(s) >> 스택의 원소수 == 0 이면 true, 아니면 false push(s, item) >> is_full(s) 이 false면 맨 위 (top)에 item 추가 pop(s) >> is_empty(s) 가 flase면 ..