Fonction aléatoire python

Fermé
Utilisateur anonyme - 30 avril 2012 à 21:35
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 1 mai 2012 à 18:59
Bonjour,
Voila en fait je suis en 2nd et mon professeurs de Mathématiques, dans le cadre des probabilités, souhaite nous faire programmer une application simulant 10 lancés de dé.
En gros, cette application donne 10 nombres compris entre 1 et 6 inclus à la suite.
J'ai réussis sur Algobox (ce qui été demandé)
Mais étant plus curieux, j'ai essayer de la développer sous python. J'ai repris le même système que sur Algobox (boucle for/while) , mais en langage python.
J'ai tapé le code suivant:

import os
import random
n = 0
r = random.randint(1,6)
for n < 10
print r
n = n + 1
os.system("pause")

Seulement, l'interpréteur se ferme de suite, malgré la présence de la fonction import os.
Je ne vois pas vraiment ce qui cloche, je m'en remet donc à vous.

Merci d'avance pour votre aide.


A voir également:

3 réponses

heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 131
Modifié par heyquem le 1/05/2012 à 00:14
Bonjour,

C'est parce que ton code comporte une erreur.
L'interpréteur n'atteint pas l'instruction
os.system("pause")
il émet un message d'erreur et il ferme illico la console.
J'ai pris l'écran en vidéo pendant l'exécution parce que l'affichage du message est trop rapide. Il y a effectivement un message qui signale une erreur de syntaxe dans la ligne
for n<10


Dans un tel cas, tu devrais ouvrir le code avec IDLE: clic-droit sur le fichier et cliquer sur "Edit with IDLE". Même en l'bsence d'instruction raw_input() ou os.system('pause'), la fenêtre de résultat ne ferme pas comme la console.
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
1 mai 2012 à 10:17
Ave Python2 ceci devrait convenir:
johand@osiris: ~/src/CCM/python $ cat dice.py
import random

random.seed()
for run in range(1,11):
    print ('Lancer %d\t%d') %(run ,random.randint(1,6))
print("Press enter to end.")
raw_input()
johand@osiris: ~/src/CCM/python $ python2.7 dice.py 
Lancer 1	6
Lancer 2	3
Lancer 3	2
Lancer 4	3
Lancer 5	3
Lancer 6	2
Lancer 7	4
Lancer 8	6
Lancer 9	1
Lancer 10	2
Press enter to end.

0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
1 mai 2012 à 18:59
Si tu veux faire du C en Python:
import random

run=1
while run <= 10 :
    print ('Lancer %d\t%d') %(run ,random.randint(1,6))
    run = run + 1
print("Press enter to end.")
raw_input()


BAD PRACTICE..
0
Utilisateur anonyme
1 mai 2012 à 17:43
Bonjour et merci à vous 2 de vos réponses mais n'y a t-il pas moyens de le faire avec les boucles while/for car je ne connais vraiment pas les fonctions raw_input() et random.seed().
0