Utiliser une fonction dans une autre

Apiclo Messages postés 78 Statut Membre -  
 Apiclo -
Bonjour, j'ai un soucis avec la définition de mes fonctions :

Je défini une fonction en lui attribuant des valeurs par défaut.

Ensuite je défini une autre fonction(avec ses valeur par défaut elle aussi) qui fait appel à la fonction précédente

Mon souci est que lors de l'appel de cette dernière fonction, c'est les paramètres par défaut de la première qui sont utilisé, et je trouve pas comment corrigé cela.

Merci de bien vouloir m'aider, je suis débutant dans l'étude de ce langage. Cordialement !

1 réponse

NHenry Messages postés 15479 Statut Modérateur 366
 
Merci de montrer votre code.
0
Apiclo Messages postés 78 Statut Membre
 
Voici mon code, merci de bien vouloir me corriger si la présentation ici, est mal faite


def triangle(taille, couleur="blue", angle=0):
global color
color(couleur)
right(angle)
i=0
while i<3:
forward(taille)
right(120)
i +=1

def etoile6(taille=100, couleur="grey", angle=0):
right(angle)
triangle()
forward(taille/3)
left(60)
forward(taille/3)
right(120)
triangle()


J'ai un peu corrigé en entrant <taille,couleur> dans les paramètres de triangle () dans la deuxième définition. Mais je me demandais comment utiliser une instruction ou une fonction pour que les paramètres de triangle aient des valeurs "globale"
0
NHenry Messages postés 15479 Statut Modérateur 366
 
On évite les variable globales en général.
Mais je ne vois pas comment tu pourrais appeler "triangle" sans paramètre, vu qu'au moins 1 est obligatoire.
0
Apiclo > NHenry Messages postés 15479 Statut Modérateur
 
Au début du programme, je défini

taille = float(input("entrez un nombre")==50)

De cette façon les fonctions triangle et etoile6 sont appelée avec une valeur taille égale à 50 par défaut
0
NHenry Messages postés 15479 Statut Modérateur 366
 
Quand tu commence à jouer sur ce genre de limite, c'est normal que tu ai des effets de bord pervers.
0
Apiclo > NHenry Messages postés 15479 Statut Modérateur
 
Que me conseilles tu alors ?
0