• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

안녕하세요 강의 듣고나서 혼자서 만들어봤는데.. 영 모르겠어서 질문 남깁니다.

20.12.29 22:39 작성 조회수 100

0

이렇게 여기에 질문해도 될지 모르지만...

어제 파이썬 초급 강의를 모두 마치고 어설프게 나마 혼자서 코딩 해봤습니다..

저는 특정 메뉴 활동을 마친 이후에 자동으로 처음으로 돌아가는게 아니라,

특정 명령어를 입력하면 처음으로 돌아가게끔 하고싶은데,

도저히 어떻게 해야할지 떠오르지 않아서 열심히 구글링하고 찾아보다가 결국 선생님께 도움 요청합니다 ㅠㅠ

직접 코딩 해본거라서 많이 허접할 지도 모르지만.. 

제가 원하는 건..

1번으로 신규 학생을 등록, 2번으로 기록열람, 3번으로 상담기록 추가를 한 후 특정 명령어를 입력하면 맨 처음 메뉴가 출력되었으면 좋겠습니다. while문으로 해두니까 계속 처음으로 돌아가서 특히 상담 기록 열람을 하고 난 이후에 상담 내용이 위로 쭉 올라가 버리더라구요 ㅠㅠ 지도편달 부탁드립니다.

#시작
import os
import csv

def counseling():
while True:
print("------학생 상담 일지------")
print("1 - 학생 신규 등록")
print("2 - 상담 기록 열람")
print("3 - 상담 추가 기록")
print("4 - 프로그램 종료")
menu1 = input("번호를 입력해주세요 :")

if menu1 == '1':
newname = input("학생의 이름을 입력해주세요 : ")
print(newname)
with open('./students/{}.csv'.format(newname), 'w', newline="") as n:
date = str(input("상담 날짜 : "))
content = str(input("상담 내용 : "))
writer = csv.writer(n)
writer.writerow([date, content])

elif menu1 == '2':
path = './students'
lists = os.listdir(path)
for a in lists:
print(a)
open_name = input('학생의 이름을 입력하세요 : ')
with open("./students/{}.csv".format(open_name), 'r') as f:
rdr = csv.reader(f)
for v in rdr:
print(v)

elif menu1 == '3':
path = './students'
lists2 = os.listdir(path)
for a in lists2:
print(a)

add_name = input("학생의 이름을 입력해주세요 : ")
with open('./students/{}.csv'.format(add_name), 'a') as b:
date = str(input("상담 날짜 : "))
content = str(input("상담 내용 : "))
writer = csv.writer(b)
writer.writerow([date, content])
else:
if menu1 == '4':
break

counseling()

답변 1

답변을 작성해보세요.

0

while continue 구문도 검색해보세요.