title: I keep getting a Persistent ValueError: too many values to unpack and i don't understand why
body: <p>I am getting this error and i think i have spent 5 hours on it. Please someone help.
  I eventually want to get the values out of this.
  What is causing there to be many values? Is it my string values or the setup of the dictionary itself.</p>
  
  <pre><code>import ast
  # -*- coding: utf-8 -*-
  class MyMetric:
      def __init__(self, name):
          self.name = name
  
          self.metric_system = {
                           "yotta":  ("Y", str(10^24) ),
                           "zetta":  ("Z", str(10^21)),
                           "exa":    ("E", str(10^18)),
                           "peta":   ("P", str(10^15)),
                           "tera":   ("T", str(10^12)),
                           "giga":   ("G", str(10^9)),
                           "mega":   ("M", str(10^6)),
                           "kilo":   ("k", str(10^3)),
                           "hecto":  ("h", str(10^2)),
                           "deka":   ("da", str(10^1)),
                           "deci":   ("d", str(10^-1)),
                           "centi":  ("c", str(10^-2)),
                           "milli":  ("m",  str(10^-3)),
                           "micro":  ("μ", str(10^-6)),
                           "nano":   ("n", str(10^-9)), 
                           "pico":   ("p", str(10^-12)),
                           "femto":  ("f", str(10^-15)),
                           "atto":   ("a", str(10^-18)),
                           "zepto":  ("z", str(10^-21)),
                           "yocto":  ("y", str(10^-24))   
                           } 
  
      def __str__(self): 
          for key,val in self.metric_system:
  
              self.metric_name = key
              self.metric_symbol = val[0]
              self.metric_value = val[1]
  
              if self.name == self.metric_name:
                  print  ("it is there")
  
  
  
  me =  MyMetric("milli")  
  print(me) 
  </code></pre>