학교 정보 수행평가에 도움이 필요합니다.

조회수 173회
//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

이걸 집어넣으니까 위에게 반복되는 것 같습니다. 뭐가 문제인걸까요? 이걸 빼기엔 음료 이름에 다른걸 입력하면 오류가 떠서 곤란합니다. 어떻게 해야할까요?

  • 제 생각엔 if want == drink로 체크를 해서 음료수를 찾아야 되는데 거기에 for문을 추가하셔서 그런 것 같네요. for문으로 0으로 시작하니 밀키스 이외에는 안꺼내지는게 당연한것 같구요 BillTime 2022.10.28 09:42

1 답변

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.