programing

TypeError가 표시되는 이유: 시퀀스를 'float' 유형이 아닌 형식으로 곱할 수 없습니까?

topblog 2023. 8. 16. 21:54
반응형

TypeError가 표시되는 이유: 시퀀스를 'float' 유형이 아닌 형식으로 곱할 수 없습니까?

판매 금액에 정의된 판매세(0.08)를 곱하여 총 금액(판매세 시간 판매액)을 출력하기 위해 입력합니다.

이 오류가 발생합니다.뭐가 잘못됐거나 어떤 제안이 있는지 아는 사람?

salesAmount = raw_input (["Insert sale amount here \n"])
['Insert sale amount here \n']20.99
>>> salesTax = 0.08
>>> totalAmount = salesAmount * salesTax

Traceback (most recent call last):
  File "<pyshell#57>", line 1, in <module>
    totalAmount = salesAmount * salesTax
TypeError: can't multiply sequence by non-int of type 'float'

raw_input문자열(문자열)을 반환합니다.파이썬에서 문자열과 플로트를 곱하는 것은 정의된 의미가 없습니다."AB" * 3이라"ABABAB"얼마입니까?"L" * 3.14회신하지 마십시오."LLL|") 문자열을 숫자 값으로 구문 분석해야 합니다.

시도해 볼 수도 있습니다.

salesAmount = float(raw_input("Insert sale amount here\n"))

아마도 이것은 미래에 다른 사람들에게 도움이 될 것입니다. 저는 플로트와 플로트 목록을 곱하는 동안 같은 오류가 발생했습니다.문제는 여기 있는 모든 사람들이 플로트에 문자열을 곱하는 것에 대해 이야기했기 때문에 문제는 실제로 목록에서 * 연산자를 사용하는 것이었습니다.

예:

import math
import numpy as np
alpha = 0.2 
beta=1-alpha
C = (-math.log(1-beta))/alpha

coff = [0.0,0.01,0.0,0.35,0.98,0.001,0.0]
coff *= C

오류:

    coff *= C 
TypeError: can't multiply sequence by non-int of type 'float'

솔루션 - 목록을 numpy 배열로 변환합니다.

coff = np.asarray(coff) * C

문제는 salesAccount가 문자열로 설정되어 있다는 것입니다.python interpreter에 변수를 입력하고 Enter 키를 누르면 입력한 값이 따옴표로 둘러싸여 표시됩니다.예를 들어 56.95를 입력하면 다음과 같이 나타납니다.

>>> sales_amount = raw_input("[Insert sale amount]: ")
[Insert sale amount]: 56.95
>>> sales_amount
'56.95'

판매세를 곱하기 전에 문자열을 플로트로 변환할 수 있습니다.당신이 알아낼 수 있도록 그것을 남겨두겠습니다.행운을 빕니다.

문자열과 float을 곱할 수 없습니다. below.it 이 잘 작동하는 것처럼 시도해 보십시오.

totalAmount = salesAmount * float(salesTax)

언급URL : https://stackoverflow.com/questions/485789/why-do-i-get-typeerror-cant-multiply-sequence-by-non-int-of-type-float

반응형