2013-12-09 3 views
1

은 내가 데이터 목록이 수레의 목록 인이 코드를 실행하려고 및 'str', 심지어 + 연산자를 사용하지 않는 경우에도. 무엇이 문제 일 수 있습니까?팬텀 타입 에러 (파이썬 3.3)

+3

"+ 연산자를 사용하지 않고 있습니다." 당신은 모르지만,'sum()'이 무엇을한다고 생각합니까? – glglgl

답변

2

dataList은 숫자와 문자열을 모두 포함합니다. 고쳐.

+1

'dataList'는이 메시지를 생성하기 위해 숫자를 포함 할 필요가 없습니다. 기본 시작 값이 0이기 때문에 저는 생각하지 않습니다. – DSM

+0

@DSM : 그리고 사용자 정의'start'를 사용하여 그것을 고치더라도'sum dataList, '')'를 호출하면'TypeError : sum()은 문자열을 더할 수 없습니다. '대신'.join (seq)를 사용하십시오 '. – abarnert

3

dataList에는 하나 이상의 문자열이 포함되어야합니다. 또한 sum은 문자열을 지원하지 않습니다. ,

>>> lst = [1, 2, 3, '4'] 
>>> sum(lst) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: unsupported operand type(s) for +: 'int' and 'str' 
>>> 

문제를 해결하려면 dataList은 정수 또는 수레를 포함 할 필요가 :

는 아래의 데모를 참조하십시오.

+0

나는 무슨 일이 일어나고 있는지 알아 냈다. 목록의 각 멤버를 거친 for 루프가 있었지만 float()이 제대로 작동하지 않는다는 사실을 잊어 버렸습니다. 그것은 항상 나를 위로 여행하는 것처럼 보인다. – MadDoctor5813