maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Share Posté(e) le 12 janvier 2020 C'est une activité découverte mais c'est "chaud" quand même! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler Share Posté(e) le 12 janvier 2020 Non, on ne met rien après le def programme(nombre): ni après le return resultat qui renvoie la valeur du calcul. Et si tu veux utiliser x, il faut le définir. Donc le script est def programme(nombre): x=nombre resultat=3*(2*x+7)-6*x return resultat que tu appelles par print(programme(1)) par exemple. Là je m'absente jusque vers 16h30. Si quelqu'un veut prendre le relais, qu'il n'hésite pas. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Share Posté(e) le 12 janvier 2020 d'accord. Merci julesx j'essaie d'avancer en attendant. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Share Posté(e) le 12 janvier 2020 def programme(nombre): x=nombre (je n'ai pas ça dans l'énoncé donc je ne dois pas mettre ça ?) resultat=3*(2*x+7)-6*x (mais du coup ni x ?) return resultat Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler Share Posté(e) le 12 janvier 2020 Finalement, je suis de retour plus tôt que prévu. Ton script ne peut pas fonctionner pour deux raisons * x n'est pas défini, la variable définie dans le def est nombre, donc c'est celle-ci qu'il faut utiliser. Je t'ai dit que, si tu veux utiliser x, il faut le définir au départ par x=nombre. Mais tu peux t'en passer à condition d'utiliser nombre dans le calcul : resultat=3*(2*nombre+7)-6*nombre * print(programme(1)) doit être en dehors du def, sinon, il est considéré comme faisant partie du def et probablement ignoré. Donc le script est def programme(nombre): resultat=3*(2*nombre+7)-6*nombre return resultat print(programme(1)) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Share Posté(e) le 12 janvier 2020 (modifié) Exercice 6 1 def frais(revenu): 2 if revenu<4000: 3 resultat=(2//100)4000* 4 else: 5 (3//100)4000* 6 return ... def f(x) if x<0 A= 2**x+1 else: if x⩾ 0 B= -3x + 1 returne A,B Exercice 5 resultat=3*(2*nombre+7)-6*nombre oui je comprends 2. tester le programme de calcul avec différents nombres décimaux. Que constate-ton ? J'essaie et je poste si le nombre est 1 j'ai ? mais ça ne fonctionne pas Ah oui : * print(programme(1)) doit être en dehors du def, sinon, il est considéré comme faisant partie du def et probablement ignoré. donc effectivement def programme(nombre): resultat=3*(2*nombre+7)-6*nombre return resultat print(programme(1)) je recommence ça ne fonctionne toujours pas Modifié le 12 janvier 2020 par maël/missme Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler Share Posté(e) le 12 janvier 2020 (modifié) Attention, print(programme(1)) doit être en début de ligne, sinon il continue à être considéré comme faisant partir du def. C'est le problème (ou l'avantage) de Python par rapport à d'autre langages. Il n'y a pas de "début"..."fin", l'interpréteur ne considère que les indentations (retraits en début de ligne) et tout ce qui est en retrait fait partie de l'instruction de départ. Pour une nouvelle instruction indépendante, il faut la coller en début de ligne. Modifié le 12 janvier 2020 par julesx Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Share Posté(e) le 12 janvier 2020 d'accord j'essaie ça marche je continue l'exercice et je poste dois-je écrire comme cela ?: programme 1 Python retourne 21 programme 2 Python retourne... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Share Posté(e) le 12 janvier 2020 du coup on constate que quelque soit la valeur de x Python renvoie toujours la même valeur soit 21 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler Share Posté(e) le 12 janvier 2020 Tu as bien écrit programme(1), programme(2) etc... ? du coup on constate que quelque soit la valeur de x Python renvoie toujours la même valeur soit 21 C'est normal, si tu développes la fonction, qu'est-ce que tu obtiens ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Share Posté(e) le 12 janvier 2020 (modifié) oui 3(2x+7) - 6x = 6x + 21 - 6x = 21 Sans vouloir abuser pouvez-vous me dire si la suite est correcte ? Merci 1def frais (revenu): 2 if revenu<4000 3 resultat = 2//100revenu* 4 else : 5 3//100revenu* 6 returne... le 6 je ne sais pas Modifié le 12 janvier 2020 par maël/missme Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler Share Posté(e) le 12 janvier 2020 Pour la fonction définie par morceaux, plusieurs erreurs. def f(x) if x<0 A= 2**x+1 cela voudrait dire 2x+1, c'est A=2*x**2+1 else: if x⩾ 0 inutile, si x n'est pas inférieur à 0, il est supérieur ou égal à 0 B= -3x + 1 non, il faut garder la même variable dans ce type d'instruction et ne pas élider le signe de multiplication A=-3*x+1 return A Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Share Posté(e) le 12 janvier 2020 j'ai corrigé l'exercice avant. je regarde celui-ci Pour la fonction définie par morceaux, Puis-je faire comme ça ? def f(x) if x<0 resultat = 2*x**2+1 else: -3*x+1 return resultat Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler Share Posté(e) le 12 janvier 2020 (modifié) Pour l'autre, tu as écrit 1def frais (revenu): 2 if revenu<4000 3 resultat = 2//100revenu* 4 else : 5 3//100revenu* 6 returne... correction 1 def frais (revenu): 2 if revenu<4000: oubli du double point 3 resultat=2/100*revenu pas de // qui serait la division euclidienne et qui donnerait 0 pour 2//100 et mauvaise place du signe de multiplication 4 else : 5 resultat=3/100*revenu idem et rajout de résultat 6 return resultat rajout de résultat appel par print(frais(2000)) par exemple Modifié le 12 janvier 2020 par julesx Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Share Posté(e) le 12 janvier 2020 return resultat rajout de résultat je ne comprends pas Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler Share Posté(e) le 12 janvier 2020 Attends, on va procéder par ordre. il y a 13 minutes, maël/missme a dit : def f(x) if x<0 resultat = 2*x**2+1 else: -3*x+1 return resultat Il manque des éléments, def f(x): le double point if x<0: idem resultat=2*x**2+1 attention, aucun espace entre les signes mathématiques. else: resultat=-3*x+1 il faut aussi mettre resultat en tête return resultat Finis déjà celui-la. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Share Posté(e) le 12 janvier 2020 D'accord donc je reprends : def f(x): if x<0: resultat=2*x**2+1 else: resultat=-3*x+1 return resultat Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler Share Posté(e) le 12 janvier 2020 Tu as essayé le programme ? Poste les résultats pour voir. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Share Posté(e) le 12 janvier 2020 (modifié) ça ne fonctionne pas Modifié le 12 janvier 2020 par maël/missme Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler Share Posté(e) le 12 janvier 2020 Le def est correct, mais tu as fait des appels par print(f-2)), print(f(-1)), etc...? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Share Posté(e) le 12 janvier 2020 oui je viens de comprendre. Je poste Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler Share Posté(e) le 12 janvier 2020 OK, reprends l'exercice sur les frais (voir plus haut pour mes commentaires). Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Share Posté(e) le 12 janvier 2020 1 def frais (revenu): 2 if revenu < 4000: 3 resultat = 2/100*revenu 4 else: 5 resultat=3/100*revenu 6 return resultat voilà je l'ai récrit return resultat rajout de résultat je ne comprends pas Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Share Posté(e) le 12 janvier 2020 j'ai refait exercice 4 qui ne devait pas être correcte : Exercice 4 Ecrire un programme où l'on saisit deux nombres entiers naturels au départ et où l'on obtient le quotient et le reste de la division euclidienne de ces deux nombres en sortie. affecter à A la valeur int (imput ("A=")) affecter à B la valeur int (imput ("B=")) affecter à C la valeur A//B affecter à D la valeur A%B print C print D Merci Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler Share Posté(e) le 12 janvier 2020 il y a 31 minutes, maël/missme a dit : 1 def frais (revenu): 2 if revenu < 4000: 3 resultat = 2/100*revenu 4 else: 5 resultat=3/100*revenu 6 return resultat C'est bon, mon "rajout de résultat" correspondait à une version précédente où ça manquait. il y a 9 minutes, maël/missme a dit : Exercice 4 Ecrire un programme où l'on saisit deux nombres entiers naturels au départ et où l'on obtient le quotient et le reste de la division euclidienne de ces deux nombres en sortie. affecter à A la valeur int (imput ("A=")) affecter à B la valeur int (imput ("B=")) affecter à C la valeur A//B affecter à D la valeur A%B print C print D Attention, ça, c'est pas du Python ! Il aurait fallu écrire A=int(input("A=")) B=int(input("B=")) C=A%B D=A//B et, comme dit aussi, préciser à quoi correspondent les résultats print ("Quotient ",D) print ("Reste ",C) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.