ValueError: zero length field name in format python
format, python
Solution
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}'.
Problem
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.