Python 返回后打印

Python 返回后打印,python,Python,我想在返回这些值后打印intPsi2和intPsiHPsi,但Python不会打印它们。我认为它们在返回后不会打印,因为它们是本地化的值 #import libraries import numpy as np import matplotlib.pyplot as plt from numpy import pi #(1)create an array called psi that is 51x51 pixels,(2) create an array called V that is

我想在返回这些值后打印intPsi2和intPsiHPsi,但Python不会打印它们。我认为它们在返回后不会打印,因为它们是本地化的值

#import libraries 
import numpy as np
import matplotlib.pyplot as plt
from numpy import pi

#(1)create an array called psi that is 51x51 pixels,(2) create an array called V that is 51x51 pixels
psi=np.zeros((51,51))
v=np.zeros((51,51))
#Using a for-loop, set each element of psi to a 2-D sin function:
#4) Using the same for-loop, set each element of V to a 2D gaussian:
n=50
Vm=80
a=.4*n
for x in np.arange(50):
    for y in np.arange(50):
        psi[x,y]=np.sin(pi*(x/n))*np.sin(pi*(y/n))
        v[x,y]=Vm*np.exp(-(x-y)**2/(a)**2)

 # 5) Plot psi.    
plt.imshow(psi)
plt.show()

def nn(psi):
  psi1=np.zeros_like(psi)
  psi1[1:n-1,1:n-1]=(psi[0:n-2,1:n-1]+psi[2:n,1:n-1]+psi[1:n-1,0:n-2]+psi[1:n-1,2:n])/4.
  return(psi1)


def integrate(psi,v):
  psi2=psi[x,y]*psi[x,y]
  intPsi2=(psi2/n**2).sum()

  psi3=(psi[x,y]*v[x,y]*psi[x,y]*(1/n**2))-(2*psi[x,y]*nn(psi))+(2*psi2)
  intPsiHPsi=psi3.sum()


  return(intPsi2, intPsiHPsi)
print(intPsi2, intPsiHPsi)

在函数内部设置值不会更新函数外部的值。您必须为方法响应分配变量

a,b = 1,2
def some_funct():
    a = 4
    b = 5
    return a,b

print (a, b)
c, d = some_funct()
print(a,b)
print(c,d)
给予

(除非你用global关键字声明变量——这通常是个坏主意)

给予


您定义了一些返回某些值的函数。现在您必须:1)调用函数,2)将结果存储到变量中,3)打印存储结果的变量
a,b = 1,2
def some_funct():
    a = 4
    b = 5
    return a,b

print (a, b)
c, d = some_funct()
print(a,b)
print(c,d)
1 2
1 2
4 5
a,b = 1,2
def some_other_funct():
    global a
    global b
    a = 4
    b = 5
    return a,b

print (a, b)
c, d = some_other_funct()
print(a,b)
print(c,d)
1 2
4 5
4 5