Подтвердить что ты не робот

ValueError: имя поля нулевой длины в формате в Python2.6.6

Я использую эту оболочку Python для генерации строки:

>>>':'.join("{:x}\n".format(random.randint(0, 2**16 - 1)) for i in range(4))

Когда я запускаю эту оболочку в Python2.7.5, все идет хорошо. Но это происходит ValueError: zero length field name in format когда версия Python 2.6.6. Что я должен запустить эту оболочку нормально, когда версия Python 2.6.6?

4b9b3361

Ответ 1

В версиях Python 2.6 или более ранних версий вам необходимо явно указать поля формата:

':'.join("{0:x}\n".format(random.randint(0, 2**16 - 1)) for i in range(4))
#          ^

Вы можете прочитать об этом в docs:

Изменено в версии 2.7: Спецификаторы позиционных аргументов могут быть опущены, поэтому '{} {}' эквивалентно '{0} {1}'.