Deutsch   English   Français   Italiano  
<t1d7r6$1dec$1@gioia.aioe.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.mixmin.net!aioe.org!FdrTMw7+RJa5kGNwdwd/KQ.user.46.165.242.91.POSTED!not-for-mail
From: Dominique <zzz@aol.com.invalid>
Newsgroups: fr.comp.lang.python
Subject: Re: fonction python qui ne se lance pas toute seule et dont 1/5
 marche
Date: Tue, 22 Mar 2022 20:25:26 +0100
Organization: Aioe.org NNTP Server
Message-ID: <t1d7r6$1dec$1@gioia.aioe.org>
References: <3rqdne8aYaZ4ya7_nZ2dnUU7_83NnZ2d@giganews.com>
 <623357f5$0$29483$426a74cc@news.free.fr> <t13hgh$18ii$1@gioia.aioe.org>
 <62383555$0$8899$426a74cc@news.free.fr>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="46540"; posting-host="FdrTMw7+RJa5kGNwdwd/KQ.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.7.0
Content-Language: fr
X-Notice: Filtered by postfilter v. 0.9.2
Bytes: 3665
Lines: 71

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 :-)