Vous n'êtes pas identifié(e).
Dernière modification par Tyrpio (01-07-2015 22:59:40)
Quand vous ne voyez pas le service, c’est que vous êtes le produit !
Hors ligne
Je suis aussi sur Twitter et nouvellement sur Diaspora*
Mon blog de geekeries : HAL-9000
(J'applique la règle de proximité)
Hors ligne
Dernière modification par Tyrpio (01-07-2015 22:19:46)
Quand vous ne voyez pas le service, c’est que vous êtes le produit !
Hors ligne
Je suis aussi sur Twitter et nouvellement sur Diaspora*
Mon blog de geekeries : HAL-9000
(J'applique la règle de proximité)
Hors ligne
Quand vous ne voyez pas le service, c’est que vous êtes le produit !
Hors ligne
Je suis aussi sur Twitter et nouvellement sur Diaspora*
Mon blog de geekeries : HAL-9000
(J'applique la règle de proximité)
Hors ligne
Ça fonctionne mais il y a plus simple et efficace
C'est vrai, merci
En réalité ce qui compte c'est de savoir si c'est « Oui » ou « Non », peut importe la façon dont ces chaînes sont écrites. Une façon plus efficace que la tienne consiste donc à transformer « s » en minuscules (ou en majuscules, au choix) puis à comparer cette nouvelle valeur de « s » aux chaînes « oui » et « non » (ou « OUI » et « NON » si tu as choisi de transformer « s » en majuscules).
Ok mais dans les instructions on nous demande à la fois de vérifier si c'est Oui, oui ou OUI et pareil pour non.
A moins que pour rajouter s.upper(), on tape ce code :
Je ne sais pas vraiment, à vérifier.
Ça produit un code plus court, qui économise des variables (pas besoin de créer les variables oui et non), et plus efficace dans la mesure où il permet de faire face à bien plus de cas de figures que ton code :
def fermer(s):
s = s.lower()
if s=="oui":
print "Fermeture..."
return "Fermeture..."
elif s=="non":
print "Fermeture annulee !"
return "Fermeture annulee !"
else:
print "Je ne vous comprends pas."
return "Je ne vous comprends pas."
Et j'ai une dernière question si vous savez. Comment l'interpréteur relie s à une chaîne de caractère si on ne l'a pas affecté avant ? J'aurai bien imaginé la déclarer avant comme cela :
Je ne sais vraiment pas, une petite lanterne ?
Dernière modification par Tyrpio (02-07-2015 00:10:09)
Quand vous ne voyez pas le service, c’est que vous êtes le produit !
Hors ligne
Quand vous ne voyez pas le service, c’est que vous êtes le produit !
Hors ligne
captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.
Hors ligne
"L'éducation vise à former des citoyens pas trop tatas et non pas à envoyer le plus de tatas possible à l'université."
Pierre Foglia (Journaliste à la retraite à La Presse)
Note : au Québec, le mot tata a un sens péjoratif qui sert à désigner une personne un peu idiote ou insignifiante. D'où les expressions familières : Espèce de grand, de gros tata! Être, avoir l'air tata.
Hors ligne
Hors ligne
Ok mais dans les instructions on nous demande à la fois de vérifier si c'est Oui, oui ou OUI et pareil pour non.
En fait on demande que la « réponse » soit la même si c'est Oui, oui ou OUI, mais fondamentalement on se fiche de savoir comment est écrit le « oui ». Faut juste qu'il soit pris en compte, quelque soit la façon dont il est écrit.
C'est la raison pour laquelle la stratégie consistant à se dire « peut importe la façon dont ma chaîne est écrite, je la transforme en minuscule pour la comparer à “oui” et “non” » est plus souple/plus efficace. Tu n'as ainsi pas à comparer la valeur de s à toutes les façons possibles d'écrire « oui ».
(Le jour où tu dois vérifier le contenu d'un paramètre comme s sur un mot ou une expression susceptible de comporter bien plus que 3 caractères, tu seras heureux de ne pas avoir à comparer s à chacune des façons possibles de l'écrire )
Je suis aussi sur Twitter et nouvellement sur Diaspora*
Mon blog de geekeries : HAL-9000
(J'applique la règle de proximité)
Hors ligne
En python, le type des variables est déterminé à l'exécution.
Merci pour vos réponses
Je comprends déjà mieux ahah, j'adore le Python
Juste une question par rapport à cette phrase. Le type des variables est déterminé à l'exécution, je ne comprends pas trop cette phrase. Ma question ce n'était pas vraiment pour les variables, à moins que les paramètres sont des variables ? Mais c'était plus pourquoi on n'affecte pas une valeur à par exemple s (le paramètre que j'ai mis mais je demande cela d'une façon plus générale) ?
Comment l'interpréteur sait ce qu'est s ? Parce que sinon ça veut dire que dés qu'il voit une lettre ou un ensemble de lettre il sait que c'est une chaîne de caractère (string). Il y a un gars qui m'a dit que l'interpréteur ne pouvais pas utiliser s parce qu'il n'était pas déclarer, affecter (il ne connais rien à Python mais il connaît l'algorithme (le langage "humain" comme il le dit et connais le Paskal, enfin s'en souviens).
Dernière modification par Tyrpio (02-07-2015 10:44:22)
Quand vous ne voyez pas le service, c’est que vous êtes le produit !
Hors ligne
La première phase de compilation va vérifier la grammaire. Peu importe
la façon dont tu nommes tes variables. L'expression précédente est
valide grammaticalement. Donc la phase de compilation est passée avec
succès. Mais python ne connaît pas encore le type de la variable « n ».
Quand python va évaluer la forme compilé de cette expression, il va
voir que « "une chaine" » est une string. Et donc, « n » va prendre
le type string.
Quelle distinction fais-tu entre les variables et les paramètres ?
Les paramètres des fonctions se comportent comme des variables qui
sont déterminés lors de l'appel de cette fonction.
Ici, on voit que « x » va être un nombre, cependant python ne le saura
qu'au moment où il va évaluer le code.
Si je décide de l'appeler avec un nombre dans un programme :
Par contre le programme suivant est invalide :
Ce qui provoque une erreur de type…
Pour terminer et à titre d'information, il existe des langages
capables de déterminer le type des variables à la compilation, dans la
plupart des cas, sans qu'il soit nécessaire de les déclarer comme en pascal.
Ce mécanisme s'appelle l'inférence de type.
Dernière modification par enicar (02-07-2015 14:59:19)
Hors ligne
Hors ligne
La grammaire du langage n'a pas été respectée, et le compilateur nous rapporte le problème
Dernière modification par enicar (02-07-2015 15:04:35)
Hors ligne
Quand vous ne voyez pas le service, c’est que vous êtes le produit !
Hors ligne