Problèmes fonctions Python

Résolu/Fermé
L_Archer - 7 sept. 2022 à 20:09
 L_Archer - 11 sept. 2022 à 13:46

Bonjour, cela fait 4 soirées que j'essaie de faire fonctionner des programmes Python comprenant des fonctions, en vain.

Voici le plus simple d'entre eux : 

def suite_u():
    u = 5
    for i in range(1,11):
        u = (n/2)+1
    print(u)

Auriez-vous un conseil à m'apporter s'il vous plaît ? Je commence à vraiment désespérer, d'autant plus que je dois les avoir terminés demain soir...

Merci d'avance.


Windows / Chrome 105.0.0.0

12 réponses

Whismeril Messages postés 18938 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 février 2024 922
8 sept. 2022 à 20:28

Ben ça dépend.

Si ta fonction n'est censée renvoyer aucun résultat, il ne faut tout simplement pas de return.

A l'inverse, si elle doit renvoyer un résultat, il faut le mettre après le return.

Avec 

return []

tu renvoies une liste vide.

Donc si ton programme n'attend rien, il s'en moque.

Et s'il attend une liste, mais peut "survivre" au fait qu'elle soit vide, il s'en moque aussi


Quand j'étais petit, la mer Morte n'était que malade.
George Burns

1

D'accord, pour toutes celles que j'ai écrit, cela n'affectait rien, donc je vais les laisser comme ça.

Mais je note que j'en aurais probablement besoin par le futur.

Encore merci de ton aide ! 

0
jordane45 Messages postés 38034 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 février 2024 4 621
7 sept. 2022 à 20:39

Bonjour,

A l'avenir, merci d'utiliser l'icone qui sert à poster du code sur le forum...

Ensuite.. quel est le souci ?  Un message d'erreur ? un comportement qui n'est pas le bon ? ( ça te fait quoi et tu voudrais avoir quoi ? ).. bref.. faut détailler !

Mais..

Si l'indentation de ton code est bien celle qui est dans le message que tu as posté .. ton print ne se trouve pas bien aligné je pense;.


.
Cordialement,
Jordane

0
jordane45 Messages postés 38034 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 février 2024 4 621
7 sept. 2022 à 20:40

Et puis.. tu initialises U avec une valeur (5) que tu écrases ensuite dans ta formule

Le N sort d'on ne sait où ....  et le  i ne semble pas utilisé ..

Bref.. rien ne va dans ce code visiblement

0
L_Archer > jordane45 Messages postés 38034 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 février 2024
7 sept. 2022 à 21:11

Ah... ;-;

0

Merci de me répondre, je n'ai pas encore eu l'occasion d'utiliser ce forum, veuillez donc m'excuser pour ces erreurs, je veillerai à essayer de ne plus les reproduire...

Voilà le code exact : 

def suite_u():
    u = 5
    for i in range(1,11):
        u = (u/2)+1
    print(u)

PS : le "n" était une erreur

Ce programme doit : calculer le 11e terme d'une suite définie par u0 (je ne sais pas comment écrire des indices) et par un+1 = (un/2)+1.

J'aimerai donc savoir si il y a une erreur dedans, ou tout autre problème, car lorsque je lance le programme ("run") rien ne s'affiche.

0
Whismeril Messages postés 18938 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 février 2024 922
7 sept. 2022 à 21:14

Bonsoir.

s'il n'affiche rien, il y a des chances que cela vienne de la partie de code qui appelle la fonction, partie que tu n'as pas montrée


Quand j'étais petit, la mer Morte n'était que malade.
George Burns

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question

C'est à dire ?

0

(Je débute...)

0
Whismeril Messages postés 18938 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 février 2024 922
7 sept. 2022 à 21:17

Sur une calculatrice, il y a la touche Pi, qui affiche la valeur de Pi si on appuie dessus.

C'est le fait d'appuyer dessus qui appelle la fonction qui affiche Pi.

Dans un programme, c'est pareil, dans le "main", le programme principal, tu dois appeler la fonction.


Quand j'étais petit, la mer Morte n'était que malade.
George Burns

0

D'accord, je vois ce vous voulez dire, il s'agit de...

return[]

...?

0

Si c'est cela, je ne sais pas où il faut que je le mette... pourriez vous donc me l'indiquer ?

Ou m'écrire le programme que vous, vous utiliseriez ? Sachant qu'utiliser une fonction est obligatoire.

Merci :p

0
Whismeril Messages postés 18938 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 février 2024 922
Modifié le 7 sept. 2022 à 22:35

Non, return ne sert pas à appeler une fonction.

Return sert quand une fonction doit renvoyer un résultat, à indiquer quel résultat est renvoyé.

Par exemple, Range est une fonction (un peu particulière certes, mais comme tu l'as utilisée ça reste un bon exemple).

Tu lui as donné comme paramètre 1 et 11, donc elle va "retourner" successivement 1, 2, 3, 4, 5, 6, 7, 8, 9 et enfin 10.

Dans son code, il y a un Return associé à une variable qui prend ces valeurs les unes après les autres.


Sachant qu'utiliser une fonction est obligatoire.

Je suppose donc que c'est un exercice issu d'un cours et dans ce cas, je serais très étonné que ce cours ne t'ait pas expliqué ce qu'est un appel à une fonction.

Bien souvent, les terminologies en informatique sont données par analogie, si je veux que tu interagisses avec moi, alors que tu es occupé ailleurs ou "en sommeil", je vais crier ton pseudo, t'appeler quoi.


Pour appeler une fonction, on écrit son nom avec les paramètres entre parenthèses.

Dans ta fonction, tu as appelé la fonction Range, en écrivant son nom.

Dans le programme principal, tu dois appeler ta fonction de la même façon.


Quand j'étais petit, la mer Morte n'était que malade.
George Burns

0

Merci, je crois que j'ai compris, mes programmes fonctionnent enfin !

Il me reste une dernière question : le "return[ ]" est-il obligatoire à la fin d'une fonction ?

Car j'ai remarqué que sa présence ne changeait rien pour afficher les résultats, pour tous les programmes que j'ai écrit.

0
yg_be Messages postés 22470 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2024 1 440
8 sept. 2022 à 20:26

bonjour,

à ton choix, la fonction peut retourner un résultat, via return(), ou pas.

0
Whismeril Messages postés 18938 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 février 2024 922
8 sept. 2022 à 21:13

De rien.

Tu peux marquer le sujet résolu, si ça te convient.


Quand j'étais petit, la mer Morte n'était que malade.
George Burns

0

Sujet résolu

0