python2.7.12不能正确运行我的脚本

2024-04-28 22:17:17 发布

您现在位置:Python中文网/ 问答频道 /正文

使用python2.7.12运行python脚本不会给出预期的答案。但是,使用python3.5.2来运行它,确实如此

我已经安装了ubuntu16.04和python2.7.12(默认)以及python3.5.2

我已经用python2.7.12在另一台Linux机器上运行了这个脚本,问题也是一样的

我认为问题在于用于计算变量(脚本中的y)的for循环。它似乎没有更新它

from numpy import *
from matplotlib.pyplot import *
import seaborn as sns


sns.set_style('whitegrid')

x0=0
y0=1
xf=10
n=101
deltax=(xf-x0)/(n-1)
x=linspace(x0,xf,n)
y=zeros([n])
y[0]=y0

for i in range(1,n):
    y[i] = deltax*(-y[i-1] + sin(x[i-1])) +y[i-1]

for i in range(n):
    print(x[i],y[i])

plot(x,y,'o')
show() 

需要正弦函数的曲线图

python3.5.2绘制了一个正弦函数,但是 Python2.7.12绘制一条平坦的水平线


Tags: 函数答案infromimport脚本for绘制
1条回答
网友
1楼 · 发布于 2024-04-28 22:17:17

你的问题在这里

deltax=(xf-x0)/(n-1)

/运算符在python3和python2之间是不同的。参见herePEP238

在python2中,两个整数之间的/执行整数除法。在python3中,它执行浮点除法。这对Python 2来说意味着

deltax = (xf - x0) / (n - 1) = (10 - 0) / 100 == 0

在Python 3中

deltax = (xf - x0) / (n - 1) = (10 - 0) / 100 == 0.1

如果您想在python2中使用浮点除法,您需要请求它,例如

deltax = (xf - x0) / float(n - 1)

相关问题 更多 >