for i, j in zip(trajectory_row_grid_idx, trajectory_column_grid_idx):
if delay_step_i < delay_step + 5:
bighead_row_grid_idx.append(i)
bighead_column_grid_idx.append(j)
def AirTrafficImage_Generate(time_interval_span, Proprocessed_Radardata_df, ComplexityLabel_df, X_grid_num, Y_grid_num, X, Y, label_idx_in_column):
StartTime_all_datetime = Proprocessed_Radardata_df['actual_over_time'].min() - datetime.timedelta(seconds = j)
StartTime_all_datetime = Proprocessed_Radardata_df['actual_over_time'].min() - datetime.timedelta(seconds = j)
NameError: name 'j' is not defined
第一个j是属于局部变量,只在for循环内部生效,题主定义的第二个函数如果想使用for循环中的j,可以把j作为参数传入,然后在for循环的时候,再来调用第二个函数,把j传入就好了
变量j是在循环内部的
局部变量是无法在函数之间传递的,如果要在两个函数使用同一个变量,那么就要在函数外面定义全局变量j,这样两个函数都可以使用,另外需要注意的是,函数内部如果要对全局变量进行修改,那么要用到关键字globle
第二个函数加个参数,把j作为参数传进来
把j的定义放到“第一个函数”和“第二个函数”相同级别上。这样两个函数才能共享使用这个变量。
j = 0
def func1():
for i,j in ......
def AirTrafficImage_Generate(time_interval_span, Proprocessed_Radardata_df, ComplexityLabel_df, X_grid_num, Y_grid_num, X, Y, label_idx_in_column):
StartTime_all_datetime = Proprocessed_Radardata_df['actual_over_time'].min() - datetime.timedelta(seconds = j)
for i,j 中的i和j 这两个变量的生存周期只在for循环内,出了这个循环之外如果没有重新定义是不能直接用的
前面定义一下j就好了呀,朋友试试,不行的话把代码发我改一下给你
变量j得进行传参才可以
可以把j定为全局变量,放在两个函数外面,这样就解决了局部变量不能在函数之间传递的问题。
例如:
hi="哈哈"
def name():
hi="老母鸡"
name()
print(hi)
输出结果为“哈哈”
你的这个J是在第一个循环内部,当然无法传递到第二个函数
需要将j
定义到函数外,作为全局变量,就可以被调用了