簡體   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