[英]Tuple and placeholder interaction with python print()?
我運行了以下4組語句,它們給出了不同的結果。 我不確定造成差異的原因。 請參閱以下注釋-
'usercount'被強制為元組,為什么格式化成為元組后仍然有效? 在這里被強迫正確的術語嗎?
usercount=(6) #integer value
print ("Users connected: %d"%(usercount,))
Users connected: 6
%s或%d沒有區別,如果它是一個元組,則打印功能的工作方式相同。
usercount=(6)
print ("Users connected: %s"%(usercount,))
Users connected: 6
'usercount'聲明為元組,print fxn與%s占位符可以很好地工作。
usercount=(6,) # now tuple
print ("Users connected: %s"%(usercount,))
Users connected: (6,)
相同情況下的%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)的數字,您可以閱讀此鏈接以獲得有關這兩個信息的更好信息。
但在您的情況下:
usercount=(6)
行僅返回一個Integer值及其使用%d
真實方式。
usercount=(6)
行僅返回一個Integer值,並且可以將其轉換為字符串並進行打印,因此您也可以使用%s
。
usercount=(6,)
行僅返回一個元組值,並且可以將其usercount=(6,)
轉換為字符串並進行打印,因此您也可以使用%s
。
usercount=(6,)
行僅返回一個元組值,在這種情況下,您不能將元組轉換為整數,因此您不能為此使用%d
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.