파이썬 질문이 있습니다.

조회수 614회
aa=[5000,2000,3000,4000,1000]
c=aa[0]
d=aa[1]
e=aa[2]
f=aa[3]
g=aa[4]

print('1.배추')
print('2.무')
print('3.상추')
print('4.고추')
print('5.오이')
b=int(input('상품 번호를 입력하시오'))

while b>0:
    if b==1:
        print(c)
        b=int(input('상품 번호를 입력하시오'))
    elif b==2:
        print(d)
        b=int(input('상품 번호를 입력하시오'))
    elif b==3:
        print(e)
        b=int(input('상품 번호를 입력하시오'))
    elif b==4:
        print(f)
        b=int(input('상품 번호를 입력하시오'))
    else:
        break
print('종료')

여기까지 만들어놨는데 그 다음이 안되네요.

위while문에서 0을 입력하기 전까지 제가 선택하는 값을 더하고 싶습니다.

ex) 1,2,4,0(else값) 입력 시= 위의 리스트 값대로 11000(5000+2000+4000), 종료
       2,5,0(else값) 입력 시=위의 리스트 값대로 3000(2000+1000), 종료

2 답변

  • 질문의 코드는 반복되는 코드도 많고 간결하지 못합니다.

    파이썬에서는 if문이 여러개가 되는 경우 dict 를 사용하는 편이 효율적입니다.

    print 또한 sep 옵션이 제공되니 적극 활용하면 훨씬 간결해집니다.

    c, d, e, f, g = [5000,2000,3000,4000,1000]
    product_price = {'1':c, '2':d, '3':e, '4':f}
    
    product_name = ('1.배추', '2.무', '3.상추', '4.고추', '5.오이')
    print(*product_name, sep = '\n')
    
    cart_sum = sum(product_price[num] for num in iter(lambda:input('상품 번호를 입력하시오'), '0'))
    print(cart_sum, '종료', sep = '\n')
    
    • 감사합니다 제가 파이썬을 배운지 얼마 되지않아 함수들에 대해 잘 모릅니다. 부족한 실력으로 짜보려고 하는데 도움 주셔서 감사합니다. 써주신 부분들에서 모르는 함수들은 제가 직접 찾아보고 다시 글 올리겠습니다. 알 수 없는 사용자 2019.11.14 22:19
  • 감사합니다 제가 파이썬을 배운지 얼마 되지않아 함수들에 대해 잘 모릅니다. 부족한 실력으로 짜보려고 하는데 도움 주셔서 감사합니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

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

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)