Le code a l'air plutôt pas mal, bien découpé, quelques remarques cependant :
Dans la fonction want_to_play_question ta variable answer_ok n'est pas très utile puisque ne change jamais de valeur, ton code serait équivalent avec un while True.
Trois de tes fonctions opèrent simplement une boucle jusqu'à obtenir une réponse valide de l'utilisateur suivant certaines conditions, elles mériteraient d'être factorisées pour éviter trop de répétition dans la logique du code.
Je ne suis pas sûr de la logique voulue, mais est-ce normal que lorsque l'on mise on ne retire pas systématiquement la mise de l'argent disponible ?
Autre petit point : au moment où l'on nous demande de parier, les bornes ne sont pas connues, elles ne sont affichées que si l'on entre un nombre invalide.
@entwanne: Merci beaucoup. J'ai corrigé les plus grosses erreurs (vive github pour mettre à jour les sources). J'ai volontairement retardé le "débit" de la mise à la fin car la somme est restituée 2 cas sur 3. J'ai donc effectué un simple calcul des gains qui peuvent être négatifs si la mise est perdue. Effectivement, les boucles sont maladroites. Je vais y réfléchir mais je n'ai pas encore trop d'idées. Le refactor en une fonction unique est potentiellement à étudier mais les messages d'erreurs de saisie ne seront plus personnalisés au cas présent.
Edit: J'ai supprimé la variable answer_ok par une simple boucle infinie et je sors simplement des boucles avec un return.
J'ai fait tester à mes enfants et ils ont découvert une "faille" qui permettait de miser 0$ et un bug qui misait toujours la somme totale lorsqu'on gagnait. J'ai aussi découvert la nécessité de préciser l'intervalle attendu pour les numéros à miser.
Je te conseille aussi pour ça de mettre en place des tests (avec pytest par exemple) pour t'assurer des différents comportements.
Peut-être qu'on découpage différent sera nécessaire, pur éviter de trop dépendre des entrées utilisateur qu'il te faudrait mocker.
Autant je pense avoir de bonnes bases en programmation, autant les tests c'est quelque chose de totalement mystérieux pour moi. Je vois naïvement leur intérêt mais je ne sais pas m'en servir ni même par où commencer pour me familiariser avec ce concept. Je te remercie encore pour tes réponses.
Edit: Peux tu m'expliquer ce que signifier "mocker" ? J'ignore son sens dans le contexte. (imiter, simuler en traduction online)
Bonjour a tous, voila maintenant quelques jours que je code et j'en suis au niveau de la construction d'une interface graphique. Mon problème est que je n'arrive pas a inclure une image dans la fenêtre que j'ai créée juste avant. Son encadrement est vide et pas aux bonnes dimensions. Je pense que mon erreur est après le commentaire # création d'une image. Mais bon je vous laisse trouver. Voici un copier coller de mon programme (mon image existe bel et bien):
# personnaliser la fenetre window.title("antivirus") window.geometry("1080x720") window.minsize(480, 360) window.iconbitmap("shield.ico") window.config(background='#9ACD32')
Après deux jours sur le projet de pendu, j'ai enfin terminé d'implémenter toutes les fonctionnalités demandés. Entre les allers-retours avec la doc officielle, la recherche sur stackoverflow de certains détails, la réflexion personnelle et le refactoring permanent, je suis rincé.
Comme d'habitude, si quelques âmes charitables veulent bien me faire des retours sur mon projet, ce serait vraiment sympa.
J'ai découpé plein de choses en sous fonctions mais ça commence à sérieusement être le fouilli dans le fichier `functions.py`. J'imagine que découper le programme en fichiers indépendants pour chaque objet pourrait alléger la lecture mais je ne maîtrise pas encore ça et j'ai encore du mal à voir comment rendre tout ça plus lisible.
Le plus difficile a été pour moi l'utilisation des fichiers mais au final, la lib pickle fait quasiment tout le boulot sans avoir à mettre les mains dans le cambouis. J'ai mis plus de temps à réfléchir à comment utiliser cette lib et gérer le cas où le fichier n'existe pas qu'à vraiment écrire les fonctions.
Enfin... La mise en application des concepts du cours me rappelle que la pratique est essentielle pour "saisir" l'utilisation des fonctionnalités du langage.
Bonjour, l'interpréteur utilisé dans le cours est CPython, l'implémentation la plus officielle de Python, https://www.python.org/
- Edité par digammaF hier à 19:30
Merci pour ton retour. J'ai bien téléchargé le logiciel disponible sur Python.org mais je ne retrouve pas la représentation en couleurs (mais uniquement blanc sur fond noir et les lignes ne sont pas numérotées) tel qu'il est représenté sur image ci-dessous:
@othman_86: Ce que tu montres dans ton image, c'est juste une présentation avec une coloration syntaxique. Cette esthétique ressemble à celle de l'éditeur de code Sublime Text. Je ne l'utilise pas car il est théoriquement payant mais tu peux l'utiliser gratuitement pour l'essayer aussi longtemps que tu veux sans aucune limitation. De nombreuses personnes adorent cet éditeur très populaire mais vu qu'il est payant si on l'utilise en respectant les conditions d'utilisation, je préfère me tourner vers des solutions gratuites que je trouve tout aussi bien. Mon éditeur favori reste VS Code. Tu peux essayer Atom également ou encore des solutions plus légères comme Geany qui tourne bien sur Raspberry Pi ou Notepad++. D'autres te conseilleront des solutions encore plus légères comme Idle préinstallé avec Python ou vi préinstallé sur Linux.
Dans tous les cas, un éditeur de code te permettra de plus facilement lire ton code ou de fournir certaines facilités pour déboguer ou exécuter tes programmes. Ce ne sont que des outils et l'essentiel est de pouvoir saisir tes programmes et de savoir les compiler pour les tester.
@othman_86: Ce que tu montres dans ton image, c'est juste une présentation avec une coloration syntaxique. Cette esthétique ressemble à celle de l'éditeur de code Sublime Text. Je ne l'utilise pas car il est théoriquement payant mais tu peux l'utiliser gratuitement pour l'essayer aussi longtemps que tu veux sans aucune limitation. De nombreuses personnes adorent cet éditeur très populaire mais vu qu'il est payant si on l'utilise en respectant les conditions d'utilisation, je préfère me tourner vers des solutions gratuites que je trouve tout aussi bien. Mon éditeur favori reste VS Code. Tu peux essayer Atom également ou encore des solutions plus légères comme Geany qui tourne bien sur Raspberry Pi ou Notepad++. D'autres te conseilleront des solutions encore plus légères comme Idle préinstallé avec Python ou vi préinstallé sur Linux.
Dans tous les cas, un éditeur de code te permettra de plus facilement lire ton code ou de fournir certaines facilités pour déboguer ou exécuter tes programmes. Ce ne sont que des outils et l'essentiel est de pouvoir saisir tes programmes et de savoir les compiler pour les tester.
Bonjour, Merci pour ces éclaircissements très pertinents ! Mes salutations !
Bonjour à tous, j'ai vraiment besoin d'aide pour un programme, voici les consignes: "déterminer le nombre premier qui suit un nombre n donné (n étant un entier naturel)" . Merci d'avance pour votre aide.
Bonjour à tous, j'ai vraiment besoin d'aide pour un programme, voici les consignes: "déterminer le nombre premier qui suit un nombre n donné (n étant un entier naturel)" . Merci d'avance pour votre aide.
Ou-est ce que tu bloques ? Est-ce que tu as du code ?
- Edité par bergiLeZÉR0 24 octobre 2019 à 18:19:31
"I believe in two things. Discipline and the Bible." The Shawshank Redemption
Bonjour à tous, j'ai vraiment besoin d'aide pour un programme, voici les consignes: "déterminer le nombre premier qui suit un nombre n donné (n étant un entier naturel)" . Merci d'avance pour votre aide.
Ou-est ce que tu bloques ? Est-ce que tu as du code ?
Bonjour à tous, je dois réaliser un programme pour un projet scolaire et je suis totalement perdu. Voici les consignes: déterminer le nombre premier qui suit un nombre n donné (n étant un entier naturel). J'ai vraiment besoin d'aide !!
J'ai déjà réussi a faire un programme permettant d'identifier un nombre premier:
a=int(input("donne un nombre et vérifions si il est premier" ))
b=0
import math
for i in range(2,int(math.sqrt(a))):#nombre inférieur à la racine carré de a
Bonjour a tous ,j'ai un projet dans python et j'ai besoin d'un aidedonc le projet consiste de trouver une solution d'un labyrinthe par ces algorithme de recherche en largeur,profondeur et A* la classe est deja definis dans ce lien
def combi(): a = int(input("a : ")) b = int(input("b : ")) if b>=a & a>=0: p=1 for i in range(1,a+1): p=p*i f=1 for i in range(1, b+1): f = f*i t = 1 for i in range(1, b-a+1): t = t*i c=f//(p*t) print("combinaison de",a,"dans",b,"est",c ) else: print("erreur")
if __name__=='__main__' : combi()
voici un programme que j'ai écris pour permettre à calculer la combinaison de la variable"a" dans la variable "b" mais j'ai
un problème lorsque je veux tester. svp corrigé moi ce programme. Merci
bonjours moi et ma classe n'arrivons pas a comprendre ce qu'il faut faire et surout COMMENT le faire
Ecrire un programme perimetre qui prend un argument une liste de points sous la forme d'un tableau du type [xA,yA,xB,yB,xC,yC,....] et qui calcule le périmètre du polygone ABC..
donc si qqn peut nous venir en aide et nous sauvez d'un desastre general on vous sera reconnaissant
ps desoler pour les fautes d'ortho
- Edité par JuliaLaktineh 6 novembre 2019 à 15:12:35
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
typage structurel ftw
"I believe in two things. Discipline and the Bible." The Shawshank Redemption
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique