"Tuple index out of range" Error?
<p>I'm not sure what I'm doing wrong here, does anyone know? I keep getting an error that says "Tuple index out of range." I'm following a tutorial for school and I seem to be doing everything right, however I keep getting this error. Any help would be appreciated! Thank you so much.</p>

<pre><code>animal = input("Enter any LARGE animal: ")
smallAnimal = input("Enter any SMALL animal: ")
weapon = input("Enter a sharp weapon: ")

def createDictionary():

    storyDict = dict()
    storyDict['animal'] = animal
    storyDict['smallAnimal'] = smallAnimal
    storyDict['weapon'] = weapon

return storyDict

def main():

    dictionary = createDictionary()

    animalFormat = """Once upon a time, there was a very, very large {animal}. This {animal} was the meanest, baddest, most gruesome {animal} there     was. And one day, a wild {1} had
    stepped on the {animal}'s foot. At that moment, the {1} knew it had messed up. This made the {animal} angry, so he took a {weapon} and STABBED the 
    {smallAnimal}with it! The {smallAnimal} squirmed and fought to get out, but it was no match for the {animal} with a {weapon}.

    The End."""

    withSubstitutions = animalFormat.format(**dictionary)
    print(withSubstitutions)


main()
</code></pre>

<p>You are mixing up formatting string by keywords and ordered data.</p>

<p>MCVE:</p>

<pre><code>s = "{0}{k}".format(k='something')
</code></pre>

<p>Exception:</p>

<pre><code>Traceback (most recent call last):
  File "&lt;stdin&gt;", line 1, in &lt;module&gt;
IndexError: tuple index out of range
</code></pre>

<p>Since your template contains placeholders for ordered arguments (<code>{1}</code>), you need to pass them to your function:</p>

<pre><code>animalFormat = """Once upon a time, there was a very, very large {animal}. This {animal} was the meanest, baddest, most gruesome {animal} there     was. And one day, a wild {1} had
stepped on the {animal}'s foot. At that moment, the {1} knew it had messed up. This made the {animal} angry, so he took a {weapon} and STABBED the 
{smallAnimal}with it! The {smallAnimal} squirmed and fought to get out, but it was no match for the {animal} with a {weapon}.

The End."""

d = {'animal': 'X', 'smallAnimal': 'Y', 'weapon': 'Z'}
a = ['A', 'B']  # placeholder
animalFormat.format(*a, **d)  # works fine
</code></pre>

python tuples