파이썬 질문이 있습니다.
조회수 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
-
댓글 입력