2010-08-15 3 views
2

Я пытаюсь получить следующее, чтобы работать в интерпретаторе Python, однако это дает мне ошибку, и я не могу найти, где моя ошибка? (Я новичок в python)Python .format - error

>>> print 'THe value of PI is approx {}.'.format(math.pi) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'str' object has no attribute 'format' 

Любые идеи?

+1

Какую версию python вы используете? – fabrizioM

ответ

3

Вы можете использовать версию Python < 2.6, версия> = поддержка 2,6 {0}, версия> = поддержка 2,7} формат { ,

+1

Это также поддерживается Python 2.7 Что нового в Python 2.7 - Документация Python v2.7 http://docs.python.org/whatsnew/2.7.html#other-language-changes –

+0

Спасибо, обновлено. – 2010-08-16 01:16:19

-1

Это работает:

>>> print "The value of PI is approx {'%s'}." % format(math.pi) 
The value of PI is approx {'3.14159265359'}. 

Так делает это:

>>> print "The value of PI is approx '%f'" % math.pi 
The value of PI is approx '3.141593' 
+0

OP задает вопрос о расширенном форматировании строк, а не интерполяции%. –

+0

OP спрашивает как Python noob об ошибке форматирования, которую я исправил. Я использую Python 2.6. Где твой ответ, Вай Ип Тун? Что вы предложили, это лучше? – duffymo

+1

Просто потому, что кто-то не опубликовал свой ответ, это не значит, что они не могут указывать на проблемы с ответами других. –

1

Вы используете слишком старую версию python, которая не поддерживает этот метод форматирования строк. На Python 2.6 это результат (с небольшой поправкой):

>>> print 'THe value of PI is approx {0}.'.format(math.pi) 
THe value of PI is approx 3.14159265359. 

Этот метод является новый способ форматирования строк (PEP 3101) и должен заменить старый способ (с%). Я по-прежнему привык к старому, но в конечном итоге я, вероятно, перейду на новый путь.