Re: fonction python qui ne se lance pas toute seule et dont 1/5 marche

Liste des GroupesRevenir à fcl python 
Sujet : Re: fonction python qui ne se lance pas toute seule et dont 1/5 marche
De : zzz (at) *nospam* aol.com.invalid (Dominique)
Groupes : fr.comp.lang.python
Date : 22. Mar 2022, 21:25:26
Autres entêtes
Organisation : Aioe.org NNTP Server
Message-ID : <t1d7r6$1dec$1@gioia.aioe.org>
References : 1 2 3 4
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0
Le 21/03/2022 à 09:20, Nicolas a écrit :
Bonjour,
 Le 19/03/2022 à 04:09, Dominique a écrit :
Le 17/03/2022 à 16:47, yves a écrit :
>
Explorer lentement et méticuleusement les bases de l'input utilisateur en
Python:
>
https://www.w3schools.com/python/python_user_input.asp
>
Bonjour,
Je suis allé jeter un œil sur ce site. Quel est l'intérêt du "+" par rapport à la virgule dans le print :
>
print("Username is: " + username)
Username is: Test
>
print("Username is: ",username)
Username is:  Test
>
Je ne vois, comme différence, qu'une espace avec le + dans le premier cas, contre deux avec la virgule...
>
Dans le cas présent, il n'y a effectivement qu'un espace de différence.
L'utilisation du "+" fonctionne parce que "username" est une chaine de caractères, Python permettant la concaténation de chaines de caractères avec l'opérateur "+".
 Prenons un autre cas :
print ("Age utilisateur :", age) # age est un entier
 Ici, utiliser "+" n'est pas possible car age n'est pas une chaine de caractères. On ne peut pas ajouter un entier à une chaine de caractères.
 Pourquoi cela fonctionne avec une virgule ? C'est parce que la fonction print() affiche, pour chaque argument x :
- Lorsque x est une chaine de caractère, affiche x
- Lorsque x est n'est pas une chaine de caractères, affiche str(x)
 L'exemple ci-dessus est donc équivalent à
print ("Age utilisateur :", str(age))
 Ceci est valable pour tous les objets.
 Pour aller plus loin, str(x) appelle x.__str__().
Tous les objets prédéfinis ont une méthode __str__ qui est appelée automatiquement lorsque str() est utilisée.
Pour une classe que l'on définit soit même, ont peut ajouter la méthode à la classe pour lui faire afficher ce que l'on veut :
def __str__(self):
 Lorsque la méthode __str__ n'est pas définie, str(x) appelle la fonction repr(x) qui elle-même appelle la méthode x.__repr__() lorsqu'elle est définie.
Idem que pour __str__, on peut définir __repr__ soit même.
Lorsque __repr__ n'est pas définie, repr() affiche le nom et l'adresse de l'objet.
 Les infos sont dans la doc officielle :
- print : https://docs.python.org/3/library/functions.html#print
- str   : https://docs.python.org/3/library/stdtypes.html#str
- repr  : https://docs.python.org/3/library/functions.html#repr
 Bonne semaine
 Nicolas
Merci pour ces précisions et liens, Nicolas :-)

Date Sujet#  Auteur
17 Mar 22 * fonction python qui ne se lance pas toute seule et dont 1/5 marche8speedman12
17 Mar 22 `* Re: fonction python qui ne se lance pas toute seule et dont 1/5 marche7yves
19 Mar 22  `* Re: fonction python qui ne se lance pas toute seule et dont 1/5 marche6Dominique
19 Mar 22   +- Re: fonction python qui ne se lance pas toute seule et dont 1/5 marche1yves
19 Mar 22   +* Re: fonction python qui ne se lance pas toute seule et dont 1/5 marche2Benoit Izac
19 Mar 22   i`- Re: fonction python qui ne se lance pas toute seule et dont 1/5 marche1Dominique
21 Mar 22   `* Re: fonction python qui ne se lance pas toute seule et dont 1/5 marche2Nicolas
22 Mar 22    `- Re: fonction python qui ne se lance pas toute seule et dont 1/5 marche1Dominique

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal