def pyass(nx, nt, hx, ht, f, U):
# Делаем копию входного массива
Un = U.copy()
# Перезаписываем параметры (как в вашем коде)
nx, nt = 5, 3
x1, xn = 0, 1
t1, tn = 0, 1
# Пересчитываем шаги
hx = (xn - x1) / (nx - 1)
ht = (tn - t1) / (nt - 1)
# Создаем сетки
X = [hx * i for i in range(nx)]
T = [ht * j for j in range(nt)]
f = -8 * 47
# Начальные условия (исправлены опечатки)
Fi = [4 * 23 * t * (1 - t) for t in T]
Psi = [4 * 23 * x * (1 - x) for x in X]
# Инициализация массива U (размерность nx на nt)
U = [[1 for j in range(nt)] for i in range(nx)]
# Основной цикл
for i in range(1, nx - 1):
for j in range(1, nt - 1):
# Внимание: здесь исправлена скобка и убран лишний символ #
Un[i][j] = (((U[i-1][j] + U[i+1][j]) / hx**2 + U[i][j-1] + U[i][j+1]) / ht**2 - f) / (2/hx**2 + 2/ht**2)
return Un