我遇到的代码来了,如同为什么元组以字符串格式正在使用
print "Users connected: %d" % (userCount,)
我想知道,有什么理由在
print "Users connected: %d" % userCount
不写他们的,他们似乎具有相同输出
我遇到的代码来了,如同为什么元组以字符串格式正在使用
print "Users connected: %d" % (userCount,)
我想知道,有什么理由在
print "Users connected: %d" % userCount
不写他们的,他们似乎具有相同输出
没有明确元组的代码可能会咬你,如果你的变量包含一个元组。
>>> 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
因此,总是在格式字符串语法中使用元组是防御性编码的一部分。
如果您有一个替代变量,它们就会完全相同。
从docs:
鉴于format % values
(你的情况format
= “用户连接:%d”,和values
= USERCOUNT)
如果格式需要一个参数, 值可以是单个非元组 对象否则,值必须是 元组,其格式字符串指定的项目数 的数量必须为 或单个映射对象为 (例如, 字典)
在这种情况下是的,因为只有物品通过。如果您需要将多个项目需要
print 'There are %d user connected %s' % (userCount, 'today')
是的,他们有一个元组,但括号是用来组变量,在这种条件下
print "Hi there. I am %s and i am %d years old"%(name, age)
因此,它的基本用法,与一个或多个变量...
他们有相同的输出,但代码看起来不同。每个软件开发人员都根据他们犯的错误类型制定了多年的“风格”。如果您倾向于忘记单元组元组中的逗号,或者如果您为不同版本的Python编写代码,或者只是想让您的生活更轻松,以防需要添加更多参数,则可能会导致“我总是使用元组“作为上面的代码。