maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Posté(e) le 12 janvier 2020 C'est une activité découverte mais c'est "chaud" quand même!
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler 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.
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Posté(e) le 12 janvier 2020 d'accord. Merci julesx j'essaie d'avancer en attendant.
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler 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
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler 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))
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Posté(e) le 12 janvier 2020 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
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler Posté(e) le 12 janvier 2020 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.
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler 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...
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler 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
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler 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 ?
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Posté(e) le 12 janvier 2020 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
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler 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
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler 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
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler Posté(e) le 12 janvier 2020 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
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Posté(e) le 12 janvier 2020 return resultat rajout de résultat je ne comprends pas
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler 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.
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler 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
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler Posté(e) le 12 janvier 2020 Tu as essayé le programme ? Poste les résultats pour voir.
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Posté(e) le 12 janvier 2020 ça ne fonctionne pas
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler Posté(e) le 12 janvier 2020 Le def est correct, mais tu as fait des appels par print(f-2)), print(f(-1)), etc...?
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler Posté(e) le 12 janvier 2020 oui je viens de comprendre. Je poste
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler Posté(e) le 12 janvier 2020 OK, reprends l'exercice sur les frais (voir plus haut pour mes commentaires).
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler 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
maël/missme Posté(e) le 12 janvier 2020 Auteur Signaler 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
E-Bahut julesx Posté(e) le 12 janvier 2020 E-Bahut Signaler 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)
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.