web-dev-qa-db-fra.com

Erreur "ValueError: nom du champ de longueur nulle au format" dans Python 3.0,3.1,3.2

J'essaie d'apprendre Python (3 pour être plus spécifique) et j'obtiens cette erreur:

ValueError: zero length field name in format

Je l'ai googlé et j'ai découvert que vous deviez spécifier les chiffres:

a, b = 0, 1
if a < b:
     print('a ({0}) is less than b ({1})'.format(a, b))
else:
     print('a ({0}) is not less than b ({1})'.format(a, b))

Et pas comme le tutoriel (de lynda.com) dit en fait de faire:

a, b = 0, 1
if a < b:
     print('a ({}) is less than b ({})'.format(a, b))
else:
     print('a ({}) is not less than b ({})'.format(a, b))

Le tutoriel suivant a Python 3.1 et utilise 3.2 et ce que j'ai lu à propos de cette erreur, c’est que cela ne se produit que dans <3.1 (3.0). faire quelque chose de mal?

Aussi, parlez lentement;) c’est littéralement ma première nuit d’apprentissage Python et seulement le deuxième "script" que j’ai écrit en Python.

119
Oscar Godson

Je vais deviner que vous exécutez python 2.6 par accident d'une façon ou d'une autre).

Cette fonctionnalité est disponible uniquement pour au moins la version 3.1 si vous utilisez python 3 ou 2,7 si vous utilisez python 2.

129
Winston Ewert

Python 2.6 et 3.0 nécessitent les numéros de champs. Dans Python 2.7 et versions ultérieures et 3.1 et versions ultérieures, elles peuvent être omises.

Modifié dans la version 2.7: les spécificateurs d'argument de position peuvent être omis, ainsi '{} {}' est équivalent à '{0} {1}'.

python2.6.4>>> print '|{0:^12}|{1:^12}|'.format(3,4)
|     3      |     4     |
148
Dennis Williamson

Si vous utilisez Eclipse, vous devriez regarder dans Fenêtre -> Préférences -> PyDev -> Interprète - Python. Là vous avez une liste d'interprètes (avec nom et lieu). Si, pour votre projet actuel, vous utilisez un interpréteur situé par exemple dans/usr/bin/python, exécutez probablement/usr/bin/python -V, ce qui vous donnera un résultat du type "Python 2.6.6". Et il y a votre réponse comme l'a écrit Winston Ewert.

(vous pouvez ajouter un nouvel interperter en cliquant simplement sur le bouton "Nouveau ..." et en donnant/"emplacement" à/usr/bin/python3. Vous devrez alors probablement modifier les paramètres de votre projet (Préférences -> PyDev - Interpreter/Grammar).

2
ilektrik