2016-05-16 2 views
2

Это может быть самый простой вопрос. Но я попытался напечатать отдельные значения кортежа следующим образом.Печать форматированных значений кортежа

mytuple=('new','lets python','python 2.7') 

>>> print "%{0} experience, %{1} with %{2} " %mytuple 
Traceback (most recent call last): 
    File "<pyshell#25>", line 1, in <module> 
    print "%{0} experience, %{1} with %{2} " %mytuple 
ValueError: unsupported format character '{' (0x7b) at index 1 

Я хочу напечатать выходные данные следующим образом.

"new experience, lets python with python 2.7" 

Я не помню, где это было сделано. Это называется распаковкой значений кортежа, печать форматированных кортежей.

+0

вы используете как '%' метод, так и метод '{}' .format', выберите один и придерживайтесь его. –

+0

Да! Спасибо @ TadhgMcDonald-Jensen, он работает отлично. Я добавлял ненужные брекеты, когда это не требуется. Это заблуждалось. –

ответ

5

Вместо смешивания printf -style и форматирование str.format, выберите один:

printf-style formatting:

>>> mytuple = ('new','lets python','python 2.7') 
>>> print "%s experience, %s with %s" % mytuple 
new experience, lets python with python 2.7 

str.format:

>>> print "{0} experience, {1} with {2}".format(*mytuple) 
new experience, lets python with python 2.7 
1

Вы можете использовать метод форматирования и звездочку, чтобы решить эту проблему ,

пожалуйста, обратитесь к this link для получения более подробной информации

>>mytuple=('new','lets python','python 2.7') 
>>print "{0} experience, {1} with {2} ".format(*mytuple) 
new experience, lets python with python 2.7 
1

Вы можете любой один из метода. Однако форматная версия проще, и вы можете легко управлять ею.

>>> a = '{0} HI {1}, Wassup {2}' 
>>> a.format('a', 'b', 'c') 
'a HI b, Wassup c' 
>>> b = ('a' , 'f', 'g') 
>>> a.format(*b) 
'a HI f, Wassup g' 
1

вы просто перепутали printf и str.format, вам нужно выбрать один из них:

>>> tuple1 = ("hello", "world", "helloworld") 
>>> print("%s, %s, %s" % tuple1) 

или:

>>> tuple1 = ("hello", "world", "helloworld") 
>>> print("{}, {}, {}".format(*tuple1)) 
0

Только нужно изменить немного:

>>> mytuple=('new','lets python','python 2.7') 
>>> print "%s experience, %s with %s " %mytuple 
new experience, lets python with python 2.7 
>>> 
Смежные вопросы