Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Python Basics (2015) Logic in Python Try and Except

Kong Cheong
Kong Cheong
633 Points

Python: Try and Except Challenge Task 3/3

Hi, I have tried dozens of times. I went and looked at the discussion and found an answer but it is still returning an error for me. Here is my answer:

def add(x+y):
     try:
          a = float(x)
          b = float(y)
          except ValueError:
              return None
          else:
              return True

If anyone knows what is wrong, feel free to let me know.

Thanks.

[MOD: added ```python markdown formatting -cf]

6 Answers

This is a tricky one.

Here is the code, please analyze it, if you still don't understand comment me.

def add(a, b):
  try:  
    return float(a) + float(b)    
  except ValueError:
    return None
  else:
    return float(a) + float(b)    

-Dan

Chris Freeman
MOD
Chris Freeman
Treehouse Moderator 68,454 Points

After reformatting your code, there are three errors: argument list, indentation of except and else statements, and the return value:

def add(x, y):  # <-- changed from x+y
    try:
        a = float(x)
        b = float(y)
    except ValueError:
        return None
    else:
        return a + b  # <-- fix return value
Kong Cheong
Kong Cheong
633 Points

Hi Dan,

You are awesome, it works. I was very close on the else portion but didn't know about the part under try: return float(a) + float(b). One question tho, what is the "as e" mean?

Thank you. e in this case is an instance of the ValueError object created by the exception. I will be honest, I might went to far writing that. I believe it was not required in the challenge. But answer, with e now you can access information about with this exception happened. Did get me?

I have a question for you, did Kenneth Love mentioned something like that in the lessons? I just haven't watch the new videos.

Chris Freeman
Chris Freeman
Treehouse Moderator 68,454 Points

I believe the first use of "as e" shows up in the Python Testing course.

Kong Cheong
Kong Cheong
633 Points

Kenneth actually didnt mentioned it in this video. the only e i saw was the "3.54334343e17". The video is great and i just find the practice work a little too advance for the video's content. Some were relevant and others are a little out there. I really appreciate you helping me, i was stuck and there is no way to get a hint or a sample in the practice space.

Ok, and remember that learning is a a repeat-and-fail process. When you struggle is when you are actually learning. And I want you to ignore the "as e" (for the moment). I am pretty sure you will get a better introduction to that concept in the videos. Good luck!

Kong Cheong
Kong Cheong
633 Points

Hi Chris,

I actually did this format you shown here and it didnt work which was frustrating. The first mistake was accidental (x,y), I typed it incorrectly. strange but Dan's answer worked instantly which is crazy to me.

Chris Freeman
Chris Freeman
Treehouse Moderator 68,454 Points

Hi Kong,

I have tested my corrected version of your code and it passes Task 3. Perhaps you have indentation errors lingering in your code. You seem to be using 5-space indentation instead of the typical 4-space indentation. Sometimes the grader is picky on the indentation.

Kong Cheong
Kong Cheong
633 Points

Hi Chris,

Gotcha, it was very confusing on why it keep telling me "bummer" but not quite telling me where it went wrong. I appreciate you testing it. At least I know I am not crazy. Thanks Chris.