ValueError: код неизвестного формата 'g' для объекта типа 'str'

Я новичок в Python, и я пытаюсь написать простую функцию печати, но я получаю странную ошибку. Это мой код:

#! /usr/bin/env python3.2 import numpy as np a=np.arange(1,10,1) print(a) for i in a: print(i) print(type(i)) print("{0:<12g}".format(i)) 

Выход:

 [1 2 3 4 5 6 7 8 9] 1 <class 'numpy.int64'> Traceback (most recent call last): File "./test.py", line 9, in <module> print("{0:<12g}".format(i)) ValueError: Unknown format code 'g' for object of type 'str' 

Почему печать принимает «numpy.int64» в виде строки? Я должен добавить, что он отлично работает для обычного списка: (например, [1,2,3,4]). Я был бы очень признателен за любые идеи по этой проблеме, спасибо ;-).

2 Solutions collect form web for “ValueError: код неизвестного формата 'g' для объекта типа 'str'”

Это известная ошибка и должна быть исправлена ​​в версии 2.0. Тем временем вы можете использовать старый синтаксис %f который работает.

Кто-то сможет дать вам более подробный ответ, но я думаю, что здесь происходит то, что вы используете "{0:<12g}".format(i) который использует специальное форматирование. Если вы попробуете "\{{0}:<12g\}".format(i) вы, вероятно, получите лучшие результаты. С помощью косой черты избегает {} что и дает вам ошибку.

  • Итерирование по массиву numpy
  • Обманывание numpy / python в представлении очень больших и очень маленьких чисел
  • Как рассортировать объекты инфузии numpy?
  • Гистограмма рисования в OpenCV-Python
  • numpy - обновлять значения с помощью среза, учитывая значение массива
  • список с массивами numpy - плохая практика?
  • сравнение неравенства массива numpy с наном на скаляр
  • pd.rolling_mean становится устаревшим - альтернативы для ndarrays
  • Python - лучший язык программирования в мире.