[Tutor] Another assert() question

Dick Moores rdm at rcblue.com
Sun Jul 13 00:03:10 CEST 2008


At 01:34 PM 7/12/2008, Kent Johnson wrote:
>On Sat, Jul 12, 2008 at 4:01 PM, Dick Moores <rdm at rcblue.com> wrote:
> > _Python in a NutShell_, p. 138 has a bit on the assert statement which I
> > don't completely understand.
> >
> > It says the syntax is
> >
> > assert condition[, expression]
> >
> > I was hoping to put some sort of explanation of failure in an assert
> > statement. But how to do it?
> >
> > In my code I have
> >
> > assert(len(list(set(colors_used_this_cycle))) ==
> > len(colors_used_this_cycle), "A color has been used twice!")
>
>Leave out the outermost parentheses, assert is a statement, not a 
>function call.

Ah. OK.

>In [2]: assert(False, "Asserted false")
>
>This is "assert condition" where the condition is a tuple with two
>elements, hence true so there is no output.

In [13]: assert(3 < 2 , "qwerty")

In [14]:

I don't understand that logic. Could you unpack it for me?


>In [3]: assert False, "Asserted false"
>---------------------------------------------------------------------------
><type 'exceptions.AssertionError'>        Traceback (most recent call last)
>
>/Users/kent/<ipython console> in <module>()
>
><type 'exceptions.AssertionError'>: Asserted false
>
>This is the form with an optional expression and works the way you want.

In [14]: assert 3 < 2, "Bad math"
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)

E:\Python25\Scripts\<ipython console> in <module>()

AssertionError: Bad math

In [15]:

Yes.

Thanks, Kent.

Dick 



More information about the Tutor mailing list