python - 解压不可迭代的 NoneType 对象
问题描述
这是我的代码:
signal = np.load('signal_glitches.npy')
#print(signal[:, 0])
fig,ax = plt.subplots(figsize = (10,5))
print(type(signal))
def t0_t(arr, n):
arr = list(arr)
for i in range (n):
if arr[i] <= np.mean(arr):
t = int(arr.index(max(arr)))
#print(t)
delta_t = abs(arr.index(max(arr)) - i - 1)
return (delta_t, t)
break
for i in range (len(signal[:, 0])):
ax.plot(signal[i,:], '--')
print(len(signal[235, :]))
def exp_model(time, a, tau_0, tau_1, c):
S = a * (1 - np.exp((time)/tau_0)) * np.exp((time)/tau_1) + c
for i in range (len(signal[:, 0])):
arr = signal[i,:]
n = len(signal[i,:])
time, t = t0_t(arr, n)
if time == None:
time = 199
#print(time)
ax.set_title(label = 'run7det88' + ',' + str(len(signal[:,0])) + 'glitches', y = 1.02, fontsize = 18)
plt.xlabel('ADC', fontsize = 30)
plt.ylabel('I(nA)', fontsize = 30)
plt.tight_layout()
plt.tick_params(axis = 'x', labelsize = 18, which = 'major', pad = 18)
plt.tick_params(axis = 'y', labelsize = 18, which = 'major', pad = 18)
plt.tick_params(which = 'both', width = 3)
plt.tick_params(which = 'major', length = 8)
plt.tick_params(which = 'minor', length = 4)
#axes = fig.add_subplot(111)
蟒蛇注意到:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-154-e3826bc92d95> in <module>
21 arr = signal[i,:]
22 n = len(signal[i,:])
---> 23 (time, t) = t0_t(arr, n)
24 if time == None:
25 time = 199
TypeError: cannot unpack non-iterable NoneType object
我试图打印出 delta_t 和 t,它们都返回值,我不知道如何修复它而且我还返回整数值:199 和 200,它仍然注意到相同
解决方案
在 python 中,如果函数结束时没有显式返回值,则默认返回值为None
.
例如,这段代码:
def func():
num = 7
print(func())
将输出None
,因为func
没有返回任何值。
在您的代码中,t0_t
正在返回None
,然后您尝试将其解包
(time, t) = t0_t(arr, n)
您无法解压缩 Nonetype,因此会出现错误。
尝试将函数重写为
def t0_t(arr, n):
arr = list(arr)
for i in range (n):
if arr[i] <= np.mean(arr):
t = int(arr.index(max(arr)))
#print(t)
delta_t = abs(arr.index(max(arr)) - i - 1)
return (delta_t, t)
break
return (None, None)
这确保了该函数将始终返回一个可以解包的 2 元组。
推荐阅读
- java - 重定向到angular6中的页面
- python-3.x - 如何改进椭圆曲线分解的代码?
- angular - Angular 6:如何在 Angular 材料表上实现分页和排序
- laravel-5 - 如何从两个模型的关系中调用数据
- python-3.x - 这个错误的原因是什么:“PermissionError: [WinError 5] Access is denied”
- ajax - 这个 ajax 调用的正确相对路径是什么?
- javascript - 即使在服务器和客户端上设置标头后,错误“请求的资源上不存在'Access-Control-Allow-Origin'标头”
- bioinformatics - x86_64-pc-mingw64 编译 hmmer 软件时出错
- javascript - 在其他地方初始化 'mymodule' 后调用 require('mymodule') 是否正确?
- php - 使用 AJAX 和 PHP 从联系表单发送邮件后,如何显示弹出警报消息?