Problème codage python lycée
Résolu
Arnaud
-
Arnaud -
Arnaud -
Bonjour,
Je dois réaliser un petit programme sur python pour le lycée mais je rencontre un problème. Je dois d'abord crée un programme qui pour un nombre k renvoie k! (sans utiliser la commande factorielle). Ca j ai reussi. Apres je dois réaliser un encadrement de e du type 1+1/1!+1/2!+...+1/n!<e<1+1/1!+1/2!+...+1/n!+1/n!. Cependant lorsque je veux régler le "pas" pour avancer, non pas de 1 comme habituellement, mais ne 1/n! je rencontre un message d'erreur. Existe t'il une commande permettant de régler le pas pour que celui ci ne soit pas un entier ? ou quelles sont mes erreurs dans mon programme.
voici mon programme :
def facto(k):
if k==0:
return 1
else:
F=1
for i in range (2,k+1):
F=F*i
return F
def encadrement(n):
s=1
for w in range(1,n+1):
n=n+1/facto(n+1)
s=s+w
S=s+(1/facto(n))
e=float("inf")
s<e<S
return(s,S)
et le message d'erreur :
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "C:\Users\arch0\OneDrive\dm math 4.py", line 15, in encadrement
n=n+1/facto(n+1)
File "C:\Users\arch0\OneDrive\dm math 4.py", line 7, in facto
for i in range (2,k+1):
TypeError: 'float' object cannot be interpreted as an integer
merci de votre aide,
cordialement,
Je dois réaliser un petit programme sur python pour le lycée mais je rencontre un problème. Je dois d'abord crée un programme qui pour un nombre k renvoie k! (sans utiliser la commande factorielle). Ca j ai reussi. Apres je dois réaliser un encadrement de e du type 1+1/1!+1/2!+...+1/n!<e<1+1/1!+1/2!+...+1/n!+1/n!. Cependant lorsque je veux régler le "pas" pour avancer, non pas de 1 comme habituellement, mais ne 1/n! je rencontre un message d'erreur. Existe t'il une commande permettant de régler le pas pour que celui ci ne soit pas un entier ? ou quelles sont mes erreurs dans mon programme.
voici mon programme :
def facto(k):
if k==0:
return 1
else:
F=1
for i in range (2,k+1):
F=F*i
return F
def encadrement(n):
s=1
for w in range(1,n+1):
n=n+1/facto(n+1)
s=s+w
S=s+(1/facto(n))
e=float("inf")
s<e<S
return(s,S)
et le message d'erreur :
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "C:\Users\arch0\OneDrive\dm math 4.py", line 15, in encadrement
n=n+1/facto(n+1)
File "C:\Users\arch0\OneDrive\dm math 4.py", line 7, in facto
for i in range (2,k+1):
TypeError: 'float' object cannot be interpreted as an integer
merci de votre aide,
cordialement,
Configuration: Windows / Chrome 87.0.4280.88
A voir également:
- Problème codage python lycée
- Codage ascii - Guide
- Citizen code python avis - Accueil - Outils
- Codage binaire - Guide
- Mot secret python pix ✓ - Forum Python
- Programme python ✓ - Forum Python
4 réponses
bonjour,
merci d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
je ne vois rien, dans ton code, qui spécifie le pas de l'indice de boucle.
ceci te sera peut-être utile:
merci d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
je ne vois rien, dans ton code, qui spécifie le pas de l'indice de boucle.
ceci te sera peut-être utile:
import numpy as np for r in np.arange(0, 1, 0.1): print(r)
bonjour,
merci de votre réponse aussi rapide,
je suis debutant sur python donc il se peut que j'ai du mal à comprendre.. Pour moi le pas est spécifié a la ligne 14 n=n+1/facto(n+1) car de ce que j'ai compris cela veut dire qu'on avance de 1/n!..
merci de votre réponse aussi rapide,
def facto(k): if k==0: return 1 else: F=1 for i in range (2,k+1): F=F*i return F def encadrement(n): s=1 for w in range(1,n+1): n=n+1/facto(n+1) s=s+w S=s+(1/facto(n)) e=float("inf") s<e<S return(s,S)
je suis debutant sur python donc il se peut que j'ai du mal à comprendre.. Pour moi le pas est spécifié a la ligne 14 n=n+1/facto(n+1) car de ce que j'ai compris cela veut dire qu'on avance de 1/n!..
c'est en langage python. j'ai utilisé les explications à propos des balises de code dans ma réponse mais visiblement en python le rendu est moins bons qu'avec le votre (numérotations des lignes etc).
Concernant le message d'erreur j'ai compris que la variable ne peut pas être considérée comme un entier. Mais justement ce n'est pas un entier, donc je voudrais savoir comment faire pour que le programme accepte cette variable non entière.
je ne sais pas si je m'exprime clairement donc je vais essayer d'expliciter le but du programme. Par exemple à la fin je dois obtenir 1+1/1!+1/2!+....+1/7!<e<1+1/1!+1/2!+....+1/7!+1/7! si je veux encadrement(7). ..
Concernant le message d'erreur j'ai compris que la variable ne peut pas être considérée comme un entier. Mais justement ce n'est pas un entier, donc je voudrais savoir comment faire pour que le programme accepte cette variable non entière.
je ne sais pas si je m'exprime clairement donc je vais essayer d'expliciter le but du programme. Par exemple à la fin je dois obtenir 1+1/1!+1/2!+....+1/7!<e<1+1/1!+1/2!+....+1/7!+1/7! si je veux encadrement(7). ..