Possible Duplicate:
“ValueError: zero length field name in format” error in Python 3.0,3.1,3.2
I have spent hours trying to solve this problem but to no avail. I read this guide. I haven't found any examples how to do what I need.
When I run the script I get this error (partly omitted):
Traceback (...): [...] output.write("{: > 026,.18e} {: > 026,.18e}\n".format(x,y)) ValueError: zero length field name in format.
The code is written in python 2.6 or 2.7 but I run python 3.1. How would I need to change output format so that it would work?
def f(x,y,a = 0.01): return y/(a+x)-y**3 def ekspEuler(N,dat): output = open(dat,"w") h = 3.0/N x,y = 0,1 #zac.pogoj for i in range(1,N+2): output.write("{: > 026,.18e} {: > 026,.18e}\n".format(x,y)) y += h*f(x,y) x = i*h output.close()
Thanks for your help.
Chances are that you're running an old Python version, and not 3.1. In Python 2.6, you need indices in the format specs, like this:
"{0} {1}\n".format(x,y)
Update your Python version to a recent one, preferably 2.7 or 3.2, to fix the problem. According to the documentation, leaving out the numeric indices should work in Python 3.1:
Changed in version 3.1: The positional argument specifiers can be omitted, so '{} {}' is equivalent to '{0} {1}'.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With