簡體   English   中英

Python 2.7.12無法正常運行我的腳本

[英]Python 2.7.12 does not run properly my script

使用python 2.7.12運行python腳本不能給出預期的答案。 但是,使用python 3.5.2來運行它。

我安裝了Ubuntu 16.04和python 2.7.12(默認)以及python 3.5.2

我已經在另一台帶有python 2.7.12的Linux機器上運行該腳本,問題是一樣的。

我認為問題在於用於計算變量的for循環(腳本中的y)。 它似乎沒有更新它。

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() 

期待一個正弦函數的圖。

python 3.5.2繪制正弦函數,但python 2.7.12繪制一條平坦的水平線。

你的問題在這里

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

/運算符在Python 3和Python 2之間有所不同。請參見此處PEP238

在Python 2中, /兩個整數之間執行整數除法。 在Python 3中,它執行浮點除法。 這意味着對於Python 2

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

而在Python 3中

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

如果你想在Python 2中進行浮點除法,你需要請求它,例如

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM