6
votes

Bon moyen de manipuler des objets non téythes lors de l'impression en python

Comment puis-je faire l'impression d'un objet non constitué dans Python? XXX

Aussi, pourquoi est-ce parfois je vois une virgule au lieu de + ci-dessus?


1 commentaires

Il devrait y avoir une coche creuse sous la flèche vers le bas - utilisez cela. En outre, vous devriez utiliser la flèche vers le haut pour voter pour des réponses utiles.


4 Réponses :


6
votes
>>> 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'

2 commentaires

Existe-t-il un moyen de vérifier si c'est un non constitué?


Vous pouvez faire quelque chose comme Logging.info ("New_Score:" + Score ou "No Score") . Si score n'est ni une chaîne vide, il connectera "NEW_SCORE: aucun score".



9
votes

La meilleure approche est la suivante: xxx

dans la plupart des contextes, vous devez utiliser un opérateur % entre la chaîne de format à gauche et la valeur ( s) à droite (dans un tuple, si plus d'un). Mais les fonctions sont spéciales: vous passez la chaîne de format comme premier argument, puis, l'une après l'autre, autant d'arguments que nécessaire pour correspondre au nombre de % s & c formatage des marqueurs dans le format et les fonctions utiliseront l'opérateur de formatage % s comme il convient si et seulement si si nécessaire - Vous n'entrez pas de surcharge d'exécution si votre niveau de journalisation actuel est tel que, par exemple, Logging.info ne sera pas réellement montré.

oubliez STR < / CODE> Appels et + -Based String Concaténation De toute façon - Même sans Logging S Promotions, %% -Formatting est vraiment la voie à suivre (en python 2.6 ou plus tôt; en 2.6 ou la version ultérieure, vous devez également envisager une méthode des chaînes ' , permettant une expression plus claire et plus lisible de ce qui représente la même fonctionnalité).


0 commentaires

0
votes

Pour but imprimé, vous devez d'abord STR. Une virgule est d'imprimer avec un seul espace entre celui-ci..Pour exemple:

Imprimer "Salut gars", "Comment allez-vous aujourd'hui"

cette syntaxe produira:

salut gars comment allez-vous aujourd'hui

Mais ce sera différent si votre syntaxe comme celle-ci:

Imprimer "Salut Guys" + "Comment allez-vous aujourd'hui"

cette syntaxe produira:

Bonjour Guisshow es-tu aujourd'hui


1 commentaires

Cela fonctionnera avec la déclaration d'impression (qui appelle implicitement str ), mais pas dans d'autres contextes.



0
votes

SI NON SCORE == Aucun: Logging.info ("NEW_SCORE:" + Score)

ou

Logging.info ("NEW_SCORE:% s"% STR (score))


0 commentaires