Je crée des fonctions personnalisées dans lesquelles un utilisateur peut spécifier une valeur d'argument dans la fonction personnalisée. L'argument sera une clé dans un dictionnaire local pour la fonction personnalisée. La valeur associée à la clé sera un argument pour une fonction interne imbriquée dans la fonction personnalisée.
J'ai joint un exemple simple où la fonction personnalisée est appelée Moyenne. Si je peux obtenir de l'aide sur cet exemple simple, je peux utiliser la logique pour résoudre les exemples les plus complexes avec lesquels je travaille.
# Python program to get average of a list
def Average(lst,rnd = 'three'):
rndtype = {'three':3,'four':4}
return round(sum(lst) / len(lst),rndtype[rnd].values())
lst = [15, 9, 55, 41, 35, 20, 62, 49]
average = Average(lst,'three')
L'erreur que j'obtiens est la suivante:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-10-a7c034956fd8> in <module>
----> 1 average = Average(lst,'three')
<ipython-input-6-b1d1ab69b2a6> in Average(lst, rnd)
2 def Average(lst,rnd = 'three'):
3 rndtype = {'three':3,'four':4}
----> 4 return round(sum(lst) / len(lst),rndtype[rnd].values())
AttributeError: 'int' object has no attribute 'values'
La fonction values () s'applique à un dictionnaire, vous l'appliquez à un élément du dictionnaire. Il vous suffit de supprimer l'appel values () de rndtype [rnd].
def Average(lst,rnd = 'three'):
rndtype = {'three':3,'four':4}
return round(sum(lst) / len(lst),rndtype[rnd])
lst = [15, 9, 55, 41, 35, 20, 62, 49]
average = Average(lst,'three')
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots