total=0
def f(x):
import math
return 10*math.e**(math.log(0.5)/5.27 * x)
def radio(start,stop,step):
time=stop-start
newstart=start+step
if time !=0:
rad=f(start)*step
global total
total+=rad
radio(newstart,stop,step)
else:
return total
print radio(0, 5, 1)
print radio(5, 11, 1)
print radio(0, 11, 1)
print radio(40, 100, 1.5)
答案 0 :(得分:3)
在Python函数中默认返回None
。
您有缩进问题,因此您的函数radio
意外结束,后续代码块被视为独立且不属于radio
。要解决它 - 修复这样的缩进:
def radio(start,stop,step):
time=stop-start
newstart=start+step
if time !=0:
rad=f(start)*step
global total
total+=rad
radio(newstart,stop,step)
else:
return total
答案 1 :(得分:0)
如果没有指定返回值,python函数必须给出任何返回值,然后默认返回None
第一次调用无线电功能时,没有返回任何内容,因为返回了无功能
为避免此问题,因为您正在使用递归调用,您将每个函数的返回值转换为其他函数,因此在调用相同函数时使用return
total=0
def f(x):
import math
return 10*math.e**(math.log(0.5)/5.27 * x)
def radio(start,stop,step):
time=stop-start
newstart=start+step
if time !=0:
rad=f(start)*step
global total
total+=rad
return radio(newstart,stop,step)
else:
return total
print radio(0, 5, 1)
<强>输出:强>
39.1031878433