좌석 예약은 프로그램이 종료되기 전까지 계속 새로운 예약을 받거나 종료된 이후에도 계속 정보를 저장할 수 있어야 한다. 여기서는 프로그램이 종료되기 전까지만 정보를 저장하되, 계속 정보(새로운 예약)를 받을 수 있도록 동작하는 코드를 작성했다. 무한 루프를 이용해 재입력이 가능하도록 하였으며, 시작 화면을 두어 진행 여부를 결정할 수 있도록 작성하였다.
# 선언부
import sys
T_Table = [i*0 for i in range (10)]
temp_s = f'{"":-<38}'
def my_exit() :
print("프로그램을 종료합니다", end = '')
sys.exit(0)
def f_T_Table() : # 좌석 출력
print(temp_s)
print("\t", end = '')
for i in range (10) :
print(i+1, end = ' ')
print("\n", end = "%s\n" %temp_s)
for r in range (10) :
print("[%02d]" % (r+1), end = '\t')
for c in range (10) :
print(T_Table[r][c], end = ' ')
print("")
def s_r() : # 좌석 예약
row = int(input("좌석의 행 번호를 입력하세요(종료는 -1): "))
if (row == -1) : my_exit()
else :
col = int(input("좌석의 열 번호를 입력하세요(종료는 -1): "))
if (col == -1) : my_exit()
if (T_Table[row-1][col-1] == 0) :
T_Table[row-1][col-1] = 1
f_T_Table()
print("%d행, %d열 좌석이 예약되었습니다." % (row, col))
elif (T_Table[row-1][col-1] == 1) : print("이미 예약된 자리입니다.")
else : print("ERROR")
# 리스트 초기화
for i in range (10) :
T_Table[i] = [i*0 for i in range (10)]
"""
# 저장 값 확인
print(T_Table)
"""
# 초기값 출력
f_T_Table()
while True :
print("예약: 0 종료: -1")
sere = int(input("입력 위치: "))
if (sere == -1) : my_exit()
elif (sere == 0) :
s_r()
else : print("ERROR 잘못된 입력입니다.")