복붙노트

[PYTHON] 왜 내가 TypeError를 얻는가? 'float'타입이 아닌 int로 시퀀스를 곱할 수 없습니까?

PYTHON

왜 내가 TypeError를 얻는가? 'float'타입이 아닌 int로 시퀀스를 곱할 수 없습니까?

판매 금액 (입력 기준)에 정의 된 판매 세 (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'

해결법

  1. ==============================

    1.raw_input은 문자열 (일련의 문자)을 반환합니다. 파이썬에서 문자열과 실수를 곱하면 정의 된 의미가 없습니다 (문자열과 정수를 곱하면 의미가 있습니다 : "AB"* 3은 "ABABAB"이고 "L"* 3.14는 얼마입니까? "LLL | "). 문자열을 숫자 값으로 파싱해야합니다.

    raw_input은 문자열 (일련의 문자)을 반환합니다. 파이썬에서 문자열과 실수를 곱하면 정의 된 의미가 없습니다 (문자열과 정수를 곱하면 의미가 있습니다 : "AB"* 3은 "ABABAB"이고 "L"* 3.14는 얼마입니까? "LLL | "). 문자열을 숫자 값으로 파싱해야합니다.

    다음과 같이해볼 수도 있습니다.

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

    2.아마 이것은 다른 사람들을 미래에 도움이 될 것입니다 - 나는 float와 float리스트를 여러 개 만들려고 할 때 같은 오류가있었습니다. 문제는 실제로 목록에 * 연산자를 사용했기 때문에 모든 사람들이 여기에 플로트에 문자열을 곱하는 것에 대해 이야기했습니다 (하지만 여기서는 모든 요소가 모두 떠있었습니다).

    아마 이것은 다른 사람들을 미래에 도움이 될 것입니다 - 나는 float와 float리스트를 여러 개 만들려고 할 때 같은 오류가있었습니다. 문제는 실제로 목록에 * 연산자를 사용했기 때문에 모든 사람들이 여기에 플로트에 문자열을 곱하는 것에 대해 이야기했습니다 (하지만 여기서는 모든 요소가 모두 떠있었습니다).

    예 :

    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'
    

    해결책 - 목록을 수십 개의 배열로 변환합니다.

    coff = np.asarray(coff) * C
    
  3. ==============================

    3.문제는 salesAmount가 문자열로 설정된다는 것입니다. 파이썬 인터프리터에 변수를 입력하고 Enter 키를 누르면 입력 한 값이 따옴표로 묶여 표시됩니다. 예를 들어 56.95를 입력하면 다음과 같이 표시됩니다.

    문제는 salesAmount가 문자열로 설정된다는 것입니다. 파이썬 인터프리터에 변수를 입력하고 Enter 키를 누르면 입력 한 값이 따옴표로 묶여 표시됩니다. 예를 들어 56.95를 입력하면 다음과 같이 표시됩니다.

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

    판매 세를 곱하기 전에 문자열을 부동 소수점으로 변환하려고합니다. 나는 당신이 알아낼 수 있도록 그 것을 남겨 둘 것입니다. 행운을 빕니다!

  4. from https://stackoverflow.com/questions/485789/why-do-i-get-typeerror-cant-multiply-sequence-by-non-int-of-type-float by cc-by-sa and MIT license