인프런 커뮤니티 질문&답변

sinyoung408님의 프로필 이미지
sinyoung408

작성한 질문수

파이썬(Python) 기초부터 실무까지 part.1

반복문(실습-7)

"끝"을 입력하면 에러가 발생하여 질문드립니다.

작성

·

238

0

cnt = 0     # 상품 개수
sum = 0 # 상품 가격 합친 것
price = ""
print("상품금액 입력을 종료하고자 한다면 \"\"을 입력해주세요.")
while True:
price = input("상품 금액을 입력하세요. , 음수제외. : ")
if int(price) > 0:
sum += int(price)
print("현재 총 합산된 금액은 %d 입니다." %sum)
cnt += 1
elif int(price) < 0:
print("음수는 해당되지 않습니다. 다시 입력해주세요.")
continue
elif price == "":
print("입력을 종료합니다.")
print("총 물건의 개수는", cnt, "이고, 합산 금액은 %d입니다." %sum)
break-
 
더불어 %d %d 를 사용하였을 때 뒤에 %cnt %sum 을 이어 사용하였더니 에러가 발생하였습니다. 이는 어떻게 해결해야 하나요?

답변 3

0

% 여러개 넣으면 문자열 뒤에 %(변수1, 변수2) 이렇게 순서대로 쓰면 될거에요

0

% 뒤에 띄어쓰기 해보세요

0

반복문 속 조건문에서 선순위로 시작되는 if문에서 오류가 나는 것 같습니다.

 

작성하신 것과 같이 

    if int(price) > 0:
가 앞으로 오고
    elif price == "끝":
가 뒤로오게 되면
 
 

우선적으로 int(price) > 0을 먼저 판단하게 됩니다. 이때 숫자를 입력할때는 이상이 없지만 문자열을 입력받게 되면 문자열"끝"인 price를 int값으로 변환시킬 수 없기 때문에 오류가 발생하게 됩니다.

이를 해결하기 위해서 

    if price == "끝":
 
    elif int(price) > 0:
 
로 변경하여 끝이 올때를 먼저 판단하게 해주면 제대로 실행되게 됩니다.
 
 
sinyoung408님의 프로필 이미지
sinyoung408

작성한 질문수

질문하기