0

I was trying to break down the code to the simplest form before adding more variables and such. I'm stuck.

I wanted it so when I use intertools the first response is the permutations of tricks and the second response is dependent on the trick's landings() and is a permutation of the trick's corresponding landing. I want to add additional variables that further branch off from landings() and so on.

The simplest form should print a list that looks like:

Backflip Complete
Backflip Hyper
180 Round Complete
180 Round Mega
Gumbi Complete

My Code:

from re import I
import pandas as pd
import numpy as np
import itertools
from io import StringIO


backflip = "Backflip"
one80round = "180 Round"
gumbi = "Gumbi"
tricks = [backflip,one80round,gumbi]

complete = "Complete"
hyper = "Hyper"
mega = "Mega"

backflip_landing = [complete,hyper]
one80round_landing = [complete,mega]
gumbi_landing = [complete]

def landings(tricks):
    if tricks == backflip:
        landing = backflip_landing
    elif tricks == one80round:
        landing = one80round_landing
    elif tricks == gumbi:
        landing = gumbi_landing
    return landing

for trik, land in itertools.product(tricks,landings(tricks)):
    trick_and_landing = (trik, land)
    result = (' '.join(trick_and_landing))
    tal = StringIO(result)
    tl = (pd.DataFrame((tal)))
    print(tl)

I get the error:

UnboundLocalError: local variable 'landing' referenced before assignment
Ash Cash
  • 23
  • 4

1 Answers1

0

Add a landing = "" after def landings(tricks): to get rid of the error.

But the if checks in your function are wrong. You check if tricks, which is a list, is equal to backflip, etc. which are all strings. So thats why none of the ifs are true and landing got no value assigned.

That question was also about permutation in python. Maybe it helps.

Gandhi
  • 346
  • 2
  • 9