2016-02-19 3 views
1

я получил ошибку ниже:TypeError: неподдерживаемый тип операнда (ов) для /: 'список' и 'Int'

unsupported operand type(s) for /: 'list' and 'int'

Как решить эту проблему? Есть идеи?

Вот мой код:

def func(xdata_1,cc,dd,gg): 
    return cc*(xdata_1**(dd))* 
      (10**(-1.572*gg*((185/((xdata_1/420)**2 + (420/xdata_1)**2 + 90))) 

params,pcov = curve_fit(func,xdata_1,ydata_1, 
         sigma=err_1, absolute_sigma=True) 

fc_1 = func(xdata_1, *params) 
+0

Похоже, что один из аргументов, передаваемых 'func', является списком. Итак, выясните, какой из них (вы можете просто распечатать их перед вызовом 'func'), а затем исправить. –

+1

Возможный дубликат [так много других вопросов] (http://stackoverflow.com/search?q=unsupported+operand+type%28s%29+for+%2F%3A+%27list%27+and+%27int%27+) – Forge

+0

Ваш код даже не является синтаксически правильным, он не может поднять TypeError. – Goyo

ответ

1

Проверьте тип данных всех переменных, т.е. xdata_1, cc, dd, gg

1. Как проверить тип переменной:

Используйте 'type` встроенная функция для получения типа переменной.

Demo:

>>> d 
[1, 2, 3] 
>>> type(d) 
<type 'list'> 
>>> 

2. О Exception:

Это исключение, когда мы работать / операцию по list и int переменных.

Demo:

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

3. Дайте вход:

Лучше предоставить входные детали в вопросе т.е. стоимости xdata_1 и params, поэтому мы можем дать вам, где код неправильно ,

Смежные вопросы