Calcul mental

Soyez le premier à donner votre avis sur cette source.

Vue 10 055 fois - Téléchargée 616 fois

Description

Calcul mental est mon premier projet.
C'est loin d'être du haut niveau, il faut savoir que j'ai commencer l'apprentissage python aujourd'hui (01/11/10).
N'hésitez à proposer vos idées d'améliorations.

Source / Exemple :


# # -*- coding: cp1252 -*-
# # ########################### ##
# # ## Auteur: chuugar ######## ##
# # ## Projet: Calcul mental ## ##
# # ## Version: 0.2 ########### ##
# # ########################### ##

# Imports
import random

# Fonctions
def menu():
	print "Tapez:"
	print "1 pour le calcul 20"
	print "2 pour le calcul 100"
	print "O pour quitter"

	choix = input()
	if choix == 1:
		print "\n"
		calcul20()
	elif choix == 2:
		print("\n")
		calcul100()
	else:
		exit()

def calcul20():
	ensemble = 0
	while ensemble < 20:
		a = random.randint(0,10)
		b = random.randint(0,10)
		signe = random.randint(1,3)
		if signe == 1:
			resultat_1 = a + b
			print a, "+", b, "="
		elif signe == 2:
			resultat_1 = a - b
			print a, "-", b, "="
		else:
			resultat_1 = a * b
			print a, "*", b, "="
		resultat_2 = input()
		if resultat_1 == resultat_2:
			print "Bravo"
		else:
			print "Dommage"
		ensemble = ensemble + 1 

def calcul100():
	ensemble = 0
	while ensemble < 100:
		a = random.randint(0,10)
		b = random.randint(0,10)
		signe = random.randint(1,3)
		if signe == 1:
			resultat_1 = a + b
			print a, "+", b, "="
		elif signe == 2:
			resultat_1 = a - b
			print a, "-", b, "="
		else:
			resultat_1 = a * b
			print a, "*", b, "="
		resultat_2 = input()
		if resultat_1 == resultat_2:
			print "Bravo"
		else:
			print "Dommage"
		ensemble = ensemble + 1 

# Main
menu()

Conclusion :


Merci de me donner des conseils pour progresser. :)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
52
Date d'inscription
mardi 13 novembre 2007
Statut
Membre
Dernière intervention
26 janvier 2011
8
http://pastebin.com/fKasYwgg

Si vous voulez voir ma version vite fait modifiée ;)

Je ne remplace pas son code (a)

++
Messages postés
382
Date d'inscription
mercredi 23 août 2006
Statut
Membre
Dernière intervention
8 novembre 2010
11
Bienvenu sur PythonFrance, et merci pour commencer a apprendre le Python.
Je ne sais pas si tu as déjà fait beaucoup de programmation avant, mais faire ça au bout de 5 jours c'est pas trop mal, mais il y a quelques petites erreurs.

Il y en a clairement 2 et une dès la première ligne. Le codage c'est "# -*- coding: cp1252 -*-" (sans les guillemets qui sont la pour délimité la chaine). En mettant "# " devant tu enlève tout le caractère spécial de ce commentaire qui devient pour l'interpréteur un simple commentaire au lieu d'un codage.
Deuxième erreur vient de la lettre O majuscule que tu a mise au lieu de 0 (zéro).

Ensuite il y a plein de petit truc qu'il manque ou qu'il faudrait modifié, bien que le programme marche.

Par exemple la différence entre les deux fonctions vient du nombre de calculs. En transmettant ce nombre en argument tu n'écrira qu'une fonction valable dans les deux cas.

Ensuite attention a ce que fait l'utilisateur (le vilain) !!! input attend un nombre. Si je suis méchant je vais lui donner une lettre ou pire une variable python (si je lui donne une lettre il va le prendre pour une variable de ton programme et donc soit je suis donne une variable à laquelle il ne doit pas avoir accès soit je lui donne une variable qui n'existe pas et le programme bug)
Dans tout les cas, l'utilisateur peut faire buggé ton programme. LA solution : un raw_input + contrôle de la variable (vérifié si c'est un nombre - l'utilisation d'un try peut être sympa) et si c'est bon le convertir en nombre.

Voila pour commencer.

PS : Je ne vois pas la différence entre les deux versions ...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.