The Boredless Tourist

Hey So i’m doing the boredless tourist and keep facing the same issue:
UnboundLocalError: local variable ‘attractions’ referenced before assignment

I checked the video, and i’m not sure what i’ve done wrong as i’m doing the same as him.

destinations = ["Paris, France", "Shanghai, China", "Los Angeles, USA", "São Paulo, Brazil", "Cairo, Egypt"]

test_traveler = ['Erin Wilkes', 'Shanghai, China', ['historical site', 'art']]

def get_destination_index(destination):
  destination_index = destinations.index(destination)
  return destination_index

def get_traveler_location(traveler):
  traveler_destination = traveler[1]
  traveler_destination_index= get_destination_index(traveler_destination)
  return traveler_destination_index


attractions = []

for destination in destinations:
  attractions.append([])

def add_attraction(destination,attraction):
  try:
    destination_index = get_destination_index(destination)
    attractions_for_destination = attractions[destination_index].append(attraction)
  except SyntaxError: 
	  return 

add_attraction("Paris, France", ["the Louvre", ["art", "museum"]])
add_attraction("Paris, France", ["Arc de Triomphe", ["historical site", "monument"]])
add_attraction("Shanghai, China", ["Yu Garden", ["garden", "historcical site"]])
add_attraction("Shanghai, China", ["Yuz Museum", ["art", "museum"]])
add_attraction("Shanghai, China", ["Oriental Pearl Tower", ["skyscraper", "viewing deck"]])
add_attraction("Los Angeles, USA", ["LACMA", ["art", "museum"]])
add_attraction("São Paulo, Brazil", ["São Paulo Zoo", ["zoo"]])
add_attraction("São Paulo, Brazil", ["Pátio do Colégio", ["historical site"]])
add_attraction("Cairo, Egypt", ["Pyramids of Giza", ["monument", "historical site"]])
add_attraction("Cairo, Egypt", ["Egyptian Museum", ["museum"]])


def find_attractions(destination,interests):
  destination_index = get_destination_index(destination)
  attractions_in_city = attractions[destination_index]
  attractions_with_interest =[]

  for attractions in attractions_in_city:
    possible_attraction = attraction
    attraction_tags = attraction[1]

  for interest in interests: 
    if interest in attraction_tags:
      attractions_with_interest.append(possible_attraction)

  return attractions_with_interest

la_arts= find_attractions("Los Angeles, USA",['art'])

print (la_arts)
  for attractions in attractions_in_city:
    possible_attraction = attraction
    attraction_tags = attraction[1]

Where are you drawing the value of “attraction” from?

i was trying to call from the attractions list from earlier

Yes, but you typed

possible_attraction = attraction

and not

possible_attraction = attractions
1 Like

Thanks harrjt, i didn’t realise that! Need to work on those eagel eyes!

1 Like

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.