Próbuję nauczyć się Pythona (3, żeby być bardziej szczegółowym) i otrzymuję ten błąd:
ValueError: zero length field name in format
Wyszukałem w Google i dowiedziałem się, że musisz podać liczby:
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))
I nie tak, jak w samouczku (z lynda.com) tak naprawdę mówi:
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))
Poniższy samouczek im dotyczy języka Python 3.1 i używam wersji 3.2. Czytałem o tym błędzie, że dzieje się to tylko w wersji <3.1 (3.0). Czy cofnęli to w 3.2, czy robię coś źle?
Mów też powoli;) to jest dosłownie moja pierwsza nocna nauka Pythona i dopiero drugi "skrypt", który napisałem w Pythonie.
Odpowiedzi:
Zgaduję, że przez przypadek uruchamiasz Pythona 2.6.
Ta funkcja jest dostępna tylko dla co najmniej 3.1, jeśli używasz Pythona 3 lub 2.7, jeśli używasz Pythona 2.
źródło
#! /usr/local/bin/python3
po obejrzeniu całego. Istnieją 3 różne lokalizacje instalacji Pythona na Mac -_- wtf.Python 2.6 i 3.0 wymagają numerów pól. W Pythonie 2.7 i nowszych oraz 3.1 i późniejszych można je pominąć.
źródło
python3.4 -c 'print("|{}|{}|".format(3,4))'
ale najwyraźniej 3.0 go nie ma (3.1 i nowsze). Wyjaśnię swoją odpowiedź.Jeśli używasz Eclipse, powinieneś zajrzeć do Window -> Preferences -> PyDev -> Interpreter - Python. Tam masz listę tłumaczy (z nazwiskiem i lokalizacją). Jeśli w swoim obecnym projekcie używasz interpretera, który znajduje się na przykład w / usr / bin / python, to prawdopodobnie wykonanie / usr / bin / python -V da ci coś w rodzaju "Python 2.6.6". A oto twoja odpowiedź, jak napisał Winston Ewert.
(możesz dodać nowego interpretera, po prostu klikając przycisk "Nowy ..." i podając / usr / bin / python3 jako "lokalizację". Następnie prawdopodobnie musisz zmienić ustawienia projektu (Preferencje -> PyDev - Interpreter / Gramatyka).
źródło