2016-06-20 2 views
2

기사에서 할인을 계산하는 간단한 코드를 작성하려고합니다. 다음은 코드이며 다음은 3 행에서 예외를 던집니다. . 코드에서 예외입니다 :예외 : " 'float'유형의 non-int로 시퀀스를 곱할 수 없습니다.

Traceback (most recent call last): 
    File "C:/Users/basam/AppData/Local/Programs/Python/Python35/discounts.py", line 3, in <module> 
    discount=0.1*price 
TypeError: can't multiply sequence by non-int of type 'float' 

코드는?

사람이 문제가 @Silvio Mayolo으로

답변

2

가 밝혔습니다 무엇인지에 대한 조언을 할 수

price=input('how much is your item?') 
if int(price) <= 10: 
    discount=0.1*price 
, 문제가 있다는 것입니다 귀하의 가격 변동 String 유형입니다. 당신은 소수점 값을 가질 수 있습니다 '돈'상대하고 고려 - 당신은() 입력을 포장 계산이 더 나은 아직

price = int(input('how much is your item?')) 
if price <= 10: 
    discount = 0.1 * price 

print(discount) 
>> 0.5 

또는 작업 할 수 있도록해야 정수로 입력 값을 캐스팅하기 위해 호출 할 수 있습니다 오히려 'INT'

price = float(input("how much is item 2?")) 
if price <= 10: 
    discount = 0.1 * price 

print(discount) 
>> 0.5 
+1

이것은 완전히 정확하지 않습니다. int를 float로 곱하면됩니다. 문제는 '가격'이 숫자가 아닌 문자열이라는 것입니다. –

+0

좋은 점 ....! – AK47

-1

변경의 핵심은 int(price)입니다 discount=0.1*float(price)

5

하는 것보다 '부동'형식을 사용합니다. input 명령은 변수 price에 저장된 문자열을 반환합니다.

두 번째 줄에서 priceint(price)이라는 호출로 숫자로 변환되지만 그 결과는 아무 곳에도 저장되지 않습니다. 비교에 사용 된 다음 폐기됩니다. 그래서 당신이 세 번째 줄에서 번식하러 갈 때, 당신은 한 번에 여러 번 곱하는 것을 시도하고 있습니다.

관련 문제