Bonjour et tout d'abord merci d'avance à tous.
Je suis en train d'aider ma cousine mais le programme python s'exécute sans retourner de résultats
Voici le programme donné dans le dm par le professeur:
from random import*
def distance(n):
c=0
for i in range(n)
a=-random()
b=random()
if b-a<0.5 :
c=c+1
f=c/n
return(f)
il s'agit de trouver la probabilité pour que la distance ab soit inférieure à 0.5.Je dois l'exécuter pour n= 100,500,1000 et 2000 .Je l'ai bien tapé dans ma calculatrice mais quand j'exécute rien ça m'écrit juste la première ligne.
Merci beaucoup
salut
il manque les deux points à la ligne "for ..."
que fais-tu pour l'exécuter ? que tapes-tu exactement ?
Cc j'ai oublié en recopiant désolée
J'ai remplacé n par ses valeurs et mis les intervalles à a et b mais rien il faut dire que je débute aussi car mes années lycée je n'ai pas abordé ce sujet...
Je me débrouille d'habitude mais là je bloque
Ben à la place de n je mets 100 puis à a (-1,0) et à b (0,1) voilà.
oui c'est écrit de cette façon dans l'énoncé.
Désolée je n'arrive pas à le mettre...
rien compris ...
je tapes tout le programme mais à la place de n je mets ses valeurs (100,500,1000,2000) puis a=-random(-1,0) et b=random(0,1)
puis j'appuie sur run
ex:
from random import*
def distance(n)
c=0
for i in range(100):
a=-random(-1,0)
b=random(0,1)
if b-a<0,5 :
c=c+1
f=c/100
return(f)
voilà
pour qu'une fonction puisse s'exécuter il faut l'appeler !!!
et ta cousine doit savoir cela ... sinon elle le trouvera dans son livre ...
elle me dit que non justement c'est pour ça que j'ai demandé de l'aide et ainsi j'apprends en même temps comme dans l'énoncé c'est juste mis d'exécuter le programme... c'est chaud quand même pour des secondes lol puis je vais dire la dernière fois il y avait plein d'erreurs dans l'énoncé du dm et des questions demandées!!!
si tu peux m'expliquer ça serait gentil
Bonjour,
évidement que sans cours de base sur ce qu'est la programmation en général et avec Python en particulier c'est quasi impossible à deviner !
on ne programme pas, on "bidouille jusqu'à ce que ça marche "par hasard"
def truc(...): etc
définit la fonction truc et ne fait que la définir et rien d'autre
aucun calcul n'est effectué du tout.
comme le dit carpediem pour qu'un calcul soit effectué avec cet fonction il faut écrire un appel à cette fonction
cela se fait en écrivant truc(valeur) à chaque fois que l'on veut l'exécuter
exemple simple
def truc(n):
return n+1
# invocations, utilisations de cette fonction
print(truc(1)+truc(2))
n= 100
def truc(n):
return n+1
print(truc(10), truc(n))
*** citation intégrale inutile supprimée***
Merci beaucoup je vais reprendre ça au calme ça me rappelle l'enfer du Pascal où je crée des programmes au pif mdrrr
je n'ai jamais appris et comme dans le dm il n'a pas mentionné de modifier ou de compléter le programme je n'ai jamais pensé qu'il manquait un truc. J'espère réussir sinon tant pis je lui demanderais la correction pour comprendre!!
un grand merci
comme je le disais vers la fin
il y a deux choses
"le programme" : il n'y a aucune obligation d'y modifier quoi que ce soit ici
la console
dans laquelle une fois le programme lancé on peut taper des commandes pour appeler la fonction qui a été définie (et seulement définie) par l'exécution du "programme"
*modération* >citation inutile supprimée*
Il faut quand même ajouter " print" pour avoir un résultat ?
non
dans la console quand on tape une expression il affiche directement la valeur de cette expression
tu peux avoir ça (Python installé sur le PC, aspect pouvant varier selon les moutures de Python ou sur un Python en ligne dans un site web)
(arrête de citer, ça alourdit la discussion, pour répondre c'est uniquement "réponse" et jamais le bouton "citer"
il ne sert que, en l'utilisant à bon escient, pour citer des morceaux de messages dans des cas exceptionnels)
Désolée ça arrive quand je réponds sur mon téléphone portable...
Sur ma calculatrice justement j'ai beau mettre dans la console ça me retourne la prémiere ligne from random...
Je vais essayer de nouveau
Là j'ai modifié légèrement et j'ai des résultats
Je vais reprendre tes explications pour mieux comprendre...
C'est pour ma filleule qui est en seconde moi malgré mon master je n'ai pas appris je fais autodidacte
Math en tout cas merci beaucoup j'ai tout compris et merci pour ta patience.
Carpediem merci d'avoir essayé.
Exercice réussi
je n'ai aucune idée de "Python sur calculette" (vu que je n'ai aucune calculette)
en particulier de la distinction sur celles ci entre la définition d'un programme, son exécution et l'exécution directe de commandes.
je préconise fortement d'utiliser un véritable Python
si on ne veut pas l'installer sur PC, il y a des sites WEB pour faire du Python correct en ligne.
par exemple (le premier qui me tombe sous la main)
le programme est défini dans la fenêtre de gauche (ne pas oublier de le lancer !) et la console est dans la fenêtre de droite.
(nota avec n = 100 quand on relance plusieurs fois on obtient des résultats assez différents
>>> distance(100)
0.08
>>> distance(100)
0.15
>>> distance(100)
0.14
>>> distance(100)
0.13
>>> distance(100)
0.17
>>> distance(100)
0.14
pour avoir une valeur plus fiable de la fréquence il faudrait faire plusieurs milliers de tirages et pas seulement 100
>>> distance(10000)
0.1275
>>> distance(10000)
0.1212
>>> distance(10000)
0.1255
>>> distance(10000)
0.1222
>>>
exercice :
compléter le programme par une boucle qui appelle plusieurs fois la fonction et qui calcule l'écart type ...
oui j'avais déjà répondu aux questions dans la partie 1 qui amène à ses conclusions inévitablement.
En tout cas un grand merci j'ai réussi et j'ai retrouvé les mêmes résultats (enfin dans le même ordre de grandeur) car cette nuit j'ai fait un programme pour avoir la valeur de c uniquement et j'avais fait f=c/n manuellement vu qu'il est demandé uniquement de remplir un tableau à doubles entrées n et f
la dernière question est uniquement la probabilité d'avoir la distance ab inférieure à 0.5
nota :
il est très fortement recommandé (voire souvent indispensable) de donner des énoncés complets et mot à mot pour avoir le contexte et ce qu'on demande vraiment et dans quel but
en tout cas pour avoir un " tableau à doubles entrées n et f", faire le calcul manuel de c/n consiste essentiellement à considérer que le programme qu'on a eu tant de mal à faire marcher ne sert en fait à rien !
il suffit (faut) de lancer autant de fois que l'on veut la fonction en ligne de commande pour les valeurs de n voulues et ça donne les (des) valeurs correspondantes de f et c'est tout.
par exemple sans rien modifier du tout au programme et une fois le programme lancé (une fois pour toutes, il ne sert que à définir) de taper en ligne de commande successivement :
distance(10)
distance(100)
distance(1000)
distance(10000) ou du même genre
ça donne directement sans aucun calcul manuel les valeurs à mettre dans le tableau (c'est à ça que ça sert de faire un programme : c'est à lui de faire les calculs, tous les calculs)
> distance(10)
0.1
> distance(100)
0.14
> distance(1000)
0.111
> distance(10000)
0.1208
etc
et même que si on veut faire faire tout ça automatiquement, il "suffit" de faire une boucle (au niveau de base) qui appelle plusieurs fois distance(...) avec des valeurs différentes de n (ici des puissances de 10) :
for k in range (1,6): # (k varie de 1 à 5 !)
print("n =",10**k,", f =",distance(10**k))
mathafou : python sur calculette (et en tout cas sur numworks) est identique (ou presque) au python "classique" (hormis tout ce qui la gestion/écriture, ... de fichiers)
la seule différence est que la "console d'exécution" ne tient qu'en une ligne
l'écriture d'un script ou l'affichage des résultats tient lui sur l'ensemble de l'écran bien sûr...
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :