python 整个程序一次运行多次运算,其中一个函数第一次运算引用数组里第一个数,第二次运算引用数组里第二的数,怎么实现?
H=[1,2,3,4]
Q=(b**M) * math.log(b)
return (Q)
让M的取值依次取1,2,3,4
如图,这个方法的确运行这个函数,会依次输出里面的值,但是我就运行一下,引用了第一个数后就走了。计算完其他的回来引用,引用的仍然是第一个M=next的值。没有引用第二个M=next的值。
运行结果:
1.9
way 1 result:
求和
-1.7973880374849225
2 1.9
。。。。。。。。
1.9
way 1 result:
求和
-1.4219987682935082
2 1.8
大致看了一下你的代码,你应该是每有理解原理
这个函数作用是,简单的通过一个列表生成一个迭代器。
有了迭代器,就可以要去值的时候,next拿一个就可以了。
但是还没有全部拿完,你又重新生成这个迭代器,那迭代的元素就会重新装满。
其实我的目的是:后面有这样一个函数fuzzy( )下图。会运行(2,1.9)(2,1.8)(2,1.7)(3,1.9)(3,1.8)(3,1.7)运行6次,
但是前面的那个函数Q=(b**M)* math.log(b)里面的M是要随着函数fuzzy( )的引用变化而变化的,1.9,1.8,1.7这样变。
所以,有其他方法能实现吗?
这么晚了,谢谢回答!
(b**M) * math.log(b) 在哪个位置引用
你的描述,就算你不会写,你可以用注释标出来,这样别人就知道你要做什么。
比如,你说函数Q=(b**M)* math.log(b)里面的M是要随着函数fuzzy( )变化,但是有没有标函数调用的位置,所以不方便理解
是这样的,在前面一个函数的内部
你这个不对称,
M 变化 是len(H)次
函数调用时len(data)次
逻辑不对吧
简化一下,A=[2,3]里面只放一个数,这样就是fuzzy( )变一次,变一次了。这样也结果也可以用,
追答我是要知道 fuzzy 函数 和 name1的关系,你给的都是代码片段,看不出逻辑关系
追问如图,name1是在def normalise_U(U):函数里面的。
而fuzzy 函数 和def normalise_U(U):函数都在最外层,