2010-11-10 2 views

ответ

14

Код без экслизированного кортежа может укусить вас, если ваша переменная содержит кортеж.

>>> nums = (1, 2, 3, 4) 
>>> print "debug: %r" % (nums,) 
debug: (1, 2, 3, 4) 
>>> print "debug: %r" % nums 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: not all arguments converted during string formatting 

Так что всегда использование кортежа в синтаксисе строки формата является частью защитного кодирования.

0

Они заканчиваются тем же самым, если у вас есть одна переменная для подстановки.

Из docs:

Учитывая format % values (в вашем случае format = "Пользователи подсоединена:% d", и values = UserCount)

Если формат требует один аргумент, значения могут быть один не-кортеж . В противном случае значения должны быть кортежем с точно количеством элементов , указанными в строке формата, или единственным объектом сопоставления (например, словарь)

0

в этом случае да как только предмет отправлен. Если вам нужно передать несколько элементов кортежа требуется

print 'There are %d user connected %s' % (userCount, 'today') 
0

Да у них есть, но скобка используется для групповых переменных в таком состоянии

print "Hi there. I am %s and i am %d years old"%(name, age) 

Таким образом, ее основное использование, с одним или несколькими переменные ...

-1

Они имеют одинаковый выход, но код выглядит по-другому. Каждый разработчик программного обеспечения разработал «стиль» на протяжении многих лет, основываясь на тех ошибках, которые они создают. Если вы пытаетесь забыть запятую в одноэлементном кортеже, или если вы пишете код для разных версий Python или просто хотите сделать вашу жизнь проще, если вам нужно добавить дополнительные параметры, это может привести к тому, что я всегда использую кортеж "в качестве кода выше.

Смежные вопросы