학교 정보 수행평가에 도움이 필요합니다.
조회수 541회
//drink = [['밀키스', 1000,'원'],['토레타', 1200,'원'],['복숭아녹차', 1500,'원'],['환타', 1000,'원']]
while True:
want=input('밀키스, 토레타, 복숭아녹차, 환타가 있습니다. 원하는 음료를 골라주세요. : ')
for i in drink:
if want==i[0]:
print(i[1],'원이 필요합니다.')
while True:
ask=input('돈을 넣으시겠습니까? y/n ->')
if ask=='y'or ask=='Y':
money=int(input('얼마를 넣으시겠습니까? ->'))
if money<int(i[1]):
ask=input('돈이 부족합니다. 더 넣으시겠습니까? y/n ->')
if ask=='y'or ask=='Y':
continue
elif ask=='n'or ask=='N':
break
elif money>=int(i[1]):
print('거스름돈은', money-i[1], '원 입니다.')
ask=input('계속 마시겠습니까? y/n ->')
if ask=='y'or ask=='Y':
break
elif ask=='n'or ask=='N':
break
else:
print('y 혹은 n만 입력해주세요.')
break
elif ask=='n'or ask=='N':
break
else:
print('y 혹은 n만 입력해주세요.')
break
elif want!=i[0]:
ask=input('목록에서만 골라주세요. 음료를 마시겠습니까? y/n ->')
if ask=='y' or ask=='Y':
break
elif ask=='n' or ask=='N':
break
if ask=='n'or ask=='N':
break
학교 수행평가로 프로그램 하나를 짜야합니다. 그래서 음료수 자판기 프로그램을 짜봤습니다. 음료에 밀키스를 입력했을 경우 다 잘 되는데, 나머지 음료들을 입력하면 '목록에서만 골라주세요. 음료를 마시겠습니까? y/n ->' 이 부분이 다시 반복됩니다. 계속 만져봤는데
//elif want!=i[0]:
ask=input('목록에서만 골라주세요. 음료를 마시겠습니까? y/n ->')
if ask=='y' or ask=='Y':
break
elif ask=='n' or ask=='N':
break
이걸 집어넣으니까 위에게 반복되는 것 같습니다. 뭐가 문제인걸까요? 이걸 빼기엔 음료 이름에 다른걸 입력하면 오류가 떠서 곤란합니다. 어떻게 해야할까요?
1 답변
-
자, 지금 짠 코드가 제대로 작동하지 않는 이유는 다음과 같기 때문입니다.
drink = [['밀키스', 1000,'원'],['토레타', 1200,'원'],['복숭아녹차', 1500,'원'],['환타', 1000,'원']] for i in drink: print(i[0]) if i[0] != '토레타': print('에러!') break
여기서 문제는 뭘까요?
제일 먼저 해야 하는 작업은 음료수 이름이 일치하는지 확인하는게 아니라, 음료수 이름이 제공하는 리스트에 있는지를 확인해야겠죠.
그리고 그 방법은, 음료수 이름이 들어있는지 확인하는 것도 있을 것이고, 음료수 이름에 대한 값을 호출하는 것도 있을 겁니다. 어떤 방식을 쓰던, 본인 마음대로 쓰면 됩니다.
※ y, n은 upper나 lower을 쓰는게 좀 더 간결합니다.
댓글 입력