CALCULATRICE (AIDE SUR LES FONCTIONS EN PYTHON)

PlugnPlay666 Messages postés 30 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 17 septembre 2010 - 8 juil. 2010 à 22:15
xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 - 6 sept. 2010 à 18:35
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51999-calculatrice-aide-sur-les-fonctions-en-python

xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 2
6 sept. 2010 à 18:35
trash code.

voila la version 2.0 de ton code :

while 1 : print eval(raw_input(">>>"))


et puis franchement ;

print("Du nombre :")
nombre1 = input()
nombre1 = int(nombre1)

écrit le comme ça :

nombre1=int(input("Du nombre :"))


deplus le int est inutile puisque input renvoit TOUJOURS un integer. (sauf dans py 3.0 que tu as pas.)

et puis franchement... Essaie d'avoir des qualités dans ton programme. (oui, c'est exactement ce que je veut dire.)
megabraker Messages postés 1 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 13 juillet 2010
13 juil. 2010 à 21:41
python implémente une calcule par deffaut :/
Try eval.....
matad0r Messages postés 44 Date d'inscription jeudi 2 octobre 2008 Statut Membre Dernière intervention 31 octobre 2010
13 juil. 2010 à 17:53
Aaaaah oui d'accooord ! :)
J'avais pas vu ton pseudo. :p
PlugnPlay666 Messages postés 30 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 17 septembre 2010
11 juil. 2010 à 22:52
@Aera > Je crois qu'il se demandait de qui tu parlais.
@Matad0r > Il parlait de moi ;)

Au fait Aera, je n'ai pas encore étudié les modulos en cours (je passe en seconde) c'est pourquoi je pensais que les modulos n'étaient utilisés qu'en programmation . . .

Sinon, il serait bien de faire des commentaires sur la source hein ! ^^
C'est quand même le but =P
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
11 juil. 2010 à 20:00
"Ami Plug & Play ?"

Façon de parlé ;)
matad0r Messages postés 44 Date d'inscription jeudi 2 octobre 2008 Statut Membre Dernière intervention 31 octobre 2010
10 juil. 2010 à 14:33
Ami Plug & Play ?
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
10 juil. 2010 à 10:36
Rien c'était juste pour montrer à notre ami Plug & Play ce que voulait dire modulo ... Rien d'important. :)
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
10 juil. 2010 à 07:55
oui, 1 + 1 = 0 [2] et alors ?
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
9 juil. 2010 à 19:08
pas marrent CodeS-SourceS prend pas le signe congrus ...

Bon alors en moi strict : 1 + 1 = 0 [2] !!!! ("un plus un congrus à zéro modulo deux")
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
9 juil. 2010 à 19:02
1 + 1 = 0 [2] !!!!
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
9 juil. 2010 à 16:19
Je pense que tes fonctions sont très mal choisies, elles n'apportent rien et au contraire, ton code devient plus compliqué, il est plus simple et plus intuitif d'utiliser directement n1 + n2 que additionner(n1, n2).

En revanche, tu pourrais faire des fonctions qui te permettent de gérer l'affichage qui n'est pas très bon,

Pour la remarque du modulo, ca existe aussi en mathématiques, mais modulo n'est pas un opérateur, l'opérateur est la congruence. Ou tu peux l'appeler division euclidienne.
matad0r Messages postés 44 Date d'inscription jeudi 2 octobre 2008 Statut Membre Dernière intervention 31 octobre 2010
9 juil. 2010 à 08:22
Merci de ton commentaire, cependant je l'ai précisé, ce code est uniquement pour comprendre comment marchent les fonctions et leurs retours plus que pour une calculatrice.
Je vais cependant l'améliorer suite à tes conseils, merci !
PlugnPlay666 Messages postés 30 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 17 septembre 2010
8 juil. 2010 à 22:15
Des commentaires oui, trop de commentaires non . . . Tes commentaires de définition de fonctions sont inutiles.

Ensuite, pour ton menu, connaît tu les triples quotes ? (""")

Car tu peux le simplifier énormément en ceci : http://pastebin.com/zdbkRWPj

De plus, Modulo pour quelqu'un qui n'a jamais programmé ça ne veux strictement rien dire . . .
Je te passe la fonction qui permet de faire une vrai division comme les gens les connaissent, je te laisse le soin de faire quelque chose pour afficher le résultat de la division entière avec le reste un peu après (sous la forme R = reste)

Sinon, par rapport à la factorisation, les lignes 42 et 43 tu peux les remplacer par choix = int(input())
Pareil pour tous les autres moments où tu désires que l'utilisateur rentre un nombre.
Sinon, comme tu l'as dit dans ta description, il faudrait rajouter des gestions d'exceptions, mais si tu ne le fait pas, les débutants vont faire des codes qui vont bugger tout le temps car il n'auront pas mis ceci dans leurs codes, par conséquent tu te dois de le faire.
J'ai également vu quelque chose d'absolument horrible dans ton code juste avant l'affichage du résultat, tu met un print(""), au lieu de faire cette atrocité, met un \n au début de ta ligne suivante, tu verras que ton code s'allègera. C'est ça la factorisation, réduire les lignes de code le plus possible (bien évidemment, pas au détriment de la lisibilité)

Bon, voilà j'en ai fini, bon courage ;)

PS: C'est une critique constructive que j'ai essayé de faire.
Rejoignez-nous