-1
votes

Différence entre impression ("str", a) et imprimer ("str" ​​+ a)

Je suis un débutant avec python3 et j'utilise beaucoup imprimé ou le module logging pour suivre le code sur la console. Un exemple simple ci-dessous: quelle est la différence entre: xxx

et xxx


7 commentaires

Il n'y a pas de différence en tant que tel au résultat final (si tous sont des chaînes); Ce dernier est un style de cordes de concessions;


Cela peut faire une différence si numéro n'est pas une chaîne.


Que voulez-vous dire par "quelle est la différence"? "J'ai cuit", nombre, "plats" sont trois cordes, "J'ai cuisiné" + nombre + "plats" est un string. Imprimer Il arrive simplement d'interpréter les deux types d'arguments presque identiques.


En outre, le premier cas ajoute des espaces supplémentaires entre les mots dues au paramètre sep = '' de impression fonction.


avec imprimer ("soint", + numéro + "chèque") Vous obtiendrez une erreur si numéro est int et avec votre premier exemple, une erreur doit être évitée.


@Aditya il y a une différence


Je ne voulais pas dire qu'il n'y a pas de différence d'utilisation d'impression de cette façon, IWAS en regardant plus la sortie; De toute évidence, il y a une différence sur la manière dont la signature de la fonction (* args) est maintenant utilisée, car d'autres l'ont déjà dit, nous pouvons utiliser d'autres types ainsi, etc.


7 Réponses :


0
votes

L'instruction code> Imprimer code> prend en charge plusieurs façons d'analyser les valeurs.

print("I cooked " + number + " dishes")


0 commentaires

0
votes

International La différence est que cet exemple (no + signe): xxx

est d'impression 3 objets de chaîne distincts. "J'ai cuit" , est l'objet 1, numéro est l'objet 2, et "" vaisselle " est l'objet 3. Cela comporte donc 3 objets total.

dans le deuxième exemple (avec le signe +): xxx

Les 3 chaînes distinctes sont d'abord concactées dans 1 nouvel objet de chaîne avant d'être imprimé sur stdout. Donc, cet exemple a 4 objets total.


0 commentaires

0
votes

L'opérateur + ne peut être utilisé que sur les chaînes. L'opérateur , peut être utilisé sur n'importe quel type et ajoute un espace avant automatiquement. De plus, + peut être utilisé non seulement dans l'impression mais pour ajouter une chaîne à une autre tandis que , ne peut pas.


0 commentaires

0
votes

(Notez que dans les deux exemples que vous avez, en fonctionnant simplement, vous montrera que les résultats sont différents, car le premier aura des mots séparés par des places doubles.) em>

le Imprimer () Code> La fonction prendra des chaînes, chaque chaîne sera imprimée avec un '' '' code> entre eux: p> xxx pré>

Sortie: p> xxx pré>

c'est à cause de l'argument de mots clés, sep code>. Par défaut, sep = '' code>, qui est modifiable en ajoutant simplement: p> xxx pré>

sortie: p> xxx pré >

L'opérateur + code> n'ajouttera aucun séparateur, il concaténera simplement les chaînes: p> xxx pré>

sortie: p>

helloworld


0 commentaires

0
votes

Selon PEP3105 Imprimer est considéré comme une fonction prise * args (plusieurs arguments de position).

Pour répondre à votre question, le résultat est le même; Cependant, votre mise en œuvre est différente. Dans le premier cas, vous donnez imprimé plusieurs arguments à imprimer, tandis que dans le second cas, vous donnez une chaîne concaténée que vous souhaitez imprimer.


0 commentaires

0
votes

Lorsque vous utilisez xxx pré>

Imprimer code> Obtient 3 objets différents (3 cordes) comme des arguments, les convertit en chaîne puis des impressions. P>

Toutefois, en utilisant p> xxx pré>

signifie que d'abord ces trois chaînes sont concaténées et ensuite passées comme un objet à Imprimer P> P>

En réalité , cela signifie que si vous faites par exemple p> xxx pré>

Il lancera et error, car il n'est pas possible de concaténer directement la chaîne et des types d'int. p>

Notez également l'exemple suivant: P>

#concatenating 3 strings and passing them as one argument to print
>>> print('xxx' + 'a' + 'yyy',sep=',')
xxxayyy

#passing 3 strings as 3 arguments to print
>>> print('xxx','a','yyy',sep=',')
xxx,a,yyy


0 commentaires

0
votes

permet de dire a = "Comment allez-vous" et b = "adieu" qui sont 2 variables de chaîne.

  1. Si nous faisons Imprimer (A, B) :

    La déclaration imprimera d'abord A alors B comme chaînes séparées sorties sur une ligne:

    sortie:

    > Comment allez-vous au revoir

    1. Si nous faisons Imprimer (A + B) L'instruction concaténera ces deux variables A et B ensemble:

      sortie:

      > Comment vont YougoodBye (Ici, il n'y a pas d'espacement dû non pas d'espacement blanc dans la déclaration d'impression ni les variables)


0 commentaires