繁体   English   中英

元组和占位符与python print()的交互?

[英]Tuple and placeholder interaction with python print()?

我运行了以下4组语句,它们给出了不同的结果。 我不确定造成差异的原因。 请参阅以下注释-

情况1

'usercount'被强制为元组,为什么格式化成为元组后仍然有效? 在这里被强迫正确的术语吗?

usercount=(6)  #integer value
print ("Users connected: %d"%(usercount,))  
Users connected: 6

案例2

%s或%d没有区别,如果它是一个元组,则打印功能的工作方式相同。

usercount=(6)
print ("Users connected: %s"%(usercount,))
Users connected: 6

案例3

'usercount'声明为元组,print fxn与%s占位符可以很好地工作。

usercount=(6,) # now tuple
print ("Users connected: %s"%(usercount,))
Users connected: (6,)

案例4

相同情况下的%d占位符引发错误,需要数字,而不是元组。

usercount=(6,)
print ("Users connected: %d"%(usercount,))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-59-02d2ce66d935> in <module>()
      1 usercount=(6,)
----> 2 print ("Users connected: %d"%(usercount,))
TypeError: %d format: a number is required, not tuple

同样,当元组以另一种方式声明时,两个占位符都起作用。

usercount=(6,)
print ("Users connected: %s"%(usercount))
Users connected: 6

usercount=(6,)
print ("Users connected: %d"%(usercount))
Users connected: 6

很高兴知道您应该将%s用作字符串%d(decimal)的数字,您可以阅读此链接以获得有关这两个信息的更好信息。
但在您的情况下:

情况1:

usercount=(6)行仅返回一个Integer值及其使用%d真实方式。

情况2:

usercount=(6)行仅返回一个Integer值,并且可以将其转换为字符串并进行打印,因此您也可以使用%s

情况3:

usercount=(6,)行仅返回一个元组值,并且可以将其usercount=(6,)转换为字符串并进行打印,因此您也可以使用%s

情况4:

usercount=(6,)行仅返回一个元组值,在这种情况下,您不能将元组转换为整数,因此您不能为此使用%d

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM