# TypeError: no canonical coercion from <type 'NoneType'> to Callable function ring with argument N

asked 2016-11-14 22:04:52 -0500

This post is a wiki. Anyone with karma >750 is welcome to improve it.

def eqDtm(eqn, nBelow, nAbove):#eqDtm is shortened for equilibrium determiner.
eqn = f(N)
if f(nBelow) >0 and f(nAbove) < 0:
print "stable"
elif f(nBelow) < 0 and f(nAbove) > 0:
print "unstable"
elif f(nBelow) > 0 and f(nAbove) > 0:
print "semistable"
elif f(nBelow) < 0 and f(nAbove) < 0:
print "semistable"
else:
print "Not an equilibrium point"


from random import uniform
def randomGen(num,num2):
uniform(num, num2)


var("r,N,A,K")
r= 0.1
A= 5.
K= 100
eqn = (r*N*(1-(N/K))*((N/A)-1))
Eq = [0, 5, 100]
for value in Eq:
if value == max(Eq):
eqDtm(eqn, randomGen(Eq[1],Eq[2]),randomGen(Eq[2],Eq[2]+1))
print "maximum equilibirum point"
elif value == min(Eq):
eqDtm(eqn, randomGen(Eq[0]-1, Eq[0]),randomGen(Eq[0],Eq[1]))
print "minimum equilibirum point"
else:
eqDtm(eqn, randomGen(Eq[0],Eq[1]),randomGen(Eq[1],Eq[2]))
print "neither"


I don't understand the error that's specified in the title. Can anyone explain this? Thank you.

edit retag close merge delete

To display blocks of code, either indent them with 4 spaces, or select the corresponding lines and click the "code" button (the icon with '101 010').

Can you edit your question to do that?

( 2016-11-15 08:04:25 -0500 )edit

Sort by ยป oldest newest most voted

Your function randomGen returns None (there is no return statement).

more