IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Présentation + problème de boucle lol


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2023
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2023
    Messages : 33
    Par défaut Présentation + problème de boucle lol
    Bonjour,

    Je profite de mon inscription pour me présenter : Damien 42 ans proche de Montpellier.
    Actuellement en volonté de reconversion vers les métiers de l'informatique, j'essaie de me lancer sur le python et j'ai une excellente nouvelle pour vous ...
    Si vous vous ennuyez, je serai là pour vous solliciter car j'apprends en commençant par les bases et j'ai soif de savoir.
    Ne vous inquiétez pas, je passe quand même par les sites "officiels" pour apprendre tels que ce site, youtube, etc etc pour connaitre les bases et surtout bouffer des exercices car c'est développant qu'on devient développeur lol.
    En tout cas, merci à tous ceux qui prendront le temps de m'aider et merci aussi pour la bienveillance.
    Si on commençait maintenant ?

    J'ai essayé de faire un exercice que j'ai voulu agrémenter à ma sauce et ma sauce a du mal à se lier si je puis dire.
    L'exercice de base était de voir combien il y avait de 6 tirages de suite pile ou face lorsqu'on tire 1000 fois une pièce.
    J'ai voulu en faire une fonction, que vous trouverez en pièce jointe, pour paramétrer le nombre de tirage consécutifs pour x tirages au total.
    J'y suis arrivé mais j'ai voulu pousser le bouchon plus loin Maurice en voulant faire un print de tous les résultats pour tous les tirages inférieur au tirage consécutif mais dans la fonction.

    Exemple : si je rentre le fait de voir 6 tirages consécutifs de pile et de face et avoir les informations, j'aimerais boucler pour avoir aussi 5 tirages, 4 tirages, 3 tirages, 2 tirages ... 1 tirage ne servant à rien car il y aura autant de possiblité de que de tirage total

    J'espère ne pas vous avoir perdu et si vous voulez m'aider je suis preneur car je n'arrive pas à faire boucle avec comme contrainte de de ne pas relancer des random.choice sinon ca va altérer le résulat.

    liste = ["merci", "merci", "merci"]

    Damienpile_ou_face_consecutif.py

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par damienvialla Voir le message
    Actuellement en volonté de reconversion vers les métiers de l'informatique, j'essaie de me lancer sur le python et j'ai une excellente nouvelle pour vous ...
    Je pense que ce serait plutôt une excellente nouvelle pour toi !!!

    Citation Envoyé par damienvialla Voir le message
    Ne vous inquiétez pas, je passe quand même par les sites "officiels" pour apprendre tels que ce site, youtube, etc etc pour connaitre les bases et surtout bouffer des exercices car c'est développant qu'on devient développeur lol.
    Avis personnel: j'apprends aussi (on apprend tous) mais je ne passe jamais par youtube. Je ne trouve pas ce support, devant lequel on reste passif, comme adapté à l'apprentissage. De mon avis l'apprentissage se fait de façon active, avec des tutos papiers (pdf) que l'on peut parcourir, s'arrêter, revenir, et copier les codes qui s'y trouvent pour les tester.

    Citation Envoyé par damienvialla Voir le message
    J'ai essayé de faire un exercice que j'ai voulu agrémenter à ma sauce et ma sauce a du mal à se lier si je puis dire.
    L'exercice de base était de voir combien il y avait de 6 tirages de suite pile ou face lorsqu'on tire 1000 fois une pièce.
    Ok. Donc combien de fois on a 6 "pile" d'affilée, ou 6 "face" d'affilée. A priori pas super compliqué: on tire et tant que le tirage est égal au tirage précédent on incrémente un compteur. Et dès que le compteur arrive à 6 on mémorise "un de plus".

    Citation Envoyé par damienvialla Voir le message
    J'ai voulu en faire une fonction, que vous trouverez en pièce jointe, pour paramétrer le nombre de tirage consécutifs pour x tirages au total.
    Très bonne initiative (je veux parler de l'idée de le faire en fonction). Parce que pour le code, si maintenant tu vas voir les règles, tu verras qu'il est mentionné que les codes doivent être postés ici car d'une part c'est plus facile de les copier que d'aller télécharger un fichier qui peut disparaitre demain.

    Citation Envoyé par damienvialla Voir le message
    J'y suis arrivé mais j'ai voulu pousser le bouchon plus loin Maurice en voulant faire un print de tous les résultats pour tous les tirages inférieur au tirage consécutif mais dans la fonction.
    Exemple : si je rentre le fait de voir 6 tirages consécutifs de pile et de face et avoir les informations, j'aimerais boucler pour avoir aussi 5 tirages, 4 tirages, 3 tirages, 2 tirages ... 1 tirage ne servant à rien car il y aura autant de possiblité de que de tirage total

    J'espère ne pas vous avoir perdu et si vous voulez m'aider je suis preneur car je n'arrive pas à faire boucle avec comme contrainte de de ne pas relancer des random.choice sinon ca va altérer le résulat.
    Un dictionnaire (si tu connais la notion) contenant
    • le nb de tirages successifs attendus
    • le nb de tirages correspondants

    Exemple
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    check={
    	2: 0,
    	3: 0,
    	4: 0,
    	5: 0,
    	6: 0,
    }
    Accessoirement on peut l'écrire en une instruction directe check=dict((k, 0) for k in range(2, 7)) mais tu mets ça dans un coin de ta tête sous le label "liste en intension" (et il n'y a pas de faute d'orthographe) et tu verras ça plus tard.

    Puis tu fais tes tirages et à chaque fois que le nb de "pile" (ou "face") qui se suivent s'incrémente, tu modifies le check qui va bien.
    Exemple:
    - pile (suite=1)
    - pile (identique au précédent donc suite=2 => check[suite]+=1)
    - pile (identique au précédent donc suite=3 => check[suite]+=1)
    - face (différent du précédent donc suite=1)
    - face (identique au précédent donc suite=2 => check[suite]+=1)
    - face (identique au précédent donc suite=3 => check[suite]+=1)
    - face (identique au précédent donc suite=4 => check[suite]+=1)
    ...

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    import random
     
    def pile_face(tirage, nb, *, debug=False):
    	check=dict((k, 0) for k in range(2, nb+1))
     
    	prev=None
    	suite=0
    	for i in range(tirage):
    		r=random.choice('PF')
    		if r == prev:
    			if suite < max(check.keys()): suite+=1
    			check[suite]+=1
    		else:
    			prev=r
    			suite=1
    		# if
    		if debug:
    			print("Tirage (%d): %s - Suite: %d, check: %s" % (i+1, r, suite, check))
    	# for
    	return check
    # pile_face()
     
    for (k, v) in pile_face(15, 6, debug=True).items():
    	if v: print("Suite %d atteinte %d fois" % (k, v))
    Après on peut dire que dans un tirage "6" il y a 5 tirages "2" (1+2, 2+3, 3+4, 4+5 et 5+6), 4 tirages "3" et etc mais bon je pense qu'on ne doit pas aller jusque là...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2023
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2023
    Messages : 33
    Par défaut
    Mille merci pour ce beau et complet message.
    Je vais m'y plonger dedans jeudi et je pense que ta remarque sur youtube est très bonne même si j'aime quand même l'interaction orale d'une personne que commente sur youtube ) => j'ai checké la vidéo de docteur string qui fait 7h.
    Tu as des conseils ou des liens de "cours" bien fait que je pourrai trouver ?
    Encore merciiiiii

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par damienvialla Voir le message
    Mille merci pour ce beau et complet message.
    Je viens de faire la modif pour les suites "imbriquées" (une suite de 6 entraine 2 suites de 5, 3 suites de 4 etc). Suffit de remplacer par check[suite]+=1 par for k in range(suite, 1, -1): check[k]+=1.

    Citation Envoyé par damienvialla Voir le message
    Tu as des conseils ou des liens de "cours" bien fait que je pourrai trouver ?
    Ma signature. C'est pourtant clairement écrit !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2023
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2023
    Messages : 33
    Par défaut
    Je vais me régaler...
    Vais être chiant, mais c'est pas grave j'en suis conscient 🤣 : il y a moyen d'imprimer facilement cette bible que tu as construite afin que je puisse lire sur papier, prendre des notes, surligner, etc etc ?

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par damienvialla Voir le message
    il y a moyen d'imprimer facilement cette bible que tu as construite afin que je puisse lire sur papier, prendre des notes, surligner, etc etc ?
    Il y a un lien "version pdf". De là, touche print => imprimante => papier => arbres => planète
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Problème de boucles imbriquées
    Par Gnux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 09/12/2005, 20h26
  2. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 18h39
  3. Problème de boucle
    Par TheUltimaSephiroth dans le forum C
    Réponses: 8
    Dernier message: 10/10/2005, 13h58
  4. Problème de boucle
    Par Louis-Guillaume Morand dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/09/2005, 09h10
  5. Problème de boucle
    Par basclln dans le forum C++
    Réponses: 19
    Dernier message: 02/04/2005, 09h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo