"파이썬 유치원 (영아반)"의 두 판 사이의 차이

잔글 ("파이썬 유치원 (영아반)" 문서를 보호했습니다 ([편집=자동 인증된 사용자만 허용] (무기한) [이동=자동 인증된 사용자만 허용] (무기한)))
 
(사용자 12명의 중간 판 185개는 보이지 않습니다)
16번째 줄: 16번째 줄:
==영아반 친구들==
==영아반 친구들==
===고양이===
===고양이===
====제목====
함께 쓰고 만드는 한글 입력기
====설명====
====설명====
저는 간단한 여러 기능들을 수행할 수 있는 프로그램을 만들고 싶어요.
저는 간단한 여러 기능들을 수행할 수 있는 프로그램을 만들고 싶어요.
 
====실행화면====
실행화면을 넣어주세요.
====log====
====log====
+5/9, 약 9:45 나눗셈 기능 추가
+5/9, 약 9:45 나눗셈 기능 추가
+5/23, 약 9:5 김왼손님 정보 출력장치 추가 & 지신의 이름 출력 기능 추가
====코드====
====코드====
<source lang='python'>
<source lang='python'>
orders = ['출력', '덧셈', '뺄셈', '곱셈', '나눗셈']
orders = ['출력', '덧셈', '뺄셈', '곱셈', '나눗셈, '이름', '김왼손']
print('안녕하세요? 한글 코드 입력기에 오신 것을 환영합니다.')
print('안녕하세요? 한글 코드 입력기에 오신 것을 환영합니다.')
print('-----------------------------------------------')
print('-----------------------------------------------')
76번째 줄: 82번째 줄:
             else:
             else:
                 print('몫은', x // y, '입니다')
                 print('몫은', x // y, '입니다')
        elif order =='이름':
            print(user)
            print('-----------------------------------------------')
        elif order =='김왼손':
            print('1 김왼손/n
                    자동차에 세상을 보여주는 연구원. 좋아하는 일만 하며 재미있게 살고 싶은 요즘 젊은이./n
                    가르치는 게 좋아 공부하는 선생이자, 배우는 게 좋아 가르치는 학생. 프로그래밍이라면 치를 떨던 프포자./n
                    였지만 지금은 김왼손의 왼손코딩을 운영하는 인기 유튜버./n
                    저서: Hello Coding 한입에 쏙 파이썬 (한빛미디어)/n
                    유튜브 채널: 김왼손의 왼손 코딩/n
                    인스타그램: 김왼손 (@lefty_khim)/n
                    Lefty Khim/n
                    인기 유튜버/n
                    -강의 실력 만점
                    -목소리 좋음/n
                    -기타 연주 좋음/n
                   
                    2 왼손코딩/n
                    유튜브 코딩 교육 채널 김왼손의 왼손코딩을 운영한다./n
                    Python을 주로 강의하고 Vim, 통기타, 프레지 같은 것들도 강의한다./n
                   
                    3 같이 보기/n
                    미운코딩새끼/n
                    유기농냠냠파이썬/n
                    Hello Coding 한입에 쏙 파이썬')   
     else:
     else:
         print('제대로된 명령어를 입력해 주세요.')
         print('제대로된 명령어를 입력해 주세요.')
         print('-----------------------------------------------')
         print('-----------------------------------------------')
</source>
</source>
[https://www.youtube.com/channel/UC0h8NzL2vllvp3PjdoYSK4g 김왼손의 왼손코딩]
====댓글====
* 큐벨리아: 안녕하세요 ^^
* 김왼손: 나중에는 GUI도 적용해 보면 좋을것 같네요. :)


===Projects.Kinder===
===Projects.Kinder===
====제목====
코린이 달력
====설명====
====설명====
파이썬유치원을 졸업하고, 파이썬 초/중/고/대 까지 졸업하고 싶어요!!  
파이썬유치원을 졸업하고, 파이썬 초/중/고/대 까지 졸업하고 싶어요!!  
* 1) 구구단 : 숫자 입력시 1~9까지 구구단 계산하여 프린트 / 문자 입력시 숫자 입력 안내 문구 프린트
* 1) 구구단 : 숫자 입력시 1~9까지 구구단 계산하여 프린트 / 문자 입력시 숫자 입력 안내 문구 프린트
* 2) 달력(1차 : 단순 프린트 / 2차 : 원하는 년도,월 입력시 출력 / 3차 : 년도 전체 달력 또는 원하는 년도, 월 출력 선택)
* 2) 달력
** 1차(2020.05.00) : 단순 프린트
** 2차(2020.05.00) : 원하는 년도,월 입력시 출력
** 3차(2020.05.18) : 년도 전체 달력 또는 원하는 년도, 월 출력 선택
** 4차(2020.05.19) : 메뉴 생성, 종료 기능 추가, 문자 입력시 안내 추가
** 5차(2020.05.20) : 메뉴 화면 GUI 로 생성, 버튼을 통해 실행, 일정입력/일정조회(부분, 전체) 추가
** 6차(2020.05.21) : 메뉴에 입력창 생성, 입력 값을 활용하여 실행
** 7차(2020.05.22) : 연도/월 입력 창을 콤보 박스로 변경(for 입력오류 제한), 달력/일정 출력창 생성, 입력창(일/시간/일정) 추가, 메시지 박스를 통해 실행 내용 안내 추가 ** 동일한 일자(key)에 여러 값(value)을 추가할 수 있도록 수정 필요 → 시간을 입력해서 해결
** 8차(2020.05.25) : 일정삭제 기능 추가, 일정조회(전체) 실행시 정렬 후에 출력 & textbox 에 출력 & + 새로운 창에 출력
** 9차(2020.05.28) : SQlite DB 적용 완료(*프로그램이 종료 후 재실행되어도 기존 데이터가 지속적으로 관리될 필요성을 느끼게됨)
** 10차(예정) : **일정조회(부분) else 구문 오류 해결 필요 **일정조회(전체) 실행시 줄바꿈하여 출력 필요 & date 정렬 후에 출력 필요(DB 화 하면서 기존 기능 삭제됨)


====실행화면====
실행화면을 넣어주세요.
====코드====
====코드====
<source lang='python'>
<source lang='python'>
97번째 줄: 152번째 줄:
     else:
     else:
         print('Only input a number!')
         print('Only input a number!')
</source>
</source>


<source lang='python'>
<source lang='python'>
# 2) 달력
# 2) 달력
import calendar # Calendar Module
import calendar
import tkinter as tk
import operator
from tkinter import*
from tkinter import ttk
from tkinter import scrolledtext
from tkinter import messagebox
import sqlite3
 
# Function 정의
 
def create_table():
   
    conn = sqlite3.connect('C:\\Users\\XXXX\\Documents\\DB\\testdb.db')
    cursor = conn.cursor()
 
    cursor.execute("create table events( date char(20), event char(20))")
 
    cursor.close()
    conn.close()
 
def mm(): #'월' 버튼
    yyyy = eval(combx_1.get())
    mm = int(combx_2.get())
 
    month = calendar.month(yyyy, mm, w = 2, l = 2) #월 출력
 
    txt.delete(0.0, END)
    txt.insert(INSERT, month)
 
def yyyy(): #'년' 버튼
    yyyy = eval(combx_1.get())
 
    year = calendar.calendar(yyyy, w = 1, l = 1) #년도 출력
 
    txt.delete(0.0, END)
    txt.insert(INSERT, year)
 
def create_1(): #'일정입력' 버튼 = YYYY/MM/DD/HH
    if bool(combx_1.get()) and bool(combx_2.get()) and bool(combx_3.get()) and bool(combx_4.get())== True:
 
        conn = sqlite3.connect('C:\\Users\\XXXX\\Documents\\DB\\testdb.db')
        cursor = conn.cursor()
 
        date = combx_1.get() + '/' + combx_2.get() + '/' + combx_3.get() + '/' + combx_4.get()
        event = entry_1.get()
   
        cursor.execute("insert into events(date, event) values(?, ?)", (date, event))
 
        conn.commit()
 
        cursor.execute("SELECT * FROM events")
 
        rows = cursor.fetchall()
 
 
        print(" 날짜            일정              ")
        print("===================================")
        for row in rows:
            print(" {0}  {1} ".format(row[0], row[1]))
 
        cursor.close()
        conn.close()
 
        messagebox.showinfo(date, date + " 의 일정이 입력/수정 되었습니다.")
 
 
    else:
        messagebox.showinfo("Alert", "미입력 칸이 있습니다. 모두 입력해주세요.")
 
 
def update_1(): #'일정수정' 버튼 = YYYY/MM/DD/HH
    if bool(combx_1.get()) and bool(combx_2.get()) and bool(combx_3.get()) and bool(combx_4.get())== True:
 
        conn = sqlite3.connect('C:\\Users\\XXXX\\Documents\\DB\\testdb.db')
        cursor = conn.cursor()
 
        date = combx_1.get() + '/' + combx_2.get() + '/' + combx_3.get() + '/' + combx_4.get()
        event = entry_1.get()
 
        sql = 'update events set event = ? where date = ?'
        cursor.execute(sql,(event, date))
 
        conn.commit()
 
        cursor.execute("SELECT * FROM events")
 
        rows = cursor.fetchall()
 
 
        print(" 날짜            일정              ")
        print("===================================")
        for row in rows:
            print(" {0}  {1} ".format(row[0], row[1]))
 
        cursor.close()
        conn.close()
 
        messagebox.showinfo(date, date + " 의 일정이 입력/수정 되었습니다.")
 
    else:
        messagebox.showinfo("Alert", "미입력 칸이 있습니다. 모두 입력해주세요.")
       
 
def delete_1(): #'일정삭제' 버튼
    date = combx_1.get() + '/' + combx_2.get() + '/' + combx_3.get() + '/' + combx_4.get()
    conn = sqlite3.connect('C:\\Users\\XXXX\\Documents\\DB\\testdb.db')
    cursor = conn.cursor()
 
    del_sql = 'delete from events where date = ?'
    cursor.execute(del_sql,(date,))
 
    conn.commit()
    conn.close()
    messagebox.showinfo(date, date + " 의 일정이 삭제 되었습니다.")
 
 
def find_1(): #'일정조회(부분)' 버튼
    conn = sqlite3.connect('C:\\Users\\XXXX\\Documents\\DB\\testdb.db')
    cursor = conn.cursor()
 
    date_1 = combx_1.get() + '/' + combx_2.get() + '/' + combx_3.get() + '/' + combx_4.get()
 
    if bool(cursor.execute('select * from events WHERE date = "{}"'.format(date_1))) == True:
        for row in cursor.execute('select * from events WHERE date = "{}"'.format(date_1)):
            print(row)
            txt_1.delete(0.0, END)
            txt_1.insert(INSERT, row)
    else:
        txt_1.delete(0.0, END)
        txt_1.insert(INSERT, '일정이 없습니다.')
        messagebox.showinfo(date_1, date_1 + "일정이 없습니다.")
   
    conn.close()
 
 
def find_2(): #'일정조회(전체)' 버튼
    conn = sqlite3.connect('C:\\Users\\XXXX\\Documents\\DB\\testdb.db')
    cursor = conn.cursor()
 
    cursor.execute("SELECT * FROM events")
 
    rows = cursor.fetchall()
 
    print(" 날짜            일정              ")
    print("===================================")
    for row in rows:
        print(" {0}  {1} ".format(row[0], row[1]))
 
    txt_1.delete(0.0, END)
    txt_1.insert(INSERT, rows)
 
    cursor.close()
    conn.close()
 
 
 
#화면 프레임 구
 
window = Tk()
window.title('Projects.Kinder')
window.geometry("680x850")
window.resizable(1, 1)
 
 
label = Label(window, text = '달력 프로그램', width=80, height=50, fg='blue', relief="solid", bitmap="info", compound="top").grid(row = 0, columnspan = 5)
 
#년도/월 입력
 
label_1 = Label(window, text = '연도 입력(yyyy)', width = 12)
label_1.grid(row=1, column=0)
 
 
combx_1 = ttk.Combobox(window, textvariable = str, values = (2019, 2020, 2021), width = 12)
combx_1.grid(row=1, column=1)
 
 
label_2 = Label(window, text = '월 입력(mm)', width = 12)
label_2.grid(row=2, column=0)
 
combx_2 = ttk.Combobox(window, textvariable = str, values = (1,2,3,4,5,6,7,8,9,10,11,12), width = 12)
combx_2.grid(row=2, column=1)
 
 
label_3 = Label(window, text = '일 입력(dd)', width = 12)
label_3.grid(row=3, column=0)
 
combx_3 = ttk.Combobox(window, textvariable = str, values = (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), width = 12)
combx_3.grid(row=3, column=1)
 
 
label_4 = Label(window, text = '시간 입력(24h)', width = 12)
label_4.grid(row=4, column=0)
 
combx_4 = ttk.Combobox(window, textvariable = str, values = ('AM 00','AM 1','AM 2','AM 3','AM 4','AM 5','AM 6','AM 7','AM 8','AM 9','AM 10','AM 11','PM 12','PM 1','PM 2','PM 3','PM 4','PM 5','PM 6','PM 7','PM 8','PM 9','PM 10','PM 11'), width = 12)
combx_4.grid(row=4, column=1)
 
 
label_5 = Label(window, text = '일정내용', width = 12)
label_5.grid(row=5, column=0)
 
entry_1 = Entry(window, width = 15)
entry_1.grid(row=5, column=1)
 
 
#버튼정렬
 
b1 = Button(window, text = '월 출력', width=12, command = mm)
b1.grid(row=6, column=0)
 
b2 = Button(window, text = '년 출력', width=12, command = yyyy)
b2.grid(row=6, column=1)
 
b3 = Button(window, text = '일정입력', width=12, command = create_1)
b3.grid(row=7, column=0)
 
b4 = Button(window, text = '일정수정', width=12, command = update_1)
b4.grid(row=8, column=0)
 
b5 = Button(window, text = '일정삭제', width=12, command = delete_1)
b5.grid(row=8, column=1)
 
b6 = Button(window, text = '일정조회(부분)', width=12, command = find_1)
b6.grid(row=9, column=0)
 
b7 = Button(window, text = '일정조회(전체)', width=12, command = find_2)
b7.grid(row=9, column=1)
 
 
 
# 달력 표시 디스플레이
 
txt = scrolledtext.ScrolledText(window, width = 80, height = 35)
txt.place(x = 10, y = 270)
 
txt_1 = scrolledtext.ScrolledText(window, width = 55, height = 12)
txt_1.place(x = 210, y = 54)
 
window.mainloop()


yyyy = int(input('year(yyyy) :' ))
mm = int(input('month(mm) :' ))


print(calendar.month(yyyy, mm)) #월 출력
print(calendar.calendar(yyyy, mm)) #년도 출력


</source>
</source>
====댓글====
* 큐벨리아 : 참고하기에는 너무 허접한 코드입니다 ㅠㅠ
* 김왼손: 프로그램을 두개나 만들다니.. 훌륭합니다. :)
* 김민재: 참고하면서 많은 도움 되었습니다!!! 감사합니다!!!


===큐벨리아===
===큐벨리아===
====제목====
딕셔너리에 리스트을 넣을수있다는것을 만들고 알아버린 비밀번호 관리 프로그램
====설명====
====설명====
 
비밀번호 관리 프로그램
사이트 계정 비밀번호 추가, 검색, 출력하는 프로그램(ID는 통일되어있어 제외)


*현재 기능 :  
*현재 기능 :  
**입력, 출력, 종료, 수정
**등록, 조회, 수정, 삭제, 종료


*추가 기능 :  
*추가 기능 :  
**수정(예정 -> 완료),삭제(예정 -> 완료),등록한 회사명, 비밀번호를 메모장으로 저장 및 불러오기
**수정(예정 -> 완료), 삭제(예정 -> 완료), 등록한 회사명, 비밀번호를 메모장으로 저장 및 불러오기(예정 -> 개선필요 -> 완료)
**GUI 제작, 예외 처리


*개선 사항 :  
*개선 사항 :  
** 1. 입력 기능을 함수로 만들어, 추가로 입력할것인지, 입력 기능을 종료할것인지 묻는 선택문 기능 추가(예정 -> 완료)  
**입력 기능을 함수로 만들어, 추가로 입력할것인지, 입력 기능을 종료할것인지 묻는 선택문 기능 추가(예정 -> 완료)  
 
*작성 기록
*작성 기록
**2020-04-30 기능설명
**2020-04-30 기능설명
**2020-05-10 기본적인 기능 구현, 개선사항 수정완료
**2020-05-10 기본적인 기능 구현, 개선사항 수정완료
**2020-05-11 수정, 삭제 기능 추가
**2020-05-11 수정, 삭제 기능 추가
 
**2020-05-12 메뉴에서 문자를 입력하였을경우 출력 추가
*개소리
**2020-05-19 파일에서 딕셔너리로 저장, 딕셔너리에서 파일로 저장 추가(개선필요)
**회사, 비밀번호을 입력할 함수를 하나 만들까싶네 너무 더러워 보이네
**2020-05-20 파일에서 딕셔너리로 저장, 딕셔너리에서 파일로 저장 추가(완료)
====실행화면====
https://www.youtube.com/watch?v=Q6XtPtuqqZk


====코드====
====코드====
<source lang='python'>
<source lang='python'>
dic = {}
 
file = open('TEST.txt',mode = 'a', encoding = 'UTF-8')
 
Dict = {}
Temp = {}
 
#파일에서 가져와 딕셔너리로 저장(Temp로 저장하고 개행문자를 제거후 Dic에 저장)
def FileToDictSave() :
 
  file = open('TEST.txt',mode = 'r+', encoding = 'UTF-8')
 
  for i in file :
        Temp[i] = file.readline()
   
  for i, j in Temp.items() :
        a = i.rstrip('\n')
        b = j.rstrip('\n')
        Dict[a] = b
 
#딕셔너리에서 파일로 저장
def DictToFileSave() :
 
    file = open('TEST.txt',mode = 'w+', encoding = 'UTF-8')
 
    file.truncate() #메모장 내용 삭제
 
    for i, j in Dict.items() :
        file.write(i)
        file.write('\n')
        file.write(j)
        file.write('\n')


# 입력
# 입력
def Create() :
def Create() :
     print('') #5줄
 
     print('')
     print('')
     print('')
     Company = input('            회사 : ')  
     Company = input('            회사 : ')  
     print('')
     print('')
   
    if Company in Dict.keys() :
        print('            중복되는 내용이있습니다.')
        return
     PW = input('            비밀번호 : ')
     PW = input('            비밀번호 : ')
     dic[Company] = PW
    print('')
     Dict[Company] = PW
    print('          * 더 하시겠습니까? = 1 끝내시겠습니까? = 2')
 
    print('')
     return
     if((int(input('            ')) == 1)) :
 
        Create()
    else :
        return
       
# 조회
# 조회
def Join() :
def Join() :
     print('')  
     print('')  
     print('')
     print('')
     Company = input('            회사 : ')
     Company = input('            회사 : ')
     print('')
     print('')
     if Company in dic :  
 
         print('            비밀번호 : ', dic[Company])
     if Company in Dict :  
         print('            비밀번호 : ', Dict[Company])
     else :
     else :
         print('            자료가 존재하지않습니다.')
         print('            자료가 존재하지않습니다.')
168번째 줄: 500번째 줄:
# 수정
# 수정
def Updata() :
def Updata() :
     print('') #6줄
 
     print('')  
     print('')
     print('')
     Company = input('            회사 : ')
     Company = input('            회사 : ')
174번째 줄: 507번째 줄:
     PW = input('            비밀번호 : ')
     PW = input('            비밀번호 : ')
     print('')
     print('')
     if(dic[Company] == PW) :
   
         del dic[Company]
     if(Dict[Company] == PW) :
         del Dict[Company]
         print('            새로운 비밀번호를 입력하세요.')
         print('            새로운 비밀번호를 입력하세요.')
         print('')
         print('')
         PW = input('            ')
         PW = input('            ')
         dic[Company] = PW
         Dict[Company] = PW
     else :  
     else :  
         print('            비밀번호가 틀렸습니다.')
         print('            비밀번호가 틀렸습니다.')
188번째 줄: 522번째 줄:
           Updata()
           Updata()
         else :
         else :
            return
          return
 
# 삭제
# 삭제
def Delete() :
def Delete() :
     print('') #6줄
 
     print('')  
     print('')
     print('')
     Company = input('            회사 : ')
     Company = input('            회사 : ')
197번째 줄: 533번째 줄:
     PW = input('            비밀번호 : ')
     PW = input('            비밀번호 : ')
     print('')
     print('')
     if(dic[Company] == PW) :
     if(Dict[Company] == PW) :
         del dic[Company]
         del Dict[Company]
         print('            삭제되었습니다.')
         print('            삭제되었습니다.')
     else :
     else :
204번째 줄: 540번째 줄:
         print('')
         print('')
          
          
while(1) :


while(1) :
    #초기화
    FileToDictSave()


     # 메뉴
     # 메뉴
229번째 줄: 567번째 줄:


     print('            * Select = ', end =' ')
     print('            * Select = ', end =' ')
   
     Select = input()
     Select = input()


254번째 줄: 591번째 줄:
         print('')
         print('')
         break
         break
   
    # 문자입력시 안내사항
    if (Select.isdigit() == False) or int(Select) > int(5) :
        print('')
        print('            잘못입력하셨습니다.')
    DictToFileSave()


</source>
</source>
====참고자료====
====지식인====
<source lang='python'>
#질문
#작성자 : 큐벨리아
#메모장에 있는 내용을 키, 값을 가져와 개행문자 제거후 dic에 저장하고 싶은데 아래로 실행해보니 값만 개행문자 지워지네요 혹시 키도 지울수있는 방법아시는분 계신가요???


====출력====
file = open('password.txt', 'r', encoding='utf-8')
dic = {}


===가이드라인===
for i in file :
====설명====
  PW = file.readline().strip('\n')
생각해본건 없지만 의뢰작업 해보는게 꿈입니다
  dic[i] = PW
====코드====
<source lang='python'>
import datetime
import tkinter as tk
def 감지():
        if 시간.weekday()==0:
                lbl.configure(text='월요일')
   
        elif 시간.weekday()==1:
                lbl.configure(text='화요일')
   
        elif 시간.weekday()==2:
                lbl.configure(text='수요일')
       
        elif 시간.weekday()==3:
                lbl.configure(text='목요일')
   
        elif 시간.weekday()==4:
                lbl.configure(text='금요일')
   
        elif 시간.weekday()==5:
                lbl.configure(text='토요일')
        elif 시간.weekday()==6:
                lbl.configure(text='일요일')


print(dic)


#답변
#작성자 : 큐벨리아
#파일에서 가져와 딕셔너리로 저장(Temp로 저장하고 개행문자를 제거후 Dic에 저장)


year=input('년도')
def FileToDictSave() :
month =input('')
 
day=input('')
  file = open('TEST.txt',mode = 'r+', encoding = 'UTF-8')
시간=datetime.date(int(year),int(month),int(day))
 
  for i in file :
        Temp[i] = file.readline()
   
  for i, j in Temp.items() :
        a = i.rstrip('\n')
        b = j.rstrip('\n')
        Dict[a] = b


tk.Tk().geometry('200x200')
lbl=tk.Label(text='요일알아내는 프로그램')
btn=tk.Button(text='버튼',command=감지)
lbl.pack()
btn.pack()
lbl.pack()
tk.mainloop()
</source>
</source>
요일알아내는 프로그램


===raina===
====댓글====
====설명====
* 고양이: 안녕하세요? 반가워요.
하루 권장 칼로리 안에서 자취생을 위한 다이어트 식단 만드는 프로그램을 만들고 싶습니다.  
* Projects.Kinder : 안녕하세요. 큐벨리아님 코드 참고해서 업글해봐야겠어요 :)
텍스트 중심의 하루치 식단편성 프로그램으로 먼저 시작하고 부족한 부분들은 하나씩 추가하여 업그레이드 시키려고 합니다.
* 김왼손: 자문자답이군요ㅋㅋㅋ 훌륭합니다. :)


1. 여성 or 남성 선택
===중3메이커===
<br>
====제목====
-남여 권장칼로리 구분해서 입력하기
편지장프로그램
<br>
2. 아침/ 점심/ 저녁 선택
<br>
-음식메뉴선택 : 한식 / 중식 / 양식 / 일식 (칼로리 표시)
<br>
3. 권장칼로리 판단
<br>
-미만: pass
<br>
-적정: pass
<br>
-초과: 운동옵션 추가
<br>
4.운동옵션
<br>
-초과 칼로리만큼 운동옵션 추가하기
<br>
5. 위의 선택들을 잘 정리해서 출력하기
 
====코드====
<source lang='python'>
input("당신은 여성입니까? 남성입니까?")
a = "여성"
b = "남성"
 
if a:
    print("하루권장 칼로리는 1800Kcal입니다.")
elif b:
    print("하루권장 칼로리는 2500Kcal입니다.")
</source>


===람오 LAMO===
====설명====
====설명====
고등학생입니다. 그림 그리기가 취미고, 언젠가 게임회사에 들어가거나 제대로 된 인디게임 만드는 것이 꿈입니다.
로그인/회원가입기능과 관리자권한 기능 로그인시 채팅 칠수있는 기능 등등
<br>
<small>- 작년 여름, 학교에서 방과후 웹디자인으로 처음 코딩을 접했습니다. 세 달정도 하다가 죽는줄 알았습니다....</small>
* 만들고 싶은 프로그램
스토리 위주의 간단한 게임
 
====해야 할 것====
* 캐릭터, 배경, UI 구성
* 추가 예정
-------------
* 엔딩 분기점
    * 점수에 따라 달라지는 엔딩을 구현한다. (무슨 점수인지는 미정)
* 퍼즐? 전투?
    (전투는 추가하기 힘들것 같으니 보류..)
* 추가 예정
====코드====
<source lang='python'>
import pygame
 
pygame.init()
width, height = 400, 800 #값은 임의로 정함
screen = pygame.display.set_mode((width,height))
 
</source>


2020-06-10 회원가입 아이디 중복시/로그인 아이디또는 비밀번호가 맞지않을경우 try,except함수를 이용하여 오류뜨게 수정


===ken-ni===
====실행화면====
====설명====
실행화면을 넣어주세요.
구매대행 프로그램을 만들고 싶습니다.
====코드====
====코드====
<source lang='python'>
<source lang='python'>
print('Hello Python!')
import time
def makecodebook():#암호화 사전,복호화 사전
    encbook={'a':'5','b':'1','c':'3','d':'2','e':'!',\
            'f':'@','g':'*','h':'%','i':'(','j':')','k':'&',\
            'l':'_','m':'-','n':'=','o':'+','p':'0',\
            'q':']','r':'{','s':'}','t':'/','u':'~','v':'$','w':'6','s':'7','y':'9'\
            ,'z':''}
    decbook={}
    for i in encbook:
        val=encbook[i]
        decbook[val]=i
    return encbook,decbook
       
def encrypt(msg,encbook):#암호화시키는 함수
    for i in msg:
        if i in encbook:
            msg=msg.replace(i,encbook[i])
       
    return msg
def decrypt(enc_code,decbook):#복호화시키는 함수
    for i in enc_code:
        if i in decbook:
            enc_code=enc_code.replace(i.decbook[i])
       
    return enc_code
def 왼손_지우개():#엔터40번치는 함수(이거쓰면 IDLE화면 깨끗해짐)
    print('\n'*40)   
if __name__=='__main__':#여기서부터 실행
    encbook,decbook=makecodebook()
    while 1:
        왼손_지우개()
        print('    편지프로그램      ')
        print('-----선택하세요------\n')
        print('회원가입.1\n')
        print('로그인.2\n')
        print('---------------------')
        time.sleep(0.2)
        choice=int(input('숫자만 입력:'))
        if choice==1:#회원가입
           
            왼손_지우개()
            print('회원가입을 시작합니다')
            ID=input('아이디:')
            print('비밀번호는 영어만')
            password=input('비밀번호:')
            try:
                f=open('d:\\ID\\%s'%ID,'r')
                f.close()
                왼손_지우개()
                print('오류:아이디가 존재합니다.')
                time.sleep(2)
                continue
            except:
                f=open('d:\\ID\\%s'%ID,'w')
                f.write(encrypt(password,encbook))
                f.close()
                print('잠시만 기다려주세요')
                time.sleep(1)
                print('회원가입 완료')
                time.sleep(0.2)
                왼손_지우개()
                continue
         
        elif choice==2:#로그인
            ok=0
            왼손_지우개()
            print('-----아이디,비밀번호 잘못입력시 오류가 날수있습니다-----')
            print('오류가 뜨면 프로그램을 다시 실행시켜주세요  ')
            ID=input('아이디:')
            password=input('비밀번호:')
            print('--------------------------------------------------------')
            try:
                dd=open('d:\\ID\\%s'%ID,'r')
            except:
                왼손_지우개()
                print('오류:아이디가 없거나,비밀번호가 잘못되었습니다.')
                time.sleep(2)
                왼손_지우개
                continue
            d=dd.read()
            dd.close
            enc_password=encrypt(password,encbook)
            if enc_password==d:
                mode=1
                왼손_지우개()
                if ID=='관리자':#관리자 권한실행                       
                    if d==enc_password:
                        ok='ok'                             
                        while ok=='ok':
                            f=open('d:\\편지프로그램\\편지장.txt','r')
                            f_read=f.read()
                            f.close
                            print('관리자권한')
                            time.sleep(1)
                            왼손_지우개()
                            print('로딩중..')
                            time.sleep(2)
                            왼손_지우개()
                            print('---채팅창 내용---')
                            print(f_read)
                            print('-----------------')
                            time.sleep(2)
                            print('----관리자 권한 선택-----\n')
                            print('편지장 초기화.1\n')
                            print('해당아이디 비밀번호변경.2\n')
                            print('관리자권한off.3')
                            print('-------------------------')
                            choice=int(input('입력:'))
                            if choice==1:
                                왼손_지우개()
                                f=open('d:\\편지프로그램\\편지장.txt','w')
                                f.write('편지프로그램\n**이편지는 관리자가\
지우기전까지 사라지지않습니다**')
                                f.close()
                                print('처리중..')
                                time.sleep(0.5)
                                왼손_지우개()
                                print('완료')
                                time.sleep(1)
                               
                               
                            elif choice==2:
                                왼손_지우개()
                                ID2=input('비밀번호를 변경할 아이디')
                                password_change=input('변경할 비밀번호')
                                f=open('d:\\ID\\%s'%ID2,'w')
                                f.write(encrypt(password_change,encbook))
                                f.close()
                                print('처리중..')
                                time.sleep(0.5)
                                print('완료')
                                time.sleep(1)


import matplotlib.pyplot as plt
                            else:
%matpkotkib inkine
                                ok=1
 
                           
from wordcloud import wordCloud
            else:
 
                왼손_지우개()
text = open('condtitution.txt').read( )
                print('오류:아이디가 없거나,비밀번호가 잘못되었습니다.')
 
                time.sleep(2)
wordcloud = wordCloud( ).generate(text)
                왼손_지우개()
 
                pass
wordcloud.words_


plt. figure(figsize=(12,12))
         
pit. imshow(wordcloud, interpolation='bilinear')
        if mode==1:#로그인 성공시 다음실행
plt. axis("off")
            h=''
plt. show( )
            while h=='':
                왼손_지우개()
                f=open('d:\\편지프로그램\\편지장.txt','r')
                f_read=f.read()
                f.close
                print('-----선택 ------')
                print('홈으로.1')
                print('작성.2')
                print('편지읽기.3')
                if ok==1:
                    print('관리자권한on.4')
                choice=int(input('숫자만입력:'))                   
                if choice==2:
                    왼손_지우개()
                    a=input('편지작성:')
                    f=open('d:\\편지프로그램\\편지장.txt','a')
                    f.write('\n%s:'%ID)
                    f.write(a)
                    f.close
                elif choice==3:
                    왼손_지우개()
                    print('----몇초동안 보실건가요---')
                    시간=int(input('숫자만 입력'))
                    왼손_지우개()
                    print(f_read)
                    time.sleep(시간)
                    왼손_지우개()
                elif choice==1:
                    왼손_지우개()
                    h=1
                elif ok==1:
                    if choice==4:
                        manager_on='ok'
                        왼손_지우개()
                        print('관리자권한 on')
                        time.sleep(1)
                        왼손_지우개()


</source>
</source>


====댓글====


===전민관===
===전민관===
====제목====
영단어 공부하기
====설명====
====설명====
영어 단어 암기 프로그램을 만들고 싶습니다.
영어 단어 암기 프로그램을 만들고 싶습니다.
407번째 줄: 852번째 줄:
** 영어와 한글을 묶어서 표시(완료)
** 영어와 한글을 묶어서 표시(완료)
** 영어 이후에 한글 나오게 하기(완료)
** 영어 이후에 한글 나오게 하기(완료)
** 추가기능....고민
* 간단한 테스트를 통한 복습하기
** 테스트 기능 추가(진행완료)
** 5번 연속으로 맞출 시 단어 제거 기능 추가(연속이 아닌 그냥 5번 맞출시 단어 제거)
* 영어단어에 따른 발음 듣기(적용불가)
* 영어단어에 따른 발음 듣기(적용불가)
* 간단한 테스트를 통한 복습하기(준비중)
 
====실행화면====
실행화면을 위해 코드를 변경하여 랜덤으로 나오지 않고 한글이 아닌 영어 그대로 써야 정답으로 처리되게 바꿨습니다.
실제 파일은 제대로 실행이 됩니다.
[[File:영단어장.png|700px]]


====기록====
====기록====
443번째 줄: 894번째 줄:
* 7일차
* 7일차
** 휴식
** 휴식
* 5/18
** 새로운 목표를 가지고 다시 시작.
** 추가 기능을 넣으려다가 싹 다 갈아엎는중....
* 5/19
** 초기화면 > '0, 1'번 입력하여 공부, 테스트 선택이동(테스트 섹션 미적용) > 영어출력 > 엔터 입력 > 한글 출력 and "엔터" = 새로운 영어 출력, "0" = 종료
*** 단어가 잘 보이지 않아 []를 추가 하던 중 앞, 뒤에 공백을 없애려고 하는 중
* 5/20
** 앞뒤 공백 제거 완료(list, 문자열 변환 할떄 추가로 공백제거 실행)
** TEST 기능 업데이트 완료
***추가기능을 넣을까 말까.......................
* 5/21
** 5번 연속으로 맞출 시 단어 제거 기능 추가 기능을 추가 하려고 알아보는데 아직 방법을 모르겠음.....
* last
** 5번 연속 맞출시 단어 제거는 포기. 그냥 5번 맞출시 제거 기능 추가.
** GUI 적용해보려 하였으나 시간이 부족하여 포기


====코드====
====코드====
<source lang='python'>
<source lang='python'>
from random import randint      # 영단어의 랜덤 출제를 위한 모듈
 
import re                      # 지울때 쓰는 모듈
#window.mainloop()
en = []                        # 영어 저장할 예정
en = []                        # 영어 저장할 예정
kr = []                        # 한글 저장할 예정
kr = []                        # 한글 저장할 예정
462번째 줄: 928번째 줄:
text.close()            # 영단어 파일 닫기
text.close()            # 영단어 파일 닫기
en = 'ㄱ'.join(en)        # list를 문자열로 변경
en = 'ㄱ'.join(en)        # list를 문자열로 변경
kr = 'a'.join(kr)
kr = 'a'.join(kr)  
en = re.sub('[.0-9]','',en)    # 영어를 제외하고 지우기
en = re.sub('[.0-9]','',en)    # 영어를 제외하고 지우기
kr = re.sub('[)]','',kr)     # 한글을 제외하고 지우기
kr = re.sub('[)]','',kr)       # 한글을 제외하고 지우기
en = en.split('ㄱ')        # 다시 list로 변환
kr = re.sub('\n', '', kr)      # \n가 사라지지 않아서 추가 함
kr = kr.split('a')
en = en.split('ㄱ ')        # 다시 list로 변환
kr = kr.split(' a')
a = en


#print(en)
print(' 공부를 하시려면 0번\n 시험을 보시려면 1번을 입력하세요')
#print(kr)
q = input("공부를 시작하고 싶으면 엔터를 누르세요")
g = 0


while g != "0" :
select = input()
    g = randint(1, 503)
g = "1"
    print(en[g])
if select == "0":
    q = input("엔터를 누르시면 뜻이 나옵니다")
    while True :
    print(kr[g])
        if g != "0" :
    q = input("다른 단어를 보시려면 엔터를 누르세요")
            g = randint(1, 503)
</source>
            print([en[g]], "\n\n\n\n뜻 = enter, End = 0\n\n\n")
            select = input()
            if select != "0" :
                print([kr[g]], "\n\n\n다음 단어 = enter, End = 0\n")
                select = input()
                if select == "0" :
                    print("수고하셨습니다")
                    break
                else :
                    print()
               
            else :
                print("수고하셨습니다")
                break




===파이싼===
        else :
====설명====
            print("수고하셨습니다")
타 프로그램과의 연계 및 3rd 파티로 이용하고 싶습니다.
            break
====코드====
       
<source lang='python'>
elif select == "1":
print('Hello Python!')


import pandas as pd
    while True :
Function1 = pd.Series([1, 2, 3])
        if g != "0" :
print(Function1)
            g = randint(1, 503)
            test = input([en[g]])
           
            if test == "0" :
                print("수고하셨습니다")
                break
            elif kr[g] == test :
                print("\n\n정답      end = 0\n\n")
                en.append(en[g])
                if en.count(en[g]) == 6 :
                    del (en[g], kr[g]) 
                    print(en[g])
               
            else :
                print("\n\n오답      end = 0\n\n")
                   
                   
        else :
            print("수고하셨습니다")


</source>
</source>
====댓글====
* 김왼손: 차근차근 기능이 늘어가는게 멋지네요. :)




===Yoon===
===saha===
====제목====
제목을 정해주세요.
====설명====
====설명====
간단한 게임들을 만들어보고 싶어요.
초 분 시 변환기
====실행화면====
실행화면을 넣어주세요.
====코드====
====코드====
일단은 Python 기초강의 영상보면서 공부중입니다.
<br>
2020.05.06 : 미운코딩새끼 28강까지 정리 완료
<br>
2020.05.07 : 미운코딩새끼 46강까지 정리 완료
<br>
2020.05.08 : 미운코딩새끼 완료
<br>
https://www.notion.so/Python-414973d8d54a43c7a9495d201babed29
<br>
코드 적어본것 깃허브
<br>
https://github.com/YoonJeong-Choi/PythonPreschool
<br>
2020.05.09~10 : snake game 도움 - https://python.bakyeono.net/chapter-12-1.html
<source lang='python'>
<source lang='python'>
import pygame
class Convert:
import random # 랜덤으로 사과 띄움
    def __init__(self, num):
import time
        self.num = num
from datetime import datetime
from datetime import timedelta


pygame.init() # pygame 초기화
    def second(self):            #초를 시/분으로 변환
        secs = self.num % 60
        min0 = self.num // 60
        hour0 = min0 // 60
        min1 = min0 % 60
        print(f'{hour0}시간 {min1}분 {secs}초 입니다.')


SCREEN_WIDTH = 440 # 화면 너비
    def minute(self):                #분을 시로 변환
SCREEN_HEIGHT = 440 # 화면 높이
        hour1 = self.num // 60
BLOCK_SIZE = 20 # 블록 크기(네모 한칸 크기)
        min2 = self.num % 60
# 화면의 가로세로가 400이고 블록의 크기가 20이기 때문에 가로, 세로는 20칸씩 블록이 들어갈 수 있다.
        print(f'{hour1}시간 {min2}분 입니다.')
EDGE = []
for w in range(0, 22) :
    EDGE.append((0, w))
    EDGE.append((21, w))
    EDGE.append((w, 0))
    EDGE.append((w, 21))


# 색
----------------------------------------------------------------
WHITE = (255, 255, 255)
from sec_convert import *
GREEN = (0, 255, 0)
while True:
RED = (255, 0, 0)
    convert_type = input('변환시킬 타입을 정해 주세요 1.초 2.분')
BLUE = (0, 0, 255)
    if convert_type == '1':
BLACK = (0, 0, 0)
        num0 = int(input('시간을 입력해 주세요.'))
BROWN = (124, 56, 0)
        time = Convert(num0)
        time.second()
    elif convert_type == '2':
        num1 = int(input('시간을 입력해 주세요.'))
        time = Convert(num1)
        time.minute()
</source>
====댓글====
* 김왼손: 오.. class까지.. 멋집니다. :)


# 점수
score = 0
# pygeme.display.set_mode((화면 너비, 화면 높이)) 화면 객체 반환
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))


pygame.display.set_caption('SnakeGame') # title 설정
===타박상꼬리뼈===
====제목====
제목을 정해주세요.
====설명====
전에도 한번은 했었다가 잘 이해가 안돼서 진도가 안나갔는데
그래도 이때 까지 배운 코드가지고 코딩을 해보고 싶습니다.
====실행화면====
실행화면을 넣어주세요.
====코드====
<source lang='python'>
def Time(name, number):
    if number <= 6:
        print(name + "문장")
    elif 6 <  number <= 7:
        print(name + "문장")
    elif 7 < number <= 8:
        print(name + "문장")
    elif 8 < number <= 9:
        print(name + "문장")
    else: print(name + "문장")


# 화면
Time(Guido Van Rossum, 8)
# 시작 화면
#참고로 Guido van Rossum 이분이 파이썬 창시자라네요
def draw_main(screen) :
</source>
    background = pygame.Rect((0, 0), (SCREEN_WIDTH, SCREEN_HEIGHT))
====설명====
    pygame.draw.rect(screen, WHITE, background)
동물 키우기 식으로 코딩을 할려고 합니다.
    # 시작버튼
    # startButton = pygame.Rect((SCREEN_WIDTH // 4, SCREEN_HEIGHT // 2), (BLOCK_SIZE * 11, BLOCK_SIZE * 3))
    # pygame.draw.rect(screen, GREEN, startButton)
    # 시작글씨
    font = pygame.font.Font('freesansbold.ttf', BLOCK_SIZE * 3) # 폰트 설정
    text = font.render('start!', True, BLACK) # 글자 설정 render('출력', True, 글자색, 배경색)
    textRect = text.get_rect()
    textRect.center = (SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)
    screen.blit(text, textRect)


# 게임 배경
====코드====
def draw_background(screen) :
<source lang='python'>
    # 화면 전체에 강과 땅을 그려준다.
cat = {
     # pygame.Rect((x, y), (사각형 너비, 사각형 높이))
     "name" : "이름",
     background = pygame.Rect((0, 0), (SCREEN_WIDTH, SCREEN_HEIGHT))
     "age" : 5,
     # pygame.draw.rect(사각형을 그릴 화면, 색, 사각형 정보)
     "weight" : 5,
    pygame.draw.rect(screen, BROWN, background)
     "hungry" : True
    # 테두리는 파란색으로 칠해준다.
}
     for edge in EDGE :
        edges = pygame.Rect((edge[0] * BLOCK_SIZE, edge[1] * BLOCK_SIZE), (BLOCK_SIZE, BLOCK_SIZE))
        pygame.draw.rect(screen, BLUE, edges)
   


# 블록을 그리는 함수 이 함수로 뱀이나 사과같은것들을 그려준다.
def feed(pet):
def draw_block(screen, color, position) :
     if pet["hungry"] = True:
     # position[n] * BLOCK_SIZE는 블록의 위치를 나타낸다.
        pet["hungry"] = False
    # 화면크기가 400*400, 블록이 20*20이기 때문에 화면은 가로, 세로 20칸이 된다. x, y를 이를 이용해 설정한것
        pet["weight"] += 1
    block = pygame.Rect((position[0] * BLOCK_SIZE, position[1] * BLOCK_SIZE), (BLOCK_SIZE, BLOCK_SIZE))
        pet["age"] += 0.5
     pygame.draw.rect(screen, color, block)
        if pet["age"] == 12:
            print("The pet is death")
        else:
     else: print("The pet is full")


def exercise(pet):
    if pet["hungry"] = False:
        pet['hungry"] = True
        pet["weight"] -= 1
        pet["age"] += 0.5
        if pet["age"] == 12:
            print("The pet is death")
        else:
    else: print("The pet is tired")


# 블록 위치 = 뱀이 처음 나올 위치
def minus_age(pet):
block_position = [9, 9]
    if pet["age"] > 1:
# 마지막으로 블록을 움직인인 때 = 마지막으로 버튼을 누른 때
        pet["age"] -= 1
# datetime.now()는 현재 시간을 알려준다.
    else:
last_moved_time = datetime.now()
        print("It's too young")
# 처음 블록의 방향은 아래
block_direction = 'down'


# 방향 키 입력에 따라 블록의 방향 dictionary
def plus_age(pet)
DIRECTION_ON_KEY = {
     if pet["age"] < 11:
     pygame.K_UP : 'up',
        pet["age"] += 1
    pygame.K_DOWN : 'down',
     else:
    pygame.K_LEFT : 'left',
        print("It can be die")
     pygame.K_RIGHT : 'right'
}


# 뱀
feed(cat)
class Snake :
print(cat)
    color = GREEN
exercise(cat)
    # speed = 0.3
print(cat)
    def __init__(self) :
for i in range(2):
        self.positions = [(11, 11)] # 뱀의 위치. 뱀이 길어질수록 이 배열도 길어질것이다.
    feed(cat)
        self.direction = 'down' # 뱀의 방향
</source>
        self.speed = 0.3


    def draw(self, screen) :
====설명====
        # 뱀그리기. 사과를 먹을수록 길어져야한다.
다시올려여
        # 여러 블록으로 이루어져있기 때문에 반복문을 돌며 그린다.
====코드====
        for position in self.positions:
<source lang='python'>
            draw_block(screen, self.color, position)
a = int(input("값을 입력하시오"))
    # 뱀이 움직이면 머리가 움직인것에 따라 꼬리까지 따라가게 만드는 함수
    def crawl(self) :
        # 뱀의 머리는 인스턴스 변수인 positions[0] 위치이다.
        head_position = self.positions[0]
        # x, y 변수에 머리의 x, y좌표를 넣어준다.
        x, y = head_position
        # 만약 현재 뱀이 움직이는 방향이 아래라면
        if self.direction == 'down' :
            # 뱀의 머리 위치를 한칸 아래로 바꿔주고,
            # 기존 뱀의 위치 중 꼬리가 있던 부분 직전까지 더해준다.
            # 이렇게하면 머리의 위치를 앞에 추가해줌으로써
            # 머리부터 꼬리까지 각자 블럭의 앞에 있던 칸으로 따라간다.
            self.positions = [(x, y + 1)] + self.positions[:-1]
        elif self.direction == 'up' :
            self.positions = [(x, y - 1)] + self.positions[:-1]
        elif self.direction == 'left' :
            self.positions = [(x - 1, y)] + self.positions[:-1]
        elif self.direction == 'right' :
            self.positions = [(x + 1, y)] + self.positions[:-1]
    # 뱀의 방향을 바꾸는 함수
    def turn(self, direction) :
        self.direction = direction
    # 뱀을 키워주는 함수
    def grow(self) :
        # 뱀 꼬리의 뒤에 한칸 붙여준다.
        x, y = self.positions[-1]
        if self.direction == 'up' :
            self.positions.append((x, y - 1))
        elif self.direction == 'down' :
            self.positions.append((x, y + 1))
        elif self.direction == 'left' :
            self.positions.append((x - 1, y))
        elif self.direction == 'right' :
            self.positions.append((x + 1, y))
        # 뱀의 속도를 높여준다.
        if len(self.positions) > 15  and len(self.positions) < 25  :
            self.speed = 0.2
        elif len(self.positions) > 25 :
            self.speed = 0.1       
 
# 사과
class Apple :
    color = RED
    def __init__(self, position = (7, 7)) :
        self.position = position # 사과 위치
 
    def draw(self, screen) :
        # 사과 그리기
        draw_block(screen, self.color, self.position)  


# 게임판 : 뱀과 사과를 그려준다
def plus(c):
class Board :
     b = a + c
     width = 20
     print(a,"+",c,"=",b)
     height = 20
   
    def __init__(self) :
        self.snake = Snake()
        self.apple = Apple()


    def draw(self, screen) :
def minus(c):
        self.apple.draw(screen) # 게임판 위의 사과 그리기
     b = a - c
        self.snake.draw(screen) # 게임판 위의 뱀 그리기
     print(a,"-",c,"=",b)
     # 사과 만들기 - 사과에 사과만들기를하면 snake인스턴스를 못쓴다.
    def put_new_apple(self) :
        # 0 부터 20까지 랜덤으로 수를 정해 사과 위치를 정한다.
        self.apple = Apple((random.randint(1, 20), random.randint(1, 20)))
        # 뱀의 몸과 겹치면 사과를 다시만든다.
        for position in self.snake.positions :
            if self.apple.position == position :
                self.put_new_apple()
                break
    # 시간이 지나면 process_turn 메소드가 실행되며 저절로 뱀이 움직인다.
    def process_turn(self) :
        self.snake.crawl()
        # 뱀머리가 몸이나 벽에 부딛히면 게임이 끝난다.
        if self.snake.positions[0] in self.snake.positions[1:] or self.snake.positions[0] in EDGE:
            exit()
        # 움직이다가 사과 == 뱀머리 이면 뱀을 길게만들고 새 사과를 만든다.
        if self.snake.positions[0] == self.apple.position:
            self.snake.grow()
            self.put_new_apple()
            return 1
        return 1
    # 점수를 표시해주는 메소드.
     def write_score(self, screen) :
        score = 'score : {}'.format(len(self.snake.positions) - 1)
        # 상단에 점수표시
        font = pygame.font.Font('freesansbold.ttf', BLOCK_SIZE) # 폰트 설정
        text = font.render(score, True, BLACK, WHITE) # 글자 설정 render('출력', True, 글자색, 배경색)
        textRect = text.get_rect()
        textRect.center = (SCREEN_WIDTH // 2, BLOCK_SIZE // 2)
        screen.blit(text, textRect)   
   
# 게임판 인스턴스 생성
board = Board()


def division(c):
    b = a // c
    d = a % c
    print(a,"%",c,"=",b,"+",d)


# 종료를 누르기 전까진 화면을 계속 보여준다.
def multiply(c):
while True :
     b = a * c
    # pygame.event.get() 발생한 이벤트 목록을 읽는다.
     print(a,"*",c,"="b)
     events = pygame.event.get()
      
    # 반복문을 이용하여 이벤트 목록을 본다.
    for event in events :
        # 종료 이벤트가 발생하면 종료한다.
        if event.type == pygame.QUIT :
            exit()
        # 어떤 버튼을 눌렀다면 아래처럼 행동한다.
        if event.type == pygame.KEYDOWN :
            # 만약 눌린 버튼이 화살표키라면 블록의 방향을 화살표 키에 맞게 바꾼다.
            if event.key in DIRECTION_ON_KEY :
                # dictionary
                board.snake.turn(DIRECTION_ON_KEY[event.key])


    # datetime.now() - last_moved_time을 이용하여 마지막으로 버튼을 누른지 0.3초가 지났다면
def squared(c):
     # timedelta() 두 날짜(일,주 등등)나 시간(초, 분 등등)의 차이를 알려준다.
     b = a ** c
    if timedelta(seconds = board.snake.speed) <= datetime.now() - last_moved_time :
    print(a,"^",c,"=",b)
        play = board.process_turn()
        last_moved_time = datetime.now() # 마지막으로 움직인 시간 알려줌


    #draw_main(screen)
plus(5) #a에 5를 넣으면 "5 + 5 = 10"이 출력됨
    draw_background(screen) # 배경그리기
    board.draw(screen) # 화면판에 게임판그리기
    board.write_score(screen)
   
    # 화면 새로고침
    pygame.display.update()
</source>
</source>
<br>
<br>
===gum1028===
====설명====
====설명====
어떤 프로그램을 만들 수 있는 지도 모르는 코딩 초보입니다. 데이터 사이언스에 관심이 있어 지원하였습니다 :)
한국어를 명령어로 만들었어요
====코드====
====코드====
<source lang='python'>
<source lang='python'>
print('Hello Python!')
출력 = print
print('반갑습니다 :)')
참 = True
</source>
거짓 = False


a = 4
a += 1


===선인장===
if a == 5:
====설명====
    출력(참)
일단 프로그램에 입문하고 싶어요
else:
====코드====
    출력(거짓)
<source lang='python'>
print('Hi~~~')
</source>
</source>
====댓글====
* 김왼손: 여러 프로그램을 작성하고 있군요. 대단합니다. :)




===삼이이칠===
===raina===
====제목====
제목을 정해주세요.
====설명====
====설명====
메모장
하루 권장 칼로리 안에서 자취생을 위한 다이어트 식단 만드는 프로그램을 만들고 싶습니다.
텍스트 중심의 하루치 식단편성 프로그램으로 먼저 시작하고 부족한 부분들은 하나씩 추가하여 업그레이드 시키려고 합니다.
 
1. 여성 or 남성 선택
<br>
-남여 권장칼로리 구분해서 입력하기
<br>
2. 아침/ 점심/ 저녁 선택
<br>
-음식메뉴선택 : 한식 / 중식 / 양식 / 일식 (칼로리 표시)
<br>
3. 권장칼로리 판단
<br>
-미만: pass
<br>
-적정: pass
<br>
-초과: 운동옵션 추가
<br>
4.운동옵션
<br>
-초과 칼로리만큼 운동옵션 추가하기
<br>
5. 위의 선택들을 잘 정리해서 출력하기
====실행화면====
실행화면을 넣어주세요.
====코드====
====코드====
<source lang='python'>
<source lang='python'>
print('Hi Python')
input("당신은 여성입니까? 남성입니까?")
a = "여성"
b = "남성"
 
if a:
    print("하루권장 칼로리는 1800Kcal입니다.")
elif b:
    print("하루권장 칼로리는 2500Kcal입니다.")
</source>
</source>
====댓글====
* 김왼손: 완성되면 실용적일 것 같아요. :)




===drawi ng===
===람오 LAMO===
====제목====
제목을 정해주세요.
====설명====
====설명====
아직 만들고싶은 프로그램은 없습니다.
고등학생입니다. 그림 그리기가 취미고, 언젠가 게임회사에 들어가거나 제대로 된 인디게임 만드는 것이 꿈입니다.
====코드====
<br>
<source lang='python'>
<small>- 작년 여름, 학교에서 방과후 웹디자인으로 처음 코딩을 접했습니다. 세 달정도 하다가 죽는줄 알았습니다....</small>
print('Hello Python!')
* 만들고 싶은 프로그램
</source>
스토리 위주의 간단한 게임
(머드 게임을 만드려 했지만.. 실력 부족이라 렌파이를 이용해서 해보려 합니다.)


====실행화면====
실행화면을 넣어주세요.
====진행 상황====
5/25 -
[[파일:22.png|섬네일]]
넣을 그림은 이번주 내로 그리려고 합니다..ㅠ
-------------
* 엔딩 분기점
    * 점수에 따라 달라지는 엔딩을 구현한다. (무슨 점수인지는 미정)
* 퍼즐? 전투?
    (전투는 추가하기 힘들것 같으니 보류..)
* 추가 예정


===uijun Hwang===
====설명====
세부적으로 만들고 싶은 프로그램은 없으나, 파이선 유치원을 통해 유기농 냠냠 파이선보다 더욱 큰 흥미를 느끼고 싶습니다. 이런 기획을 해주셔서 너무 감사합니다. :) 꼭 참여하고 싶습니다. 원하는 프로그램은 차후 세부내용 업뎃하겠습니다 :)
* 1st: To-do list 관리 프로그램(기능 : 날짜별 추가/삭제/수정, 완료/미완료 확인, 일/주/월별로 총개수/완료/미완료 개수 확인)
* 2nd: POS 프로그램(기능 : 품목/가격 추가/삭제/수정, 거래기준 품목별 개수/금액 확인, 거래기준 총금액 확인, 일/주/월별로 총거래/총금액 확인)
====코드====
====코드====
(전체적으로 제가 한 건 거의 없습니다ㅠㅠ 아마 조금 손 봐서 다른거 추가해봐야 될거 같네요.
scrypt.rpy의 일부입니다.
<source lang='python'>
<source lang='python'>
print('Hello Python!')
</source>




===앤드류===
====설명====
파이선은 처음하는거라서 얼떨떨하네요... 열심히 해보겠습니다.
====코드====
<source lang='python'>
print('Hello Python!')
</source>


define ch_viola = Character("비올라")
define ch_hyde = Character("하이드")


===일리우===
image bg_forest = "bg/forest-1.jpg"
====설명====
image scg_viola :
출석체크 프로그램.
    im.FactorScale("scg/viola.png",0.5,)
=====진행상황=====
    yalign 0.0
* 강의목록
====코드====
<source lang='python'>
print('Hello Python!')
</source>


define cetner = Position(xalig = 0.5, yalign = 0.0)


===이종남===
====설명====
배워가면서 생각해볼게요
====코드====
<source lang='python'>
print('Hello Python!')
</source>


image scg_hyde = "scg/hyde.png"


===SJ===
====설명====
아직도 고민중[[특수:기여/58.122.176.253|58.122.176.253]]


====코드====
label start:
<source lang='python'>
    scene bg_forest
print('Hello Python!')
   
</source>
    "나래이션"


    show scg_viola
    ch_viola "...??"


===해외사는 공대생===
   
====설명====
    ch_hyde "(대사)"
제대로 된 프로그램 하나 만들어서 앞으로 코딩에 흥미를 가지싶어요.만들고 싶은 프로그램은 조금더 고민해서 만들어보도록 할께요
====코드====
<source lang='python'>
print('Hello Python!')
</source>


    return


===김승연===
====설명====
한입에 파이썬 공부끝마치고 있습니다!
====코드====
<source lang='python'>
print('Hello Python!')
</source>
</source>


gui (바꾼거 이것밖에 없어서 얘만 올려요)
<source lang='python'>
## The font used for in-game text.
define gui.text_font = "MapoGoldenPier.ttf"


===코리스===
## The font used for character names.
====설명====
define gui.name_text_font = "MapoGoldenPier.ttf"
쿠팡 자동등록 프로그램
====코드====
<source lang='python'>
print('Hello Python!')
</source>


## The font used for out-of-game text.
define gui.interface_text_font = "MapoGoldenPier.ttf"


===잇스타그램===
====설명====
리마인더 같은 어플을 만들고 싶어요
====코드====
<source lang='python'>
print('Hello Python!')
</source>
</source>


====댓글====
* 김왼손: 텍스트 기반으로 먼저 만들어 보는건 어떨까요? :)


===김희준===
===ken-ni===
====제목====
제목을 정해주세요.
====설명====
====설명====
제 공부에 도움이 될만한 어플을 만들고 싶은데 파이썬으로 어느정도까지 가능한지 아는게 없어서(능력이 안되는 것도 있구요)... 공부하면서 천천히 세부적으로 생각해보려구요!
구매대행 프로그램을 만들고 싶습니다.
====실행화면====
실행화면을 넣어주세요.
====코드====
====코드====
<source lang='python'>
<source lang='python'>
print('Hello Python!')
print('Hello Python!')
</source>


import matplotlib.pyplot as plt
%matpkotkib inkine
from wordcloud import wordCloud


===라나스===
text = open('condtitution.txt').read( )
====설명====
이제 퇴사하고 아이티로 직업을 전향하려는 늦깍이 문과생이라 어떤 프로그램을 만들면서 연습해야 할지 잘 모르겠습니다.. 예시로 하나만 지정해주시면 감사하겠습니다ㅠ 파이썬 수준은 아주 기초는 할 수 있고 구글에서 찾아서 한참 고민하면서 사용할 수 있을 정도 입니다. 성실히 참여하겠습니다!
====코드====
<source lang='python'>
print('Hello Python!')
</source>


wordcloud = wordCloud( ).generate(text)


===동진시민===
wordcloud.words_
====설명====
영어 문장 구조를 분석해주는 프로그램을 만들고 싶습니다. 문법적으로 어떤 구성 요소인지를 분석하고, 해석될 수 있는 가능성의 수도 보여주고, 이를 마인드맵으로 시각적으로  보여주는 프로그램을 만들고 싶어요!
====코드====
<source lang='python'>
print('Hello Python!')
</source>


plt. figure(figsize=(12,12))
pit. imshow(wordcloud, interpolation='bilinear')
plt. axis("off")
plt. show( )


===Douglas===
====설명====
업무 자동화 프로그램, 웹크롤링
====코드====
<source lang='python'>
print('Hello Python!')
</source>
</source>
====댓글====
* 김왼손: 어떤 프로그램이 나올지 기대됩니다. :)




===장우석===
===파이싼===
====제목====
제목을 정해주세요.
====설명====
====설명====
미정
타 프로그램과의 연계 및 3rd 파티로 이용하고 싶습니다.
====실행화면====
실행화면을 넣어주세요.
====코드====
====코드====
<source lang='python'>
<source lang='python'>
print('Hello Python!')
print('Hello Python!')
</source>


 
import pandas as pd
===saha===
Function1 = pd.Series([1, 2, 3])
====설명====
print(Function1)
왼손님 강의를 듣다 댓글에 어떤 분께서 자신이 만든 프로그램에 오류가 있다 하셔서 그걸 수정해 본 것입니다.
 
====코드====
<source lang='python'>
print('안녕하세요 배송봇입니다.\n배송을 위해 개인정보를 수집하겠습니다.\n아래의 답변을 적어주세요.')
while True:
    agree = input('개인정보 수집에 동의하십니까?' '네/아니요')
    if agree == '아니요':
        print('동의하셔야지만 이용이 가능합니다')
        continue
    name = input('성함을 알려주세요.')
    while True:
        phone = input('{}님, 연락처를 알려주세요.'.format(name))
        agree_phone = input('{}님, 이 번호가 맞습니까? 네/아니요'.format(phone))
        if agree_phone == '아니요':
            print('번호를 다시 입력해주세요')
            continue
        elif agree_phone == '네':
            print('이용해 주서서 감사합니다^^')
            break
    break


</source>
</source>
====댓글====
* 김왼손: 어떤 프로그램과의 연계일까요? :)


===백두현===
===타박상꼬리뼈===
====설명====
====설명====
회사 업무시 생각하는데로 오피스 사무자동화를 만들어 스마트하게 회사생활을 하고싶습니다.
만약에 온라인으로 시험을 친다면 이렇게 칠 것 같아서
* 특히 판다스 및 openpyxl 익숙하게 사용하고싶습니다.
만들어 봤습니다. (아직 미왕성이예요!)
* 더 나아가 프로램도 실생활에 필요한 프로그램도 만들어 보고싶습니다.
====코드====
====코드====
<source lang='python'>
<source lang='python'>
print('Hello Python!')
#다음 문제를 푸시오
</source>
#1. 316 + 824
#2. 13 * 4
#3. 75 % 15
#4, 1132 - 296
#5. 13 ^ 2
#6. 5 + 4 * 13
#7. 15 * 12
#8. {9(3 - 4)} ^ 2
#9. (2 ^ 0)
#10. 19 ^ 19


a = 316 + 824
b = 13 * 4
c = 75 // 15
d = 1132 - 296
e = 13 ** 2
f = 5 + 4 * 13
g = 15 * 12
h = (9 * 3 - 4 * 9) ** 2
i = 2 ** 0
j = 19 ** 2


===C Ahn===
k = 0
====계획====
1-1. 한입에 쏙 파이썬 강의 다 보기   
1-2. 만들고 싶은 프로그램 세부적 고민하기 
1-3. 유치원생 목록중에 비슷한 프로그램만들고자 하는 분들의 공간 참고하기
====설명====
* 업무 자동화 : 웹 데이터 크롤링(또는 다운받은 엑셀파일) + 전처리 가공
====코드====
<source lang='python'>
print('Hello Python!')
</source>


def prblm(number, answer): #문제번호, 답
    if number == 1:
        if answer == a:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 2:
        if answer == b:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 3:
        if answer == c:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 4:
        if answer == d:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 5:
        if answer == e:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 6:
        if answer == f:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 7:
        if answer == g:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 8:
        if answer == h:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 9:
        if answer == i:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 10:
        if answer == j:
            return("O")
            return k += 10
        else:
            return("X")
for i in range(1, 11):
    print(prblm(i, int(input())


===퀸미나===
print("점수: " + str(k))
====설명====
플래너. 공부나 할 일들 적기와 시간기록도 스탑워치로 기록할 수 있는 시간관리 기록장.
====코드====
<source lang='python'>
print('Hello Python!')
</source>
</source>


 
===타박상꼬리뼈===
===JWK===
====설명====
====설명====
실시간 가격 산출 프로그램
로또 추첨기를 만들었는데
====코드====
floor랑 ceil을 응용해서 만들었어요.
===코드===
<source lang='python'>
<source lang='python'>
print('Hello Python!')
from math import*
</source>
from random import*
 
x = ["floor", "ceil", "int"]


y = input()


===오리꽥꽥===
if y in x:
====설명====
    for i in x:
실시간 가격 산출 프로그램
        if y == i:
====코드====
            a = int(random() * 45)
<source lang='python'>
            b = int(random() * 45)
print('Hello Python!')
            c = int(random() * 45)
</source>
            d = int(random() * 45)
            e = int(random() * 45)
            f = int(random() * 45)
           
            print("값:",i)


            print(a)


===HansKim===
            while a == b:
====설명====
                b = i(random() * 45)
부모님 건강관리를 위해 건강관리 수첩()을 만들어보고 싶어서 입학했습니다.
                continue
====코드====
            while b == 0:
<source lang='python'>
                b = i(random() * 45)
print('Hello Python!')
                continue
</source>


            print(b)


===문병조===
            while b == c:
====설명====
                c = i(random() * 45)
일단 외부에서 예약할 수 있는 달력과 시간 화면, 그리고 예약폼을 전송할 수 있으면 좋겠습니다.
                continue
====코드====
            while c == 0:
<source lang='python'>
                c = i(random() * 45)
print('Hello Python!')
                continue
</source>


            print(c)


===코스톨라니===
            while c == d:
====설명====
                d = i(random() * 45)
엑셀로 받은 판매량 데이터를 정렬하고 판매량을 정리하는 프로그램을 만들고 싶습니다.
                continue
====코드====
            while d == 0:
<source lang='python'>
                d = i(random() * 45)
print('Hello Python!')
                continue
</source>


            print(d)


===코딩초보===
            while d == e:
====설명====
                e = i(random() * 45)
저 정말 아무것도 몰라요
                continue
코딩 옛날에 방과후 다닌것밖에 없습니다.
            while e == 0:
하지만 김왼손님의 한입에 쏙 파이썬 보고 자신감 생겨서 한번 도전해 봅니다.
                e = i(random() * 45)
파이게임 설치도 못하겠어요 ㅠㅠ
                continue
====코드====
<source lang='python'>
print('Hello Python!')
</source>


            print(e)


===타박상꼬리뼈===
            while e == f:
====설명====
                f = i(random() * 45)
전에도 한번은 했었다가 잘 이해가 안돼서 진도가 안나갔는데
                continue
그래도 이때 까지 배운 코드가지고 코딩을 해보고 싶습니다.
            while f == 0:
====코드====
                f = i(random() * 45)
<source lang='python'>
                continue
def Time(name, number):
    if number <= 6:
        print(name + "문장")
    elif 6 <  number <= 7:
        print(name + "문장")
    elif 7 < number <= 8:
        print(name + "문장")
    elif 8 < number <= 9:
        print(name + "문장")
    else: print(name + "문장")


Time(Guido Van Rossum, 8)
            print(f)
#참고로 Guido van Rossum 이분이 파이썬 창시자라네요
else:
    print("제대로된 값을 입력하시오")
</source>
</source>
===라이으니===
====설명====
아웃룩 수신메일 엑셀로 자동정리
====코드====

2020년 8월 14일 (금) 02:07 기준 최신판

1 파이썬 유치원

파이썬 유치원은 유튜브 채널 김왼손의 왼손코딩에서 구독자와 함께 진행하는 프로젝트입니다. 프로젝트 기간 동안 스스로 학습하면서 나만의 프로그램을 만들어 봅니다. 파이썬 유치원 1기는 2020년 5월 1일부터 31일까지 한달 동안 진행합니다.

파이썬 유치원에는 강의가 없습니다. 사실 강의만 들어서는 머리에 남는 게 없습니다. 직접 만들어 봐야 합니다. 모든 분야가 그렇겠지만 코딩은 더욱 그렇습니다. 이제 강의는 그만 듣고 직접 만들어 봅시다. 모든 정보는 유튜브와 구글에 있으니까요. 파이썬 유치원에서는 방향과 방법을 함께 고민합니다. 유치원 선생님은 아이가 하고 싶은 대로 자유롭게 두면서 아이가 흥미를 잃지 않게, 다치지 않게 옆에서 도와줍니다. 파이썬 유치원에서의 김왼손은 그런 역할입니다.

파이썬 유치원의 모든 진행 상황은 유튜브 채널 김왼손의 왼손코딩에서 공유합니다. 매주 토요일 저녁 유튜브 라이브에서 어떻게 하고 있는지 함께 살펴보고 어려움이 있다면 함께 고민합니다. 각자의 진행 내용은 제타위키의 파이썬 유치원 문서에서 공유합니다. 진행 내용을 공유하고 서로 의견을 나눌 수 있습니다.

파이썬 유치원 영아반은 파이썬은 물론 코딩을 한번도 해보지 못한 분들을 대상으로 합니다.

2 제타위키 사용법

3 영아반 친구들

3.1 고양이

3.1.1 제목

함께 쓰고 만드는 한글 입력기

3.1.2 설명

저는 간단한 여러 기능들을 수행할 수 있는 프로그램을 만들고 싶어요.

3.1.3 실행화면

실행화면을 넣어주세요.

3.1.4 log

+5/9, 약 9:45 나눗셈 기능 추가 +5/23, 약 9:5 김왼손님 정보 출력장치 추가 & 지신의 이름 출력 기능 추가

3.1.5 코드

orders = ['출력', '덧셈', '뺄셈', '곱셈', '나눗셈, '이름', '김왼손']
print('안녕하세요? 한글 코드 입력기에 오신 것을 환영합니다.')
print('-----------------------------------------------')
user = input('사용자 이름을 입력해 주세요.')
print('-------------------main------------------------')
while True:
    order: str = input('원하시는 명령어를 입력해 주세요.')
    print('-----------------------------------------------')
    if order in orders:
        if order == '출력':
            printy = input('출력하실 것을 적어주세요.')
            print('-----------------------------------------------')
            print(printy)
            print('-----------------------------------------------')

        elif order == '덧셈':
            x = int(input('첫 번째 수를 입력해 주세요.'))
            print('-----------------------------------------------')
            y = int(input('두번째 수를 입력해 주세요.'))
            print('-----------------------------------------------')
            print(x + y)

        elif order == '뺄셈':
            x = int(input('첫 번째 수를 입력해 주세요.'))
            print('-----------------------------------------------')
            y = int(input('두번째 수를 입력해 주세요.'))
            print('-----------------------------------------------')

            if x >= y:
                print(x - y)
                print('-----------------------------------------------')

            else:
                print(y - x)
                print('-----------------------------------------------')

        elif order == '곱셈':
            x = int(input('첫 번째 수를 입력해 주세요.'))
            print('-----------------------------------------------')
            y = int(input('두 번째 수를 입력해 주세요.'))
            print('-----------------------------------------------')
            print(x * y)
            print('-----------------------------------------------')

        elif order == '나눗셈':
            x = int(input('나누어지는 수를 입력해 주세요.'))
            print('-----------------------------------------------')
            y = int(input('나누는 수를 입력해 주세요.'))
            print('-----------------------------------------------')
            if x % y > 0:
             print('몫은', x // y, ',나머지는', x % y, '입니다.')
            else:
                print('몫은', x // y, '입니다')
        elif order =='이름':
            print(user)
            print('-----------------------------------------------')
        elif order =='김왼손':
            print('1 김왼손/n
                    자동차에 세상을 보여주는 연구원. 좋아하는 일만 하며 재미있게 살고 싶은 요즘 젊은이./n
                    가르치는  좋아 공부하는 선생이자, 배우는  좋아 가르치는 학생. 프로그래밍이라면 치를 떨던 프포자./n
                    였지만 지금은 김왼손의 왼손코딩을 운영하는 인기 유튜버./n

                     저서: Hello Coding 한입에  파이썬 (한빛미디어)/n
                     유튜브 채널: 김왼손의 왼손 코딩/n
                     인스타그램: 김왼손 (@lefty_khim)/n
                     Lefty Khim/n
                     인기 유튜버/n
                     -강의 실력 만점
                     -목소리 좋음/n
                     -기타 연주 좋음/n
                    
                    2 왼손코딩/n
                    유튜브 코딩 교육 채널 김왼손의 왼손코딩을 운영한다./n
                    Python을 주로 강의하고 Vim, 통기타, 프레지 같은 것들도 강의한다./n
                    
                    3 같이 보기/n
                    미운코딩새끼/n
                    유기농냠냠파이썬/n
                    Hello Coding 한입에  파이썬')    
    else:
        print('제대로된 명령어를 입력해 주세요.')
        print('-----------------------------------------------')

김왼손의 왼손코딩

3.1.6 댓글

  • 큐벨리아: 안녕하세요 ^^
  • 김왼손: 나중에는 GUI도 적용해 보면 좋을것 같네요. :)


3.2 Projects.Kinder

3.2.1 제목

코린이 달력

3.2.2 설명

파이썬유치원을 졸업하고, 파이썬 초/중/고/대 까지 졸업하고 싶어요!!

  • 1) 구구단 : 숫자 입력시 1~9까지 구구단 계산하여 프린트 / 문자 입력시 숫자 입력 안내 문구 프린트
  • 2) 달력
    • 1차(2020.05.00) : 단순 프린트
    • 2차(2020.05.00) : 원하는 년도,월 입력시 출력
    • 3차(2020.05.18) : 년도 전체 달력 또는 원하는 년도, 월 출력 선택
    • 4차(2020.05.19) : 메뉴 생성, 종료 기능 추가, 문자 입력시 안내 추가
    • 5차(2020.05.20) : 메뉴 화면 GUI 로 생성, 버튼을 통해 실행, 일정입력/일정조회(부분, 전체) 추가
    • 6차(2020.05.21) : 메뉴에 입력창 생성, 입력 값을 활용하여 실행
    • 7차(2020.05.22) : 연도/월 입력 창을 콤보 박스로 변경(for 입력오류 제한), 달력/일정 출력창 생성, 입력창(일/시간/일정) 추가, 메시지 박스를 통해 실행 내용 안내 추가 ** 동일한 일자(key)에 여러 값(value)을 추가할 수 있도록 수정 필요 → 시간을 입력해서 해결
    • 8차(2020.05.25) : 일정삭제 기능 추가, 일정조회(전체) 실행시 정렬 후에 출력 & textbox 에 출력 & + 새로운 창에 출력
    • 9차(2020.05.28) : SQlite DB 적용 완료(*프로그램이 종료 후 재실행되어도 기존 데이터가 지속적으로 관리될 필요성을 느끼게됨)
    • 10차(예정) : **일정조회(부분) else 구문 오류 해결 필요 **일정조회(전체) 실행시 줄바꿈하여 출력 필요 & date 정렬 후에 출력 필요(DB 화 하면서 기존 기능 삭제됨)

3.2.3 실행화면

실행화면을 넣어주세요.

3.2.4 코드

# 1) 구구단
while True: #무한반복
    num = input('please input a number for multiplication : ')
    if num.isdigit() == True: #isdigt() 사용하여 숫자 확인 <-> isalpha()
        for y in range(1, 10): #range() 사용하여, y 에 1-9 까지 입력
            print(num, 'X', y, '=', int(num) * y)
    else:
        print('Only input a number!')
# 2) 달력
import calendar
import tkinter as tk
import operator
from tkinter import*
from tkinter import ttk
from tkinter import scrolledtext
from tkinter import messagebox
import sqlite3

# Function 정의 

def create_table():
    
    conn = sqlite3.connect('C:\\Users\\XXXX\\Documents\\DB\\testdb.db')
    cursor = conn.cursor()

    cursor.execute("create table events( date char(20), event char(20))")

    cursor.close()
    conn.close()

def mm(): #'월' 버튼
    yyyy = eval(combx_1.get())
    mm = int(combx_2.get())

    month = calendar.month(yyyy, mm, w = 2, l = 2) #월 출력

    txt.delete(0.0, END)
    txt.insert(INSERT, month)

def yyyy(): #'년' 버튼
    yyyy = eval(combx_1.get())

    year = calendar.calendar(yyyy, w = 1, l = 1) #년도 출력

    txt.delete(0.0, END)
    txt.insert(INSERT, year)

def create_1(): #'일정입력' 버튼 = YYYY/MM/DD/HH
    if bool(combx_1.get()) and bool(combx_2.get()) and bool(combx_3.get()) and bool(combx_4.get())== True:

        conn = sqlite3.connect('C:\\Users\\XXXX\\Documents\\DB\\testdb.db')
        cursor = conn.cursor()

        date = combx_1.get() + '/' + combx_2.get() + '/' + combx_3.get() + '/' + combx_4.get()
        event = entry_1.get()
     
        cursor.execute("insert into events(date, event) values(?, ?)", (date, event))

        conn.commit()

        cursor.execute("SELECT * FROM events")

        rows = cursor.fetchall()


        print(" 날짜            일정               ")
        print("===================================")
        for row in rows:
            print(" {0}  {1} ".format(row[0], row[1]))

        cursor.close()
        conn.close()

        messagebox.showinfo(date, date + " 의 일정이 입력/수정 되었습니다.")


    else:
        messagebox.showinfo("Alert", "미입력 칸이 있습니다. 모두 입력해주세요.")


def update_1(): #'일정수정' 버튼 = YYYY/MM/DD/HH
    if bool(combx_1.get()) and bool(combx_2.get()) and bool(combx_3.get()) and bool(combx_4.get())== True:

        conn = sqlite3.connect('C:\\Users\\XXXX\\Documents\\DB\\testdb.db')
        cursor = conn.cursor()

        date = combx_1.get() + '/' + combx_2.get() + '/' + combx_3.get() + '/' + combx_4.get()
        event = entry_1.get()

        sql = 'update events set event = ? where date = ?'
        cursor.execute(sql,(event, date))

        conn.commit()

        cursor.execute("SELECT * FROM events")

        rows = cursor.fetchall()


        print(" 날짜            일정               ")
        print("===================================")
        for row in rows:
            print(" {0}  {1} ".format(row[0], row[1]))

        cursor.close()
        conn.close()

        messagebox.showinfo(date, date + " 의 일정이 입력/수정 되었습니다.")

    else:
        messagebox.showinfo("Alert", "미입력 칸이 있습니다. 모두 입력해주세요.")
        

def delete_1(): #'일정삭제' 버튼
    date = combx_1.get() + '/' + combx_2.get() + '/' + combx_3.get() + '/' + combx_4.get()
    conn = sqlite3.connect('C:\\Users\\XXXX\\Documents\\DB\\testdb.db')
    cursor = conn.cursor()

    del_sql = 'delete from events where date = ?'
    cursor.execute(del_sql,(date,))

    conn.commit()
    conn.close()
    messagebox.showinfo(date, date + " 의 일정이 삭제 되었습니다.")


def find_1(): #'일정조회(부분)' 버튼
    conn = sqlite3.connect('C:\\Users\\XXXX\\Documents\\DB\\testdb.db')
    cursor = conn.cursor()

    date_1 = combx_1.get() + '/' + combx_2.get() + '/' + combx_3.get() + '/' + combx_4.get()

    if bool(cursor.execute('select * from events WHERE date = "{}"'.format(date_1))) == True:
        for row in cursor.execute('select * from events WHERE date = "{}"'.format(date_1)):
            print(row)
            txt_1.delete(0.0, END)
            txt_1.insert(INSERT, row)
 
    else:
        txt_1.delete(0.0, END)
        txt_1.insert(INSERT, '일정이 없습니다.')
        messagebox.showinfo(date_1, date_1 + "일정이 없습니다.")
    
    conn.close()


def find_2(): #'일정조회(전체)' 버튼
    conn = sqlite3.connect('C:\\Users\\XXXX\\Documents\\DB\\testdb.db')
    cursor = conn.cursor()

    cursor.execute("SELECT * FROM events")

    rows = cursor.fetchall()

    print(" 날짜            일정               ")
    print("===================================")
    for row in rows:
        print(" {0}  {1} ".format(row[0], row[1]))

    txt_1.delete(0.0, END)
    txt_1.insert(INSERT, rows)

    cursor.close()
    conn.close()



#화면 프레임 구

window = Tk()
window.title('Projects.Kinder')
window.geometry("680x850")
window.resizable(1, 1)


label = Label(window, text = '달력 프로그램', width=80, height=50, fg='blue', relief="solid", bitmap="info", compound="top").grid(row = 0, columnspan = 5)

#년도/월 입력 

label_1 = Label(window, text = '연도 입력(yyyy)', width = 12)
label_1.grid(row=1, column=0)


combx_1 = ttk.Combobox(window, textvariable = str, values = (2019, 2020, 2021), width = 12)
combx_1.grid(row=1, column=1)


label_2 = Label(window, text = '월 입력(mm)', width = 12)
label_2.grid(row=2, column=0)

combx_2 = ttk.Combobox(window, textvariable = str, values = (1,2,3,4,5,6,7,8,9,10,11,12), width = 12)
combx_2.grid(row=2, column=1)


label_3 = Label(window, text = '일 입력(dd)', width = 12)
label_3.grid(row=3, column=0)

combx_3 = ttk.Combobox(window, textvariable = str, values = (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), width = 12)
combx_3.grid(row=3, column=1)


label_4 = Label(window, text = '시간 입력(24h)', width = 12)
label_4.grid(row=4, column=0)

combx_4 = ttk.Combobox(window, textvariable = str, values = ('AM 00','AM 1','AM 2','AM 3','AM 4','AM 5','AM 6','AM 7','AM 8','AM 9','AM 10','AM 11','PM 12','PM 1','PM 2','PM 3','PM 4','PM 5','PM 6','PM 7','PM 8','PM 9','PM 10','PM 11'), width = 12)
combx_4.grid(row=4, column=1)


label_5 = Label(window, text = '일정내용', width = 12)
label_5.grid(row=5, column=0)

entry_1 = Entry(window, width = 15)
entry_1.grid(row=5, column=1)


#버튼정렬

b1 = Button(window, text = '월 출력', width=12, command = mm)
b1.grid(row=6, column=0)

b2 = Button(window, text = '년 출력', width=12, command = yyyy)
b2.grid(row=6, column=1)

b3 = Button(window, text = '일정입력', width=12, command = create_1)
b3.grid(row=7, column=0)

b4 = Button(window, text = '일정수정', width=12, command = update_1)
b4.grid(row=8, column=0)

b5 = Button(window, text = '일정삭제', width=12, command = delete_1)
b5.grid(row=8, column=1)

b6 = Button(window, text = '일정조회(부분)', width=12, command = find_1)
b6.grid(row=9, column=0)

b7 = Button(window, text = '일정조회(전체)', width=12, command = find_2)
b7.grid(row=9, column=1)



# 달력 표시 디스플레이

txt = scrolledtext.ScrolledText(window, width = 80, height = 35)
txt.place(x = 10, y = 270)

txt_1 = scrolledtext.ScrolledText(window, width = 55, height = 12)
txt_1.place(x = 210, y = 54)

window.mainloop()

3.2.5 댓글

  • 큐벨리아 : 참고하기에는 너무 허접한 코드입니다 ㅠㅠ
  • 김왼손: 프로그램을 두개나 만들다니.. 훌륭합니다. :)
  • 김민재: 참고하면서 많은 도움 되었습니다!!! 감사합니다!!!

3.3 큐벨리아

3.3.1 제목

딕셔너리에 리스트을 넣을수있다는것을 만들고 알아버린 비밀번호 관리 프로그램

3.3.2 설명

비밀번호 관리 프로그램

  • 현재 기능 :
    • 등록, 조회, 수정, 삭제, 종료
  • 추가 기능 :
    • 수정(예정 -> 완료), 삭제(예정 -> 완료), 등록한 회사명, 비밀번호를 메모장으로 저장 및 불러오기(예정 -> 개선필요 -> 완료)
    • GUI 제작, 예외 처리
  • 개선 사항 :
    • 입력 기능을 함수로 만들어, 추가로 입력할것인지, 입력 기능을 종료할것인지 묻는 선택문 기능 추가(예정 -> 완료)
  • 작성 기록
    • 2020-04-30 기능설명
    • 2020-05-10 기본적인 기능 구현, 개선사항 수정완료
    • 2020-05-11 수정, 삭제 기능 추가
    • 2020-05-12 메뉴에서 문자를 입력하였을경우 출력 추가
    • 2020-05-19 파일에서 딕셔너리로 저장, 딕셔너리에서 파일로 저장 추가(개선필요)
    • 2020-05-20 파일에서 딕셔너리로 저장, 딕셔너리에서 파일로 저장 추가(완료)

3.3.3 실행화면

https://www.youtube.com/watch?v=Q6XtPtuqqZk

3.3.4 코드

file = open('TEST.txt',mode = 'a', encoding = 'UTF-8')

Dict = {}
Temp = {}

#파일에서 가져와 딕셔너리로 저장(Temp로 저장하고 개행문자를 제거후 Dic에 저장)
def FileToDictSave() :
   
   file = open('TEST.txt',mode = 'r+', encoding = 'UTF-8')
   
   for i in file :
        Temp[i] = file.readline()
    
   for i, j in Temp.items() :
        a = i.rstrip('\n')
        b = j.rstrip('\n')
        Dict[a] = b

#딕셔너리에서 파일로 저장
def DictToFileSave() :

    file = open('TEST.txt',mode = 'w+', encoding = 'UTF-8')

    file.truncate() #메모장 내용 삭제

    for i, j in Dict.items() :
        file.write(i)
        file.write('\n')
        file.write(j)
        file.write('\n')

# 입력
def Create() :

    print('')  
    print('')
    Company = input('            회사 : ') 
    print('')
    
    if Company in Dict.keys() :
        print('            중복되는 내용이있습니다.')
        return

    PW = input('            비밀번호 : ')
 
    Dict[Company] = PW

    return

# 조회
def Join() :

    print('') 
    print('')
    Company = input('            회사 : ')
    print('')

    if Company in Dict : 
        print('            비밀번호 : ', Dict[Company])
    else :
        print('            자료가 존재하지않습니다.')

# 수정
def Updata() :

    print('') 
    print('')
    Company = input('            회사 : ')
    print('')
    PW = input('            비밀번호 : ')
    print('')
    
    if(Dict[Company] == PW) :
        del Dict[Company]
        print('            새로운 비밀번호를 입력하세요.')
        print('')
        PW = input('            ')
        Dict[Company] = PW
    else : 
        print('            비밀번호가 틀렸습니다.')
        print('')
        print('            * 다시 하시겠습니까? = 1 돌아가시겠습니까? = 2')
        print('')
        if(input('            ') == '1') :
           Updata()
        else :
           return

# 삭제
def Delete() :

    print('') 
    print('')
    Company = input('            회사 : ')
    print('')
    PW = input('            비밀번호 : ')
    print('')
    if(Dict[Company] == PW) :
        del Dict[Company]
        print('            삭제되었습니다.')
    else :
        print('            비밀번호가 틀렸습니다.')
        print('')
        
while(1) :

    #초기화
    FileToDictSave()

    # 메뉴
    print('')
    print('            ***************')
    print('            *    메 뉴    *')
    print('            ***************')
    print('')
    print('            ***************')
    print('            *             *')
    print('            *   1. 입력   *')
    print('            *             *')
    print('            *   2. 조회   *')
    print('            *             *')
    print('            *   3. 수정   *')
    print('            *             *')
    print('            *   4. 삭제   *')
    print('            *             *')
    print('            *   5. 종료   *')
    print('            *             *')
    print('            ***************')
    print('')

    print('            * Select = ', end =' ')
    Select = input()

    # 1. 입력
    if Select == '1' :
        Create()
    
    # 2. 조회
    if Select == '2' :
        Join()

    # 3. 수정
    if Select == '3' :
        Updata()

    # 4. 수정
    if Select == '4' :
        Delete()

    # 4. 종료
    if Select == '5' : 
        print('')
        print('            프로그램을 종료합니다.')
        print('')
        break
    
     # 문자입력시 안내사항
    if (Select.isdigit() == False) or int(Select) > int(5) :
        print('')
        print('            잘못입력하셨습니다.')

    DictToFileSave()

3.3.5 참고자료

3.3.6 지식인

#질문
#작성자 : 큐벨리아
#메모장에 있는 내용을 키, 값을 가져와 개행문자 제거후 dic에 저장하고 싶은데 아래로 실행해보니 값만 개행문자 지워지네요 혹시 키도 지울수있는 방법아시는분 계신가요???

file = open('password.txt', 'r', encoding='utf-8')
dic = {}

for i in file :
   PW = file.readline().strip('\n')
   dic[i] = PW

print(dic)

#답변
#작성자 : 큐벨리아
#파일에서 가져와 딕셔너리로 저장(Temp로 저장하고 개행문자를 제거후 Dic에 저장)

def FileToDictSave() :
   
   file = open('TEST.txt',mode = 'r+', encoding = 'UTF-8')
   
   for i in file :
        Temp[i] = file.readline()
    
   for i, j in Temp.items() :
        a = i.rstrip('\n')
        b = j.rstrip('\n')
        Dict[a] = b

3.3.7 댓글

  • 고양이: 안녕하세요? 반가워요.
  • Projects.Kinder : 안녕하세요. 큐벨리아님 코드 참고해서 업글해봐야겠어요 :)
  • 김왼손: 자문자답이군요ㅋㅋㅋ 훌륭합니다. :)

3.4 중3메이커

3.4.1 제목

편지장프로그램

3.4.2 설명

로그인/회원가입기능과 관리자권한 기능 로그인시 채팅 칠수있는 기능 등등

2020-06-10 회원가입 아이디 중복시/로그인 아이디또는 비밀번호가 맞지않을경우 try,except함수를 이용하여 오류뜨게 수정

3.4.3 실행화면

실행화면을 넣어주세요.

3.4.4 코드

import time
def makecodebook():#암호화 사전,복호화 사전
    encbook={'a':'5','b':'1','c':'3','d':'2','e':'!',\
             'f':'@','g':'*','h':'%','i':'(','j':')','k':'&',\
             'l':'_','m':'-','n':'=','o':'+','p':'0',\
             'q':']','r':'{','s':'}','t':'/','u':'~','v':'$','w':'6','s':'7','y':'9'\
             ,'z':''}
    decbook={}
    for i in encbook:
        val=encbook[i]
        decbook[val]=i
    return encbook,decbook
        
def encrypt(msg,encbook):#암호화시키는 함수
    for i in msg:
        if i in encbook:
            msg=msg.replace(i,encbook[i])
        
    return msg
def decrypt(enc_code,decbook):#복호화시키는 함수
    for i in enc_code:
        if i in decbook:
            enc_code=enc_code.replace(i.decbook[i])
        
    return enc_code
def 왼손_지우개():#엔터40번치는 함수(이거쓰면 IDLE화면 깨끗해짐)
    print('\n'*40)    
if __name__=='__main__':#여기서부터 실행
    encbook,decbook=makecodebook()
    while 1:
        왼손_지우개()
        print('     편지프로그램      ')
        print('-----선택하세요------\n')
        print('회원가입.1\n')
        print('로그인.2\n')
        print('---------------------')
        time.sleep(0.2)
        choice=int(input('숫자만 입력:'))
        if choice==1:#회원가입
            
            왼손_지우개()
            print('회원가입을 시작합니다')
            ID=input('아이디:')
            print('비밀번호는 영어만')
            password=input('비밀번호:')
            try:
                f=open('d:\\ID\\%s'%ID,'r')
                f.close()
                왼손_지우개()
                print('오류:아이디가 존재합니다.')
                time.sleep(2)
                continue
            except:
                f=open('d:\\ID\\%s'%ID,'w')
                f.write(encrypt(password,encbook))
                f.close()
                print('잠시만 기다려주세요')
                time.sleep(1)
                print('회원가입 완료')
                time.sleep(0.2)
                왼손_지우개()
                continue
           
        elif choice==2:#로그인
            ok=0
            왼손_지우개()
            print('-----아이디,비밀번호 잘못입력시 오류가 날수있습니다-----')
            print('오류가 뜨면 프로그램을 다시 실행시켜주세요  ')
            ID=input('아이디:')
            password=input('비밀번호:')
            print('--------------------------------------------------------')
            try: 
                dd=open('d:\\ID\\%s'%ID,'r')
            except:
                왼손_지우개()
                print('오류:아이디가 없거나,비밀번호가 잘못되었습니다.')
                time.sleep(2)
                왼손_지우개
                continue
            d=dd.read()
            dd.close
            enc_password=encrypt(password,encbook)
            if enc_password==d:
                mode=1
                왼손_지우개()
                if ID=='관리자':#관리자 권한실행                        
                    if d==enc_password:
                        ok='ok'                              
                        while ok=='ok':
                            f=open('d:\\편지프로그램\\편지장.txt','r')
                            f_read=f.read()
                            f.close
                            print('관리자권한')
                            time.sleep(1)
                            왼손_지우개()
                            print('로딩중..')
                            time.sleep(2)
                            왼손_지우개()
                            print('---채팅창 내용---')
                            print(f_read)
                            print('-----------------')
                            time.sleep(2)
                            print('----관리자 권한 선택-----\n')
                            print('편지장 초기화.1\n')
                            print('해당아이디 비밀번호변경.2\n')
                            print('관리자권한off.3')
                            print('-------------------------')
                            choice=int(input('입력:'))
                            if choice==1:
                                왼손_지우개()
                                f=open('d:\\편지프로그램\\편지장.txt','w')
                                f.write('편지프로그램\n**이편지는 관리자가\
지우기전까지 사라지지않습니다**')
                                f.close()
                                print('처리중..')
                                time.sleep(0.5)
                                왼손_지우개()
                                print('완료')
                                time.sleep(1)
                                
                                
                            elif choice==2:
                                왼손_지우개()
                                ID2=input('비밀번호를 변경할 아이디')
                                password_change=input('변경할 비밀번호')
                                f=open('d:\\ID\\%s'%ID2,'w')
                                f.write(encrypt(password_change,encbook))
                                f.close()
                                print('처리중..')
                                time.sleep(0.5)
                                print('완료')
                                time.sleep(1)

                            else:
                                ok=1
                            
            else:
                왼손_지우개()
                print('오류:아이디가 없거나,비밀번호가 잘못되었습니다.')
                time.sleep(2)
                왼손_지우개()
                pass

           
        if mode==1:#로그인 성공시 다음실행
            h=''
            while h=='':
                왼손_지우개()
                f=open('d:\\편지프로그램\\편지장.txt','r')
                f_read=f.read()
                f.close
                print('-----선택 ------')
                print('홈으로.1')
                print('작성.2')
                print('편지읽기.3')
                if ok==1:
                    print('관리자권한on.4')
                choice=int(input('숫자만입력:'))                     
                if choice==2:
                    왼손_지우개()
                    a=input('편지작성:')
                    f=open('d:\\편지프로그램\\편지장.txt','a')
                    f.write('\n%s:'%ID)
                    f.write(a)
                    f.close
                elif choice==3:
                    왼손_지우개()
                    print('----몇초동안 보실건가요---')
                    시간=int(input('숫자만 입력'))
                    왼손_지우개()
                    print(f_read)
                    time.sleep(시간)
                    왼손_지우개()
                elif choice==1:
                    왼손_지우개()
                    h=1
                elif ok==1:
                    if choice==4:
                         manager_on='ok'
                         왼손_지우개()
                         print('관리자권한 on')
                         time.sleep(1)
                         왼손_지우개()

3.4.5 댓글

3.5 전민관

3.5.1 제목

영단어 공부하기

3.5.2 설명

영어 단어 암기 프로그램을 만들고 싶습니다.

  • 영어단어 및 뜻 입력
    • 파일 불러오기(완료)
    • 영어와 한글 나누기(완료)
    • 영어와 한글을 제외한 숫자와 특수문자 제거(완료)
    • 영어와 한글을 묶어서 표시(완료)
    • 영어 이후에 한글 나오게 하기(완료)
  • 간단한 테스트를 통한 복습하기
    • 테스트 기능 추가(진행완료)
    • 5번 연속으로 맞출 시 단어 제거 기능 추가(연속이 아닌 그냥 5번 맞출시 단어 제거)
  • 영어단어에 따른 발음 듣기(적용불가)

3.5.3 실행화면

실행화면을 위해 코드를 변경하여 랜덤으로 나오지 않고 한글이 아닌 영어 그대로 써야 정답으로 처리되게 바꿨습니다. 실제 파일은 제대로 실행이 됩니다. 영단어장.png

3.5.4 기록

  • 1일차
    • 인터넷에서 영단어 모음 파일을 가져와 파이썬에 입력 시도함.
      • 영단어 모음 파일을 가져오는 중 (UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 6987: illegal multibyte sequence)에러 발생으로 인터넷 검색하여 수정 완료
    • 영어와 한글을 split으로 나누려고 시도.
      • 먼저 파일에 있는 영어와 한글안 뺴고 나머지는 지우려고 시도 하는데 계속 에러 발생(숫자와 .을 제거해야함)
  • 2일차
    • 제대로 파일을 읽어오는지 확인을 위해 다른 코드는제거하고 open과 close만 놔두고 그 사이에 print를 넣어 봤으나 에러는 안나왔지만 제대로 읽지 못하는거 같음.
  • 3일차
    • for in으로 읽는데 성공 했으나 한줄씩 읽히는게 아니고 한번에 읽혀서 while로 변경하여 한줄씩불러오기 성공. 그러나 계속 나는 에러를 잡지 못하겠음. 대체 왜 안되는지.....답답해 죽겠네....
      • ValueError: too many values to unpack (expected 2)
    • 검색을 해보니 기준이 2번 들어가 있어서 에러난다고 해서 (e, k) = voca.split('(',1)로도 해보고 소괄호가 특수문자라 앞에 역슬래쉬도 넣어 봤는데 오히려 에러가 증가 하기만 하고 해결이 안됨...
      • ValueError: not enough values to unpack (expected 2, got 1)
    • Break 위치를 잘못 넣어서 계속 에러 발생함. 수정후 print 확인완료.
      • while 맨 하단에 break를 넣어서 이미 Read를 다 했는데도 split코드로 넘어가서 에러 발생
   voca = text.readline()                         voca = text.readline()
   (e, k) = voca.split(' (')                         if not voca : break    
   en.append(e)                                   (e, k) = voca.split(' (')
   kr.append(k)                                    en.append(e) 
   if not voca : break                            kr.append(k)
  • 4일차
    • re.sub을 이용하여 숫자와 특수문자를 지우려고 했는데 계속 error 발생. 인터넷에 검색해도 입력 방법만 나와서 계속 찾다가
  list와 문자열의 차이를 알게됨(re모듈을 사용하려면 문자열이어야 하는데 append를 사용할 경우 리스트로 저장됨
      • join으로 list 상태를 문자열 상태로 변경(아....정말 뿌듯하다........별거 아닌거 같으면서도 이걸로 고생한걸 생각하면.....)
  • 5일차
    • 엔터를 누르면 랜덤하게 영어와 뜻이 한번에 프린트 되도록 설정 함.
      • 테스트를 하다보니 계속 엉뚱하게 되어서 찾아보니 list와 문자열 변경(join, split)를 사용할 때 기준을 하나 정하지 않고 진행하여 공백(" ") 기준으로 나뉘어서 꼬임. 특정 문자를 추가하여 수정 완료
  • 6일차
    • 처음에 엔터를 누르면 영어 단어가 나오고 또 엔터를 치면 한글 뜻이 나옴. 처음에 했던 목표 달성.
    • 무엇을 더 추가 할지 생각 해봐야겠다......
  • 7일차
    • 휴식
  • 5/18
    • 새로운 목표를 가지고 다시 시작.
    • 추가 기능을 넣으려다가 싹 다 갈아엎는중....
  • 5/19
    • 초기화면 > '0, 1'번 입력하여 공부, 테스트 선택이동(테스트 섹션 미적용) > 영어출력 > 엔터 입력 > 한글 출력 and "엔터" = 새로운 영어 출력, "0" = 종료
      • 단어가 잘 보이지 않아 []를 추가 하던 중 앞, 뒤에 공백을 없애려고 하는 중
  • 5/20
    • 앞뒤 공백 제거 완료(list, 문자열 변환 할떄 추가로 공백제거 실행)
    • TEST 기능 업데이트 완료
      • 추가기능을 넣을까 말까.......................
  • 5/21
    • 5번 연속으로 맞출 시 단어 제거 기능 추가 기능을 추가 하려고 알아보는데 아직 방법을 모르겠음.....
  • last
    • 5번 연속 맞출시 단어 제거는 포기. 그냥 5번 맞출시 제거 기능 추가.
    • GUI 적용해보려 하였으나 시간이 부족하여 포기

3.5.5 코드

#window.mainloop()
en = []                         # 영어 저장할 예정
kr = []                         # 한글 저장할 예정

text = open("영단어.txt", 'rt', encoding = 'UTF8')     # 영단어 파일 불러오기
                                                       # cp949 코덱으로 인코딩 된 파일 문제
while True:

    voca = text.readline()      # 한줄씩 불러오기
    if not voca : break         # voca 로딩할게 없을 때 정지
    (e, k) = voca.split(' (')
    en.append(e)        # en에 영어 추가하기
    kr.append(k)        # kr에 한글 추가하기
text.close()            # 영단어 파일 닫기
en = 'ㄱ'.join(en)        # list를 문자열로 변경
kr = 'a'.join(kr) 
en = re.sub('[.0-9]','',en)     # 영어를 제외하고 지우기
kr = re.sub('[)]','',kr)        # 한글을 제외하고 지우기
kr = re.sub('\n', '', kr)       # \n가 사라지지 않아서 추가 함
en = en.split('ㄱ ')         # 다시 list로 변환
kr = kr.split(' a')
a = en

print(' 공부를 하시려면 0번\n 시험을 보시려면 1번을 입력하세요')

select = input()
g = "1"
if select == "0":
    while True :
        if g != "0" :
            g = randint(1, 503)
            print([en[g]], "\n\n\n\n뜻 = enter, End = 0\n\n\n")
            select = input()
            if select != "0" :
                print([kr[g]], "\n\n\n다음 단어 = enter, End = 0\n")
                select = input()
                if select == "0" :
                    print("수고하셨습니다")
                    break
                else : 
                    print()
                
            else :
                print("수고하셨습니다")
                break


        else :
            print("수고하셨습니다")
            break
        
elif select == "1":

    while True :
        if g != "0" :
            g = randint(1, 503)
            test = input([en[g]])
            
            if test == "0" :
                print("수고하셨습니다")
                break
            elif kr[g] == test :
                print("\n\n정답      end = 0\n\n")
                en.append(en[g])
                if en.count(en[g]) == 6 :
                    del (en[g], kr[g])   
                    print(en[g])
                
            else :
                print("\n\n오답      end = 0\n\n")
                    
                     
        else :
            print("수고하셨습니다")

3.5.6 댓글

  • 김왼손: 차근차근 기능이 늘어가는게 멋지네요. :)


3.6 saha

3.6.1 제목

제목을 정해주세요.

3.6.2 설명

초 분 시 변환기

3.6.3 실행화면

실행화면을 넣어주세요.

3.6.4 코드

class Convert:
    def __init__(self, num):
        self.num = num

    def second(self):            #초를 시/분으로 변환
        secs = self.num % 60
        min0 = self.num // 60
        hour0 = min0 // 60
        min1 = min0 % 60
        print(f'{hour0}시간 {min1}{secs}초 입니다.')

    def minute(self):                 #분을 시로 변환
        hour1 = self.num // 60
        min2 = self.num % 60
        print(f'{hour1}시간 {min2}분 입니다.')

----------------------------------------------------------------
from sec_convert import *
while True:
    convert_type = input('변환시킬 타입을 정해 주세요 1.초 2.분')
    if convert_type == '1':
        num0 = int(input('시간을 입력해 주세요.'))
        time = Convert(num0)
        time.second()
    elif convert_type == '2':
        num1 = int(input('시간을 입력해 주세요.'))
        time = Convert(num1)
        time.minute()

3.6.5 댓글

  • 김왼손: 오.. class까지.. 멋집니다. :)


3.7 타박상꼬리뼈

3.7.1 제목

제목을 정해주세요.

3.7.2 설명

전에도 한번은 했었다가 잘 이해가 안돼서 진도가 안나갔는데 그래도 이때 까지 배운 코드가지고 코딩을 해보고 싶습니다.

3.7.3 실행화면

실행화면을 넣어주세요.

3.7.4 코드

def Time(name, number):
    if number <= 6:
        print(name + "문장")
    elif 6 <  number <= 7:
        print(name + "문장")
    elif 7 < number <= 8:
        print(name + "문장")
    elif 8 < number <= 9:
        print(name + "문장")
    else: print(name + "문장")

Time(Guido Van Rossum, 8)
#참고로 Guido van Rossum 이분이 파이썬 창시자라네요

3.7.5 설명

동물 키우기 식으로 코딩을 할려고 합니다.

3.7.6 코드

cat = {
    "name" : "이름",
    "age" : 5,
    "weight" : 5,
    "hungry" : True
}

def feed(pet):
    if pet["hungry"] = True:
        pet["hungry"] = False
        pet["weight"] += 1
        pet["age"] += 0.5
         if pet["age"] == 12:
            print("The pet is death")
        else:
    else: print("The pet is full")

def exercise(pet):
    if pet["hungry"] = False:
        pet['hungry"] = True
        pet["weight"] -= 1
        pet["age"] += 0.5
        if pet["age"] == 12:
            print("The pet is death")
        else:
    else: print("The pet is tired")

def minus_age(pet):
    if pet["age"] > 1:
        pet["age"] -= 1
    else:
        print("It's too young")

def plus_age(pet)
    if pet["age"] < 11:
        pet["age"] += 1
    else:
        print("It can be die")

feed(cat)
print(cat)
exercise(cat)
print(cat)
for i in range(2):
    feed(cat)

3.7.7 설명

다시올려여

3.7.8 코드

a = int(input("값을 입력하시오"))

def plus(c):
    b = a + c
    print(a,"+",c,"=",b)

def minus(c):
    b = a - c
    print(a,"-",c,"=",b)

def division(c):
    b = a // c
    d = a % c
    print(a,"%",c,"=",b,"+",d)

def multiply(c):
    b = a * c
    print(a,"*",c,"="b)

def squared(c):
    b = a ** c
    print(a,"^",c,"=",b)

plus(5) #a에 5를 넣으면 "5 + 5 = 10"이 출력됨

3.7.9 설명

한국어를 명령어로 만들었어요

3.7.10 코드

출력 = print
 = True
거짓 = False

a = 4
a += 1

if a == 5:
    출력()
else:
    출력(거짓)

3.7.11 댓글

  • 김왼손: 여러 프로그램을 작성하고 있군요. 대단합니다. :)


3.8 raina

3.8.1 제목

제목을 정해주세요.

3.8.2 설명

하루 권장 칼로리 안에서 자취생을 위한 다이어트 식단 만드는 프로그램을 만들고 싶습니다. 텍스트 중심의 하루치 식단편성 프로그램으로 먼저 시작하고 부족한 부분들은 하나씩 추가하여 업그레이드 시키려고 합니다.

1. 여성 or 남성 선택
-남여 권장칼로리 구분해서 입력하기
2. 아침/ 점심/ 저녁 선택
-음식메뉴선택 : 한식 / 중식 / 양식 / 일식 (칼로리 표시)
3. 권장칼로리 판단
-미만: pass
-적정: pass
-초과: 운동옵션 추가
4.운동옵션
-초과 칼로리만큼 운동옵션 추가하기
5. 위의 선택들을 잘 정리해서 출력하기

3.8.3 실행화면

실행화면을 넣어주세요.

3.8.4 코드

input("당신은 여성입니까? 남성입니까?")
a = "여성"
b = "남성"

if a:
    print("하루권장 칼로리는 1800Kcal입니다.")
elif b:
    print("하루권장 칼로리는 2500Kcal입니다.")

3.8.5 댓글

  • 김왼손: 완성되면 실용적일 것 같아요. :)


3.9 람오 LAMO

3.9.1 제목

제목을 정해주세요.

3.9.2 설명

고등학생입니다. 그림 그리기가 취미고, 언젠가 게임회사에 들어가거나 제대로 된 인디게임 만드는 것이 꿈입니다.
- 작년 여름, 학교에서 방과후 웹디자인으로 처음 코딩을 접했습니다. 세 달정도 하다가 죽는줄 알았습니다....

  • 만들고 싶은 프로그램

스토리 위주의 간단한 게임 (머드 게임을 만드려 했지만.. 실력 부족이라 렌파이를 이용해서 해보려 합니다.)

3.9.3 실행화면

실행화면을 넣어주세요.

3.9.4 진행 상황

5/25 -

22.png

넣을 그림은 이번주 내로 그리려고 합니다..ㅠ


  • 엔딩 분기점
   * 점수에 따라 달라지는 엔딩을 구현한다. (무슨 점수인지는 미정)
  • 퍼즐? 전투?
   (전투는 추가하기 힘들것 같으니 보류..)
  • 추가 예정

3.9.5 코드

(전체적으로 제가 한 건 거의 없습니다ㅠㅠ 아마 조금 손 봐서 다른거 추가해봐야 될거 같네요.

scrypt.rpy의 일부입니다.

define ch_viola = Character("비올라")
define ch_hyde = Character("하이드")

image bg_forest = "bg/forest-1.jpg"
image scg_viola :
    im.FactorScale("scg/viola.png",0.5,)
    yalign 0.0 

define cetner = Position(xalig = 0.5, yalign = 0.0)


image scg_hyde = "scg/hyde.png"


label start:
    scene bg_forest
    
    "나래이션"

    show scg_viola
    ch_viola "...??"

    
    ch_hyde "(대사)"

    return

gui (바꾼거 이것밖에 없어서 얘만 올려요)

## The font used for in-game text.
define gui.text_font = "MapoGoldenPier.ttf"

## The font used for character names.
define gui.name_text_font = "MapoGoldenPier.ttf"

## The font used for out-of-game text.
define gui.interface_text_font = "MapoGoldenPier.ttf"

3.9.6 댓글

  • 김왼손: 텍스트 기반으로 먼저 만들어 보는건 어떨까요? :)

3.10 ken-ni

3.10.1 제목

제목을 정해주세요.

3.10.2 설명

구매대행 프로그램을 만들고 싶습니다.

3.10.3 실행화면

실행화면을 넣어주세요.

3.10.4 코드

print('Hello Python!')

import matplotlib.pyplot as plt
%matpkotkib inkine

from wordcloud import wordCloud

text = open('condtitution.txt').read( )

wordcloud = wordCloud( ).generate(text)

wordcloud.words_

plt. figure(figsize=(12,12))
pit. imshow(wordcloud, interpolation='bilinear')
plt. axis("off")
plt. show( )

3.10.5 댓글

  • 김왼손: 어떤 프로그램이 나올지 기대됩니다. :)


3.11 파이싼

3.11.1 제목

제목을 정해주세요.

3.11.2 설명

타 프로그램과의 연계 및 3rd 파티로 이용하고 싶습니다.

3.11.3 실행화면

실행화면을 넣어주세요.

3.11.4 코드

print('Hello Python!')

import pandas as pd
Function1 = pd.Series([1, 2, 3])
print(Function1)

3.11.5 댓글

  • 김왼손: 어떤 프로그램과의 연계일까요? :)

3.12 타박상꼬리뼈

3.12.1 설명

만약에 온라인으로 시험을 친다면 이렇게 칠 것 같아서 만들어 봤습니다. (아직 미왕성이예요!)

3.12.2 코드

#다음 문제를 푸시오
#1. 316 + 824
#2. 13 * 4
#3. 75 % 15
#4, 1132 - 296
#5. 13 ^ 2
#6. 5 + 4 * 13
#7. 15 * 12
#8. {9(3 - 4)} ^ 2
#9. (2 ^ 0)
#10. 19 ^ 19

a = 316 + 824
b = 13 * 4
c = 75 // 15
d = 1132 - 296
e = 13 ** 2
f = 5 + 4 * 13
g = 15 * 12
h = (9 * 3 - 4 * 9) ** 2
i = 2 ** 0
j = 19 ** 2

k = 0

def prblm(number, answer): #문제번호, 답
    if number == 1:
        if answer == a:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 2:
        if answer == b:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 3:
        if answer == c:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 4:
        if answer == d:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 5:
        if answer == e:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 6:
        if answer == f:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 7:
        if answer == g:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 8:
        if answer == h:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 9:
        if answer == i:
            return("O")
            return k += 10
        else:
            return("X")
    if number == 10:
        if answer == j:
            return("O")
            return k += 10
        else:
            return("X")
for i in range(1, 11):
    print(prblm(i, int(input())

print("점수: " + str(k))

3.13 타박상꼬리뼈

3.13.1 설명

로또 추첨기를 만들었는데 floor랑 ceil을 응용해서 만들었어요.

3.14 코드

from math import*
from random import*

x = ["floor", "ceil", "int"]

y = input()

if y in x:
    for i in x:
        if y == i:
            a = int(random() * 45)
            b = int(random() * 45)
            c = int(random() * 45)
            d = int(random() * 45)
            e = int(random() * 45)
            f = int(random() * 45)
            
            print("값:",i)

            print(a)

            while a == b:
                b = i(random() * 45)
                continue
            while b == 0:
                b = i(random() * 45)
                continue

            print(b)

            while b == c:
                c = i(random() * 45)
                continue
            while c == 0:
                c = i(random() * 45)
                continue

            print(c)

            while c == d:
                d = i(random() * 45)
                continue
            while d == 0:
                d = i(random() * 45)
                continue

            print(d)

            while d == e:
                e = i(random() * 45)
                continue
            while e == 0:
                e = i(random() * 45)
                continue

            print(e)

            while e == f:
                f = i(random() * 45)
                continue
            while f == 0:
                f = i(random() * 45)
                continue

            print(f)
else:
    print("제대로된 값을 입력하시오")
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}