CiaraMc96 Ответов: 1

Как заставить его узнать меня?


Я пытаюсь отформатировать вывод для этого вычисления, но он продолжает давать мне ошибку для строки, где я форматирую i, говоря, что я не определен, я предполагаю, что это как-то связано с тем, что я использую в определении, но я не совсем уверен, а также не уверен, как заставить его распознать его.

Там может быть проблема с моим n, я пытаюсь заставить его удваиваться каждый раз в диапазоне до 512, так что не уверен, что это проблема, но я также работаю над тем, чтобы понять это, и не уверен, что это влияет на меня

Что я уже пробовал:

Перед этим есть еще какой-то код, который просто вводится и определяет больше определений, но я не думаю, что он имеет отношение к этой проблеме.

def my_trap(a,b,n):
    sum= 0
    h= (b-a)/n #width of each interval
    for i in range(1,n+1):
        x=a+i*h
        sum=sum+2*f(x)
        return (h/2)*(sum+f(a)+f(b))
   
print('\nThis programme estimates the integral of the function sin(x) in the \
          integral [a,b] using the trapezoidal method.')

a=getinput('a')
b=getinput('b')

n=512/2
n=n*2

error= analytical(a,b)-my_trap(a,b,n)

print('{0:<20}'.format(i),'|'\
      '{0:<20.5f}'.format(my_trap(a,b,n)), '|', \
      '{0:<20.5f}'.format(error))

Richard MacCutchan

Оператор return в my_trap имеет неверный отступ.

CiaraMc96

Спасибо, исправил это сейчас, но он все еще не распознает меня, как мне сделать его доступным в другом месте с тем, что сказал Фил?

phil.o

i будучи доступным и назначенным только внутри цикла, вы должны создать другую переменную в области, которую хотите использовать. Затем в цикле назначьте значение i к этой более широкой переменной. Но: вы сможете получить только последний стоимость i, если только у вас нет механизма для раннего выхода из цикла. Если вы не выйдете из цикла раньше, то можете принять последнее значение i всегда будет оставаться n.

1 Ответов

Рейтинг:
1

phil.o

Переменная i является область применения к for это означает, что вы можете использовать его только внутри цикла, и он будет недоступен из любого другого места.

Пожалуйста, всегда заключайте свой кодовый блок между ними. <pre> теги; особенно для python, где отступ имеет первостепенное значение, нам нужно иметь точный отступ кода.