Programme python

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
Lisa110304
Membre Relatif
Messages: 332
Enregistré le: 08 Fév 2021, 22:10

Programme python

par Lisa110304 » 07 Avr 2021, 09:49

Bonjour j’aimerai un peu d’aide pour vérifier mon programme car il ne fonctionne pas bien.



Lisa110304
Membre Relatif
Messages: 332
Enregistré le: 08 Fév 2021, 22:10

Re: Programme python

par Lisa110304 » 07 Avr 2021, 09:51


hdci
Membre Irrationnel
Messages: 1962
Enregistré le: 23 Juin 2018, 17:13

Re: Programme python

par hdci » 07 Avr 2021, 12:12

Bonjour,

tel que le programme est écrit, la boucle "while" tourne indéfiniment.

En effet, la boucle "while" ne comporte que les instructions "n=n+1" et "p=randint(-1,1)".
Or la boucle while s'arête quand l<=0, et la variable l n'est jamais modifiée . Comme elle vaut 10 initialement, elle reste indéfiniment à 10 donc est toujours strictement positive : la condition "l>0" est toujours vraie.

Il y a sûrement un problème d'indentation...

Pour rappel : un bloc d'instructions, en python, commence après un "deux-points" introduit par exemple par une condition, et comporte toutes les lignes qui sont indentées d'au moins le même espace que la première ligne du bloc.
Donc ici le bloc contrôlé par "while" s'arête sur la ligne au-dessus du premier "if" puisque l'indentation du "if" qui est aligné au même niveau que le "while") indique la fin du bloc.
Il n'y a que 10 types de personne au monde : ceux qui comprennent le binaire et ceux qui ne le comprennent pas.

Lisa110304
Membre Relatif
Messages: 332
Enregistré le: 08 Fév 2021, 22:10

Re: Programme python

par Lisa110304 » 07 Avr 2021, 12:25

Je comprends mais comment changer l’indentation?

hdci
Membre Irrationnel
Messages: 1962
Enregistré le: 23 Juin 2018, 17:13

Re: Programme python

par hdci » 07 Avr 2021, 13:05

En mettant le curseur avant le if et en appuyant sur la touche de tabulation (la touche "double flèche" à gauche du clavier).

Sinon on peut laisser faire l'éditeur : lorsqu'on tape "entrée" après un ":", le curseur se place tout seul au bon endroit, et chaque ligne suivante en tapant "entrée" est automatiquement indentée pour être alignée au bon endroit.
Pour terminer l'indentation, on tape "entrée", puis la touche de suppression de caractère qui se trouve à droite de la ligne des chiffres.

enfin, il faut faire preuve d'initiative : vous pouvez essayez plein de choses, cela ne risque pas de casser l'ordinateur. Car ce qui est le plus efficace, c'est ce qu'on trouve soi-même en essayant.
Il n'y a que 10 types de personne au monde : ceux qui comprennent le binaire et ceux qui ne le comprennent pas.

Lisa110304
Membre Relatif
Messages: 332
Enregistré le: 08 Fév 2021, 22:10

Re: Programme python

par Lisa110304 » 07 Avr 2021, 14:47

Je sais comment on fait une indentation mais je n’arrive pas à trouver la bonne ici

Lisa110304
Membre Relatif
Messages: 332
Enregistré le: 08 Fév 2021, 22:10

Re: Programme python

par Lisa110304 » 07 Avr 2021, 14:54


Lisa110304
Membre Relatif
Messages: 332
Enregistré le: 08 Fév 2021, 22:10

Re: Programme python

par Lisa110304 » 07 Avr 2021, 14:54

Et il faut que je complète avec cet algorithme
https://www.casimages.com/i/210407030439194702.jpg.html

Lisa110304
Membre Relatif
Messages: 332
Enregistré le: 08 Fév 2021, 22:10

Re: Programme python

par Lisa110304 » 07 Avr 2021, 22:05

Pouvez vous me donner de l’aide ?

Lisa110304
Membre Relatif
Messages: 332
Enregistré le: 08 Fév 2021, 22:10

Re: Programme python

par Lisa110304 » 08 Avr 2021, 17:02

Personne ne peut m’aider pour essayer de comprendre mes erreurs sur ce programme ?

phyelec
Membre Rationnel
Messages: 948
Enregistré le: 06 Mar 2020, 17:47

Re: Programme python

par phyelec » 08 Avr 2021, 21:11

Bonjour,

dans ton programme vous mettez print (p) mais il n'y a pas de variable qui s'appelle p.
Que doit faire votre programme?

phyelec
Membre Rationnel
Messages: 948
Enregistré le: 06 Mar 2020, 17:47

Re: Programme python

par phyelec » 08 Avr 2021, 21:52

Ce programme fonctionne sur mon PC.

import random
l=10
n=0
L=0
print(l)
while l>0 :
n=n+1
print(n)
p=random.randint(-1, 1)
if p==1 :
l=l-2*p
L=L+2*p
print ('p=1')
print(l,L)
else :
l=l-p
L=L-p
print ('p different de 1')
print(l,L)

print('fini')

phyelec
Membre Rationnel
Messages: 948
Enregistré le: 06 Mar 2020, 17:47

Re: Programme python

par phyelec » 08 Avr 2021, 21:56

Avec indentation,
Code: Tout sélectionner
import random
l=10
n=0
L=0
print(l)
while l>0 :
    n=n+1
    print(n)
    p=random.randint(-1, 1)
    if p==1 :
        l=l-2*p
        L=L+2*p
        print ('p=1')
        print(l,L)
    else :
        l=l-p
        L=L-p
        print ('p different de 1')
        print(l,L)
       
print('fini')

phyelec
Membre Rationnel
Messages: 948
Enregistré le: 06 Mar 2020, 17:47

Re: Programme python

par phyelec » 08 Avr 2021, 22:03

Dans votre premier programme vous aviez mis le if au même niveau que le while, hors il est dans la boucle while donc doit être au même niveau d'indentation que les autres instructions de la boucle while.

 

Retourner vers ✎✎ Lycée

Qui est en ligne

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

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite