Ich habe mir dieses Q/A Intent of this Fotran77 code angeschaut und ich habe fast den untenstehenden Fortran77-Stil-Code in Python 3.x umgewandelt, außer ich hatte Zweifel, wo das i = i + 1 in der platziert werden sollte Python-Version. Wie in den Kommentaren der verknüpften Frage erwähnt, habe ich die Konformitätstests durchgeführt und die Ergebnisse sind mit einem Abstand von 2 aus. Daher die Frage.Converting Fortran 77 Code zu Python
i = 0
500 continue
i = i +1
if (i .le. ni) then
if (u(i,j-1) .gt. -9999.) then
r(1,j) = u(i,j-1)
go to 600
else
missing = i
go to 500
end if
end if
600 continue
Hier ist meine Python-Version
i = 0
while (i <= ni):
i = i+1
if (u[i,j-1] > -9999.0):
r[0,j] = u[i,j-1]
break
else:
missing = i
Habe ich den Zuwachs Zähler an der richtigen Stelle platzieren?
Fortran beginnt bei 1 für Listen, es ist 0 für Python –
, wenn Sie es wahrscheinlich gleichwertig wollen. Am besten debuggen/drucken Sie die Werte für beide Programme. Es ist nur eine Frage der Feinabstimmung jetzt. aber meine Erinnerung ist verschwommen. Gibt es in Ihrem Fortran-Programm eine Schleife? –
ja, aber das Off-by-One-Index-Problem ist wahrscheinlich auch für j da. Und meine Frage war "Gibt es eine Schleife in dem Code, den du zeigst?" Weil AFAIR eine Schleife 'DO I in 1,5 'ist ... die Python-Version hat eine Schleife, der Fortran-Code scheint keine Schleife zu haben. –