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

Utilisateur anonyme
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


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 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 718
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;.


0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 718
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 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 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
Utilisateur anonyme
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


0

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

Posez votre question

C'est à dire ?

0

(Je débute...)

0
Utilisateur anonyme
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.


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
Utilisateur anonyme
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.


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 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557
8 sept. 2022 à 20:26

bonjour,

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

0
Utilisateur anonyme
8 sept. 2022 à 21:13

De rien.

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


0

Sujet résolu

0