Форум сайта python.su
Добрый день!
Я написал следующий код
def f(x):
import math
return 10*math.e**(math.log(0.5)/5.27 * x)
def radiationExposure(start, stop, step):
if start+step < stop:
return f(start+step/2)*step + radiationExposure((start+step), stop, step)
Для расчета интегральной суммы. Но компилятор выдает There's an error in your program: expected an indented block.
В чем может заключаться моя ошибка?
Офлайн
belosпереводчик google вот что говорит:
В чем может заключаться моя ошибка?
Офлайн
Спасибо! Я исправил. Все скомпелировалось, но теперь другая ошибка:
TypeError: unsupported operand type(s) for +: ‘float’ and ‘NoneType’
В чем ее причина?
Заранее спасибо!
Офлайн
belosможет быть:
TypeError: unsupported operand type(s) for +: ‘float’ and ‘NoneType’
f(start+step/2)*step
start+step < stop
None
Офлайн
А как можно уйти от этой ошибки?
То есть сделать так чтобы код заработал и начал считать интеграл?
Офлайн
belosА каков по вашему должен быть результат сложения float и None?
А как можно уйти от этой ошибки?
Офлайн
belos
А как можно уйти от этой ошибки?То есть сделать так чтобы код заработал и начал считать интеграл?
def radiationExposure(start, stop, step): if start + step < stop: return f(start+step/2)*step + radiationExposure((start+step), stop, step) else: return 0
Офлайн
Спасибо!
Я упражнялся в понимании и использовании рекурсии.
Офлайн