1
votes

Comment mettre une clé comme argument

je suis en essayant de mettre une clé comme argument de cette fonction, je ne trouve tout simplement pas comment faire ça:

Traceback (most recent call last):
  File "C:/Users/vion1/ele/Audric/TP 9.py", line 25, in <module>
    print(plane_ride_cost("Marseille"))
  File "C:/Users/vion1/ele/Audric/TP 9.py", line 9, in plane_ride_cost
    for key, value in city():
TypeError: 'str' object is not callable

J'ai eu cette réponse:

city = {"Paris": 183, "Lyon": 220, "Marseille": 222 ,"Surfers Paradise": 475}

def plane_ride_cost(city): 
      for key, value in city():
         return value


print(plane_ride_cost("Marseille"))


1 commentaires

Je veux dire merci beaucoup pour toute cette aide rapide, désolé pour cette question de débutant, j'ai cherché BEAUCOUP avant de demander, mais pas de la bonne manière.


3 Réponses :


0
votes

Vous avez remplacé la variable globale city en utilisant le même nom de variable que l'argument de votre fonction. Renommez votre dictionnaire global en quelque chose comme villes et faites-y référence à la place pour éviter la collision et les comportements indésirables.


0 commentaires

0
votes

Pas de parenthèses sur city dans la fonction plane_ride_cost () , car elles sont utilisées pour les fonctions, et une chaîne n'est pas une fonction :)

def plane_ride_cost(city): 
      for key, value in city.items(): #removed parentheses (was city())
         return value


0 commentaires

3
votes
city = {"Paris": 183, "Lyon": 220, "Marseille": 222 ,"Surfers Paradise": 475}

##define the parameter as the key
def plane_ride_cost(cityName): 
      return city[cityName] #return the value from dictionary using the key passed


print(plane_ride_cost("Marseille"))  #returns 222

0 commentaires