π
<-
Chat plein-écran
[^]

Besoin d'un coup de pouce en Python !

Discussions scientifiques et scolaires

Besoin d'un coup de pouce en Python !

Message non lude Harry-Boo » 03 Mar 2014, 10:58

Bonjour la communauté !
Il y a de cela quelques semaines, nous nous sommes dits avec des amis que programmer sur nos calculatrices en cours, c'est sympa, mais ne peut-on pas y voir plus grand ?
Nous nous sommes donc mis à la recherche d'un langage facile d'accès, et nous avons trouvé le Python.

Après une petite semaine de familiarisation, je me suis décidé et ai voulu créer un petit programme (fort simple, mais il faut bien un début à tout !)

Au bout de quelques minutes me sont venues ces premières lignes :
Code: Tout sélectionner
import math
argent=100
while argent>0:
   print('''Il vous reste''',argent,'''$''')
   mise = input('''Entrez la valeur de votre mise : ''')
   if mise>=argent:
      mise=argent
      argent=0
   else :
      argent -= mise
   print('''Il vous reste''',argent,'''$''')
   choix = input('''Choisissez le numéro entre 0 et 49 sur lequel vous souhaitez miser : ''')
      if int(choix) <= 0 :
         choix = 0
         couleur_choix = ''' noir'''
      elif choix >= 49:
         choix = 49
         couleur_choix = ''' rouge'''
      else
         if choix%2 == 0:
            couleur_choix=''' noir'''
         elif choix%2 != 0 :
            couleur_choix=''' rouge'''
   print('''Vous avez misé''',mise,'''$ sur le''',choix,couleur_choix)
   import random
   resultat = random.randint(0,49)
      if resultat%2 == 0:
         couleur_resultat = ''' noir'''
      elif resultat%2 != 0 :
         couleur_resultat = '''rouge'''
   print('''Vous avez misé sur le ''',choix,couleur_choix)
   print('''Il fallait miser sur le ''',resultat,couleur_resultat)
      if choix == resultat :
         print('''Bravo, vous avez choisi le bon numéro ! :D''')
         print('''Vous remportez donc : ''',(mise+(3*mise)),''' $ (soit 3 fois votre mise plus votre mise de départ) '''
         argent = argent + mise + (3*mise)
         print('''Vous avez donc maintenant ''',argent,'''$''')
      elif couleur_choix == couleur_resultat :
         print('''Bravo, vous avez choisi la bonne couleur ! :D''')
         print('''Vous remportez donc : ''',math.ceil(mise+(0.5*mise)),''' $ (soit 0.5 fois votre mise plus votre mise de départ) '''
         argent = argent + mise + math.ceil(0.5*mise)
         print('''Vous avez donc maintenant ''',argent,'''$''')
      else :
      print('''Désolé, mais vous avez perdu :('''
      print('''Vous avez donc maintenant ''',argent,'''$''')

N'ayant jamais programmé avec Python auparavant, je ne savais pas comment celui-ci allait réagir, et il se trouve qu'il a détesté mon travail xD

Après une heure de modification, j'ai abouti à ceci :
Code: Tout sélectionner
import math
argent=100
while argent>0:
   print('''Il vous reste''',argent,'''$''')
   mise = input('''Entrez la valeur de votre mise : ''')
   mise = int(mise)
   if mise>=argent:
      mise=argent
      argent=0
   elif mise < argent :
      argent -= mise   
   print('''Il vous reste''',argent,'''$''')
   choix = input('''Choisissez le numéro entre 0 et 49 sur lequel vous souhaitez miser : ''')
   choix=int(choix)
   if choix <= 0 :
         choix = 0
         couleur_choix = ''' noir'''
   if choix >= 49 :
      choix = 49
      couleur_choix = ''' rouge'''
   else :
         if choix%2 == 0:
            couleur_choix=''' noir'''
         else :
            couleur_choix=''' rouge'''
   print('''Vous avez misé''',mise,'''$ sur le''',choix,couleur_choix)
   import random
   resultat = random.randint(0,49)
   resultat=int(resultat)
   if resultat%2 == 0:
         couleur_resultat = ''' noir'''
   elif resultat%2 != 0 :
      couleur_resultat = '''rouge'''
   print('''Il fallait miser sur le ''',resultat,couleur_resultat)
   if choix == resultat :
         print('''Bravo, vous avez choisi le bon numéro ! :D''')
         print('''Vous remportez donc : ''',(mise+(3*mise)),''' $ (soit 3 fois votre mise plus votre mise de départ) '''
         mise *= 4
         argent += mise
         print('''Vous avez donc maintenant ''',argent,'''$''')
   elif couleur_choix == couleur_resultat :
         print('''Bravo, vous avez choisi la bonne couleur ! :D''')
         print('''Vous remportez donc : ''',math.ceil(mise+(0.5*mise)),''' $ (soit 0.5 fois votre mise plus votre mise de départ) '''
         mise *= 1.5
         mise=math.ceil(mise)
         argent += mise
         print('''Vous avez donc maintenant ''',argent,'''$''')
   else :
      print('''Désolé, mais vous avez perdu :('''
      print('''Vous avez donc maintenant ''',argent,'''$''')


Le début marche parfaitement, mais j'ai un problème à partir de la ligne 35 (
if choix == resultat :
)

Si quelqu'un veux bien m'aider ^^

PS : Bisam m'a conseillé de poster ici, et peut-être pourrait-on faire un Questions/Réponses sur le Python, c'est à dire que dès que quelqu'un à une question ou un prog' qui foire, il peut le poster ici, de manière à ce que l'on puisse s'entraider.

Merci d'avoir lu et d'avoir répondu ! :D
Avatar de l’utilisateur
Harry-Boo
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 18.6%
 
Messages: 3
Inscription: 17 Nov 2013, 12:16
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: 1S

Re: Besoin d'un coup de pouce en Python !

Message non lude Bisam » 03 Mar 2014, 11:14

Tout d'abord, ton "import random" n'a rien à faire au milieu de la boucle "while". Il devrait être avant.
Ca ne sert à rien d'importer le module à chaque fois...

Ensuite, tes "if ... elif..." seraient bien plus efficaces si tu mettais à la place des "if .... else" car cela évite de faire le même test 2 fois.

En 3ème lieu, les triples guillemets ne sont vraiment utiles que si ton texte est sur plusieurs lignes ou qu'il comporte des guillemets en son sein... ce qui n'est pas ton cas. Tu pourrais te contenter de guillemets simples (mais il ne faut pas oublier de préciser l'encodage de tes caractères en début de fichier, sinon tu peux avoir des surprises).

Je vais chercher mon bébé (et changer sa couche...) et je reviens pour la suite des commentaires et des corrections éventuelles.
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5667
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Besoin d'un coup de pouce en Python !

Message non lude Harry-Boo » 03 Mar 2014, 11:20

C'est vrai qu'il y a pas mal de lignes inutiles.
Quant aux triples guillemets, j'ai appris comme ça donc ... ^^'
Ok, mer ci à toi ! :D

EDIT : Vraiment merci pour ton aide :D
Dernière édition par Harry-Boo le 03 Mar 2014, 11:42, édité 3 fois.
Avatar de l’utilisateur
Harry-Boo
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 18.6%
 
Messages: 3
Inscription: 17 Nov 2013, 12:16
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: 1S

Re: Besoin d'un coup de pouce en Python !

Message non lude Bisam » 03 Mar 2014, 11:30

Oula !
Mais je viens de voir qu'il y a plein d'erreurs d'indentation... et aussi des oublis de fermeture de parenthèses, des espaces en trop dans les noms des couleurs, etc...
Voici un code corrigé :
Code: Tout sélectionner
import math
import random
argent = 100
while argent > 0:
   print('''Il vous reste''', argent, '''$''')
   mise = input('''Entrez la valeur de votre mise : ''')
   mise = int(mise)
   if mise >= argent:
      mise = argent
      argent = 0
   else:
      argent -= mise   
   print('''Il vous reste ''', argent, '''$''')
   choix = input('''Choisissez le numéro entre 0 et 49 sur lequel vous souhaitez miser : ''')
   choix = int(choix)
   if choix < 0:
       choix = 0
       couleur_choix = '''noir'''
   elif choix > 49:
       choix = 49
       couleur_choix = '''rouge'''
   else:
       if choix % 2 == 0:
           couleur_choix='''noir'''
       else:
           couleur_choix='''rouge'''
   print('''Vous avez misé ''', mise, '''$ sur le ''', choix, couleur_choix)
   resultat = random.randint(0, 49)
   resultat = int(resultat)
   if resultat % 2 == 0:
       couleur_resultat = '''noir'''
   else:
       couleur_resultat = '''rouge'''
   print('''Il fallait miser sur le ''', resultat, couleur_resultat)
   if choix == resultat:
       print('''Bravo, vous avez choisi le bon numéro ! :D''')
       print('''Vous remportez donc : ''', 4*mise,''' $ (soit 3 fois votre mise plus votre mise de départ) ''')
       mise *= 4
       argent += mise
       print('''Vous avez donc maintenant ''', argent, '''$''')
   elif couleur_choix == couleur_resultat:
       print('''Bravo, vous avez choisi la bonne couleur ! :D''')
       print('''Vous remportez donc : ''' , math.ceil(1.5*mise), ''' $ (soit 0.5 fois votre mise plus votre mise de départ) ''')
       mise *= 1.5
       mise = math.ceil(mise)
       argent += mise
       print('''Vous avez donc maintenant ''', argent, '''$''')
   else:
       print('''Désolé, mais vous avez perdu :(''')
       print('''Vous avez donc maintenant ''', argent, '''$''')


On peut encore faire la remarque que l'on pourrait aussi bien s'en sortir sans utiliser la fonction "math.ceil", mais uniquement des divisions euclidiennes... et puis il vaudrait mieux utiliser des constantes pour les noms des couleurs... mais pour l'instant, restons-en là.
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5667
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Besoin d'un coup de pouce en Python !

Message non lude Harry-Boo » 22 Mar 2014, 09:53

Salut !
Je suis en train de réviser pour les équations de cercle, et tant qu'à faire, autant faire un petit programme en Python pour me tester !
Mais bon, je ne suis qu'un débutant et ai encore pas mal de mal avec l'interface graphique :/
Et c'est pour cela que j'aurais besoin de votre aide pour ce code :

Code: Tout sélectionner
import tkinter
from tkinter import *
import math
import random

#On crée l'équation du cercle sous la forme : x²+y²+x+y+c
x_eq = -6
y_eq = 2
constante = 5


#On affiche l'équation du cercle
print("Soit C le cercle d'équation : \nx² + y² +",x_eq,"x +",y_eq,"y +",constante," = 0\n \n")
print("Déterminer les coordonnées du centre I et du rayon R \n")

#On demande de saisir les coordonnées
x_choix = input("xI = ")
y_choix = input("yI = ")
r_choix = input("R² = ")

#On calcule les coordonées de I et la valeur de R
x_rep = -(1/2 * x_eq)
y_rep = -(1/2 * y_eq)
r_rep = -( -(x_rep**2) - (y_rep**2) + constante)

#On crée une fenêtre tkinter
fenetre = Tk()
fenetre.title("Vérification de l'équation de cercle")


def Cercle_correction() :
   #On trace un cercle rouge de centre I(x_rep;y_rep) et de rayon R=r_rep
   Canevas.create_oval(x_rep-r_rep, y_rep-r_rep, x_rep+r_rep, y_rep+r_rep, outline="red")
   

def Cercle_propose() :
   #On trace un cercle vert de centre I(x_choix;y_choix) et de rayon R=r_choix
   Canevas.create_oval(x_choix-r_choix, y_choix-r_choix, x_choix+r_choix, y_choix+r_choix, outline="green")
   

# Création d'un widget Canvas (zone graphique)
largeur = 480
hauteur = 320
Canevas = Canvas(fenetre, width = largeur, height = hauteur, bg ='white')
Canevas.pack(padx =5, pady =5)


# Création d'un widget Button (bouton votre cercle)
BoutonGo = Button(fenetre, text ='Votre cercle', command = Cercle_propose)
BoutonGo.pack(side = LEFT, padx = 10, pady = 10)


# Création d'un widget Button (bouton correction)
BoutonGo = Button(fenetre, text ='Correction', command = Cercle_correction)
BoutonGo.pack(side = LEFT, padx = 10, pady = 10)


#On crée une boucle qui s'arrête lorsque l'on ferme la fenêtre
print("Regardez la correction :")
fenetre.mainloop

ok=input()


Merci :D
Avatar de l’utilisateur
Harry-Boo
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 18.6%
 
Messages: 3
Inscription: 17 Nov 2013, 12:16
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: 1S


Retourner vers Maths, physique, informatique et autre...

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 6 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Offre de test des nouveautés de rentrée 2024 par Casio. Enseignant(e), reçois gratuitement 1 exemplaire, à ton choix, de la Graph Light ou bien de la Graph Math+
14€ remboursés par Casio sur l'achat de ta calculatrice Graph 35 d'ici le 31 Octobre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 90+E d'ici le 31 Décembre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 25 d'ici le 31 Décembre 2024
8€ remboursés par Casio sur l'achat de ta calculatrice Graph Math+ d'ici le 31 Octobre 2024
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 3€ peu importe son état. Même non fonctionnelle et donc invendable, même ancienne Graph 35 non conforme aux programmes (pas de Python), même ancienne Graph 25/35 inutilisable aux examens (pas de mode examen) et donc invendable. Etiquette de retour fournie, pas de frais de port à payer.
3€ remboursés par Casio sur l'achat de ta calculatrice fx-92 Collège d'ici le 30 Septembre 2024
5€ de remise immédiate sur l'achat de ta calculatrice TI-83 Premium CE Edition Python chez les revendeurs partenaires
4€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced Edition Python chez les revendeurs partenaires
3€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced chez les revendeurs partenaires
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234567891011121314
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1246 utilisateurs:
>1215 invités
>27 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)