python求带函数和求方差代码出现问题,应该怎么解决

问题相关代码

from scipy.stats import norm
from random import *
import random
import math
import numpy as np
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
import sympy as sy #用于求导积分等数学计算
import matplotlib.pyplot as plt #绘图
import scipy.signal as sg
#μ为均值,σ为标准差,s为矩母系数
μ = sy.symbols('μ')
σ = sy.symbols('σ')
M = sy.symbols('M')
s = sy.symbols('s')
a1=-4
b1=4
n=100000

def jumu(μ,σ):#定义矩母函数
mean=μ#均值定义
vari=σ#方差定义
M=math.e**(μs+(1/2)2)*(s2))#定义矩母函数
return M

def E(M):
global s
df = sy.diff(M, s) # 求一阶导数
ddf = sy.diff(M, s, 2) # 求二阶导数,参数2为求导阶数
s=0
e1=eval("df")
e2=eval("ddf")
sigma = sy.sqrt(e2-(e1)*(e1))
return [e1,sigma]

print(jumu(0.1,0.9))
print(E(jumu(0.1,0.9)))

运行结果

2.71828182845905**(0.405s**2 + 0.1s)
[2.71828182845905**(0.405s**2 + 0.1s)(0.81s + 0.1), sqrt(2.71828182845905**(s*(0.405s + 0.1))(0.6561*(s + 0.123456790123457)2 + 0.81) - 2.71828182845905(0.81s**2 + 0.2s)0.6561(s + 0.123456790123457)**2)]

我想要达到的结果

为什么s=0的时候,求导函数没有代入s=0,输出的结果仍然出现s?
为什么sy.sqrt没有发挥作用?

s = sy.symbols('s') 改成s1= sy.symbols('s') 试试?