Dobrý způsob, jak zvládnout NoneType objektů při tisku v jazyce Python

hlasů
5

Jak mám jít o Tis objekt NoneType v Pythonu?

# score can be a NonType object
logging.info(NEW_SCORE : +score)

Také proto, že někdy vidím čárku namísto + výše?

Položena 27/08/2009 v 04:22
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
8

Nejlepší přístup je:

logging.info("NEW_SCORE: %s", score)

Ve většině kontextů, měli byste použít %operátor mezi formátovací řetězec na levé straně a hodnotou (y) na pravé straně (v n-tice, je-li více než jeden). Ale loggingfunkce jsou zvláštní: předáte řetězec formátu jako první argument, pak jeden po druhém, stejně jako mnoho argumentů, podle potřeby tak, aby odpovídal počtu %s& C formátování značek ve formátu a loggingfunkce bude používat operátor formátování %sjako vhodný právě tehdy, když to nezbytné - takže nemusíte vynakládat žádnou runtime režii, pokud vaše současná úroveň protokolování je taková, že například logging.infonení ve skutečnosti bude zobrazen.

Zapomeňte na strvolání a +na bázi zřetězení stejně - a to i bez logging‚s speciály, %-formatting je skutečně způsob, jak jít (v jazyce Python 2.6 nebo starší, 2.6 nebo novější, měli byste také zvážit řetězce‘ formatmetodu, která umožňuje jasnější a čitelnější výraz z toho, co činí stejnou funkci).

Odpovězeno 27/08/2009 v 04:39
zdroj uživatelem

hlasů
4
logging.info("NEW_SCORE : " + str(score))

Důkaz Python interpret:

>>> x = None
>>> "x: " + x
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'NoneType' objects
>>> "x: " + str(x)
'x: None'

QED

Odpovězeno 27/08/2009 v 04:24
zdroj uživatelem

hlasů
0

ne-li skóre == Žádné: logging.info ( "NEW_SCORE:" + skóre)

nebo

logging.info ( "NEW_SCORE:% s" % str (skóre))

Odpovězeno 01/02/2013 v 13:58
zdroj uživatelem

hlasů
0

Pro tisk účel, musíte STR jako první. Čárka je tisknout s jednou mezerou mezi it..For například:

print „Ahoj kluci“, „Jak se dnes“

Tato syntaxe bude výstup:

Ahoj kluci, jak se dnes

ale to se bude lišit, pokud váš syntax takto:

print „Ahoj kluci“ + „Jak se dnes“

Tato syntaxe bude výstup:

hi guyshow se dnes

Odpovězeno 27/08/2009 v 04:49
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more