Programme python

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
Christophe13
Membre Naturel
Messages: 28
Enregistré le: 05 Oct 2019, 13:23

Programme python

par Christophe13 » 01 Nov 2023, 21:56

Bonjour, je galère un peu pour le programme python à réaliser, pouvez-vous m'aider s'il vous plaît ?
Voici l'énoncé :

Le groupe de biologistes a choisi une autre option et travaille sur le nombre de grenouilles peuplant l’étang. Au 1er janvier 2020, il y avait été dénombré 250 grenouilles.
Les biologistes estiment que le nombre de grenouilles présentes autour de l’étang peut être modélisé par
la fonction P définie sur l’intervalle [0;+∞[ par P(t) = 1000/(0,4+3,6exp(-0,5t)) où t est le temps, mesuré en années, écoulé depuis le 1er janvier 2018 (cette fonction découle d’un modèle continu, usuel en biologie, le modèle de Verhulst).


Recopier et compléter le programme suivant, pour determiner en quelle année la population de grenouilles aura dépassé pour la première fois les 2000 individus.

def P(t):
return .....

def seuil (P):
t = 0
While ..... :
t = t+1
return t

J'ai donc écrit mais le programme ne marche pas lorsque je le saisis sur python :
from math import exp

def P(t):
return 1000/(0,4+3,6*exp(-0,5*t))

def seuil (P):
t = 0
While P(t) < 2000:
t = t+1
return t

Merci d'avance



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

Re: Programme python

par hdci » 01 Nov 2023, 22:12

Bonjour,

Quel est le message d'erreur que te donne l'exécution ?

(Si tu l'as écrit exactement comme cela, il y a plusieurs erreurs tant de syntaxe de de confusion entre les "nombres à virgule" et la façon de les écrire en "anglais")

PS. Je ne comprends pas bien l'argument dans la fonction "seuil", est-ce pour pouvoir utiliser cette fonction avec différentes fonctions autres que la fonction P définie précédemment ?
Il n'y a que 10 types de personne au monde : ceux qui comprennent le binaire et ceux qui ne le comprennent pas.

Christophe13
Membre Naturel
Messages: 28
Enregistré le: 05 Oct 2019, 13:23

Re: Programme python

par Christophe13 » 01 Nov 2023, 23:55

Je ne sais pas c'est un exercice du livre le programme est écrit comme ça ...
cela m'affiche erreur syntaxe "There's an error in your program:
invalid syntax" et il y a le P derrière while qui apparaît en rouge

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

Re: Programme python

par hdci » 02 Nov 2023, 00:21

Parmi les erreurs possibles :

1) Erreur d'indentation (cela n'apparaît pas clairement sur ce forum, car les "espaces de début de ligne" ne sont pas affichés).
2) Erreur de "point décimal" : le nombre "0,4" par exemple doit s'écrire "0.4" avec un point et non une virgule.
3) Erreur de syntaxe : "while" s'écrit avec une lettre minuscule et non une lettre majuscule (c'est probablement cela le message d'erreur "invalid syntax", c'est celui qui m'est affiché également lorsque j'écris le while avec une majuscule).
Il n'y a que 10 types de personne au monde : ceux qui comprennent le binaire et ceux qui ne le comprennent pas.

Christophe13
Membre Naturel
Messages: 28
Enregistré le: 05 Oct 2019, 13:23

Re: Programme python

par Christophe13 » 02 Nov 2023, 01:57

Les espaces sont bien comme ceux du livre et les virgules sont bien sous forme de point.. J'ai changé la majuscule de While même comme ça, ça ne fonctionne toujours pas ..

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

Re: Programme python

par hdci » 02 Nov 2023, 10:11

Même question qu'auparavant : quel est le message d'erreur ?

Sans cette information il n'est pas possible de résoudre.

Peux-tu faire un copier / coller de ton code ?

Dans mon environnement Edupython cela fonctionne bien.
Il n'y a que 10 types de personne au monde : ceux qui comprennent le binaire et ceux qui ne le comprennent pas.

Christophe13
Membre Naturel
Messages: 28
Enregistré le: 05 Oct 2019, 13:23

Re: Programme python

par Christophe13 » 02 Nov 2023, 16:08

Cette fois-ci aucun message d'erreur apparaît mais il fonctionne toujours pas
Voici ce que je rentre sur la console :

from math import exp

def P(t) :
return 1000/(0.4+3.6*exp(-0.5*t))

def seuil (P) :
t = 0
while P < 2000 :
t=t+1
return t

Lorsque je rentre un chiffre au hasard, comme réponse j'ai le même chiffre ..
Je sais pas pourquoi ça ne fonctionne pas ..,

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

Re: Programme python

par hdci » 02 Nov 2023, 16:43

Je recopie ce que tu viens de me donne en ajoutant des indentations (a priori elles y sont car sinon tu aurais d'autres messages d'erreurs) :

from math import exp

def P(t) :
    return 1000/(0.4+3.6*exp(-0.5*t))

def seuil (P) :
    t = 0
    while P < 2000 :
      t=t+1
    return t

Et-ce bien ce que tu "vois" dans ton éditeur Python ?

Par ailleurs, l'énoncé initial était

Christophe13 a écrit:def seuil (P):
t = 0
While P(t) < 2000:
t = t+1
return t


Or ici tu as écrit P<2000, et non P(t)<2000

Du coup, si tu donnes un argument supérieur à 2000, le programme s'arête en affichant 2000 ; sinon il tourne à l'infini puisque P a pris la valeur que tu as fournie en argument, et n'est jamais modifié.

En fait tel que le programme est écrit (si tant est que tu n'aies pas fait d'erreur de recopie), l'argument P de la fonction seuil n'est pas un nombre, mais une fonction ; l'ambigüité étant que tu as également défini une fonction qui s'appelle P. Mais la fonction "seuil" peut fonctionner avec n'importe quelle autre fonction prenant un argument.
(Je suis tout de même surpris qu'il existe un exercice de niveau "débutant" qui manipule des fonctions dont les arguments sont des fonctions... Qui plus est en donnant comme nom de variable le nom même d'une fonction existante)

Pour simplifier, essayes ceci : (remplacer la fonction "seuil" par celle-ci : sans argument mais en mettant bien P(t)<2000 dans la condition)
def seuil () :
    t = 0
    while P(t) < 2000 :
      t=t+1
    return t
Il n'y a que 10 types de personne au monde : ceux qui comprennent le binaire et ceux qui ne le comprennent pas.

Christophe13
Membre Naturel
Messages: 28
Enregistré le: 05 Oct 2019, 13:23

Re: Programme python

par Christophe13 » 02 Nov 2023, 17:04

Oui .. En plus, c'est un dm ..

En faisant ce que vous avez dit , ce message apparaît mais rien ne se passe " ** Process exited - Return Code: 0 **
Press Enter to exit terminal"

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

Re: Programme python

par hdci » 02 Nov 2023, 18:03

Comme tu n'es apparemment pas sous Edupython, je ne m'y connais pas assez.

en ayant tapé exactement ceci (avec les bonnes indentations) dans l'éditeur

from math import exp
def P(t):
    return 1000/(0.4+3.6*exp(-0.5*t))

def seuil ():
    t = 0
    while P(t) < 2000 :
      t = t+1
    return t


Puis après avoir évalué l'éditeur, lorsque je tape seuil() dans la console, il me répond 8 (ce qui est normal puisque P(7) = 1965,7 et quelques et P(8)=2146,2 et quelques).
Il n'y a que 10 types de personne au monde : ceux qui comprennent le binaire et ceux qui ne le comprennent pas.

Christophe13
Membre Naturel
Messages: 28
Enregistré le: 05 Oct 2019, 13:23

Re: Programme python

par Christophe13 » 02 Nov 2023, 23:45

Merciii beaucoup !!! J'ai enfin compris mon erreur, cela fonctionne enfin !!!

 

Retourner vers ✎✎ Lycée

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 48 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