What is the use of “assert” in Python?











up vote
683
down vote

favorite
191












I have been reading some source code and in several places I have seen the usage of assert.



What does it mean exactly? What is its usage?










share|improve this question




















  • 22




    docs.python.org/release/2.5.2/ref/assert.html
    – Joachim Sauer
    Feb 28 '11 at 13:13






  • 1




    stackoverflow.com/questions/944592/…
    – Russell Dias
    Feb 28 '11 at 13:13















up vote
683
down vote

favorite
191












I have been reading some source code and in several places I have seen the usage of assert.



What does it mean exactly? What is its usage?










share|improve this question




















  • 22




    docs.python.org/release/2.5.2/ref/assert.html
    – Joachim Sauer
    Feb 28 '11 at 13:13






  • 1




    stackoverflow.com/questions/944592/…
    – Russell Dias
    Feb 28 '11 at 13:13













up vote
683
down vote

favorite
191









up vote
683
down vote

favorite
191






191





I have been reading some source code and in several places I have seen the usage of assert.



What does it mean exactly? What is its usage?










share|improve this question















I have been reading some source code and in several places I have seen the usage of assert.



What does it mean exactly? What is its usage?







python assert assertions






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 3 '14 at 3:13









APerson

4,85842745




4,85842745










asked Feb 28 '11 at 13:11









Hossein

12k45109158




12k45109158








  • 22




    docs.python.org/release/2.5.2/ref/assert.html
    – Joachim Sauer
    Feb 28 '11 at 13:13






  • 1




    stackoverflow.com/questions/944592/…
    – Russell Dias
    Feb 28 '11 at 13:13














  • 22




    docs.python.org/release/2.5.2/ref/assert.html
    – Joachim Sauer
    Feb 28 '11 at 13:13






  • 1




    stackoverflow.com/questions/944592/…
    – Russell Dias
    Feb 28 '11 at 13:13








22




22




docs.python.org/release/2.5.2/ref/assert.html
– Joachim Sauer
Feb 28 '11 at 13:13




docs.python.org/release/2.5.2/ref/assert.html
– Joachim Sauer
Feb 28 '11 at 13:13




1




1




stackoverflow.com/questions/944592/…
– Russell Dias
Feb 28 '11 at 13:13




stackoverflow.com/questions/944592/…
– Russell Dias
Feb 28 '11 at 13:13












18 Answers
18






active

oldest

votes

















up vote
764
down vote



accepted










The assert statement exists in almost every programming language. It helps detect problems early in your program, where the cause is clear, rather than later as a side-effect of some other operation.



When you do...



assert condition


... you're telling the program to test that condition, and immediately trigger an error if the condition is false.



In Python, it's roughly equivalent to this:



if not condition:
raise AssertionError()


Try it in the Python shell:



>>> assert True # nothing happens
>>> assert False
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError


Assertions can include an optional message, and you can disable them when running the interpreter.



To print a message if the assertion fails:



assert False, "Oh no! This assertion failed!"


When running python in optimized mode, where __debug__ is False, assert statements will be ignored. Just pass the -O flag:



python -O script.py


See here for the relevant documentation.






share|improve this answer



















  • 66




    Nit: assert is a statement and not a function. And unlike print, in Python 3 it's still a statement.
    – Bob Stein
    Sep 16 '14 at 16:45








  • 56




    syntax for the optional message: assert False, "You have asserted something false." Also see this answer for gotchas.
    – scharfmn
    Jun 18 '15 at 8:07






  • 1




    @Chaine assert means "make sure that *something" is True". So assert a == 3 will make sure that a is equal to 3; if a is not equal to 3 (i.e. a==3 is False) then it will raise an error
    – Ant
    Jul 18 '17 at 14:55






  • 4




    @alpha_989 a) it's shorter and more readable, b) you can disable assert statements when running the interpreter (not so with the manual if). Read the docs for more info :)
    – slezica
    Jan 17 at 15:07








  • 4




    totally cannot get how does this answer get so many up votes, actually others answers also. the question is "What is the use of “assert” in Python? ", so it is asking: when to use, or more exactly: what is the usage scenario of assert, but after reading all answers, i totally got nothing i want!
    – lnshi
    Feb 6 at 3:10


















up vote
332
down vote













Watch out for the parentheses. As has been pointed out above, in Python 3, assert is still a statement, so by analogy with print(..), one may extrapolate the same to assert(..) or raise(..) but you shouldn't.



This is important because:



assert(2 + 2 == 5, "Houston we've got a problem")


won't work, unlike



assert 2 + 2 == 5, "Houston we've got a problem"


The reason the first one will not work is that bool( (False, "Houston we've got a problem") ) evaluates to True.



In the statement assert(False), these are just redundant parentheses around False, which evaluate to their contents. But with assert(False,) the parentheses are now a tuple, and a non-empty tuple evaluates to True in a boolean context.






share|improve this answer



















  • 8




    I came here looking for this exact info about parens and the follow message. Thanks.
    – superbeck
    Jul 11 '16 at 18:41






  • 2




    But assert (2 + 2 = 5), "Houston we've got a problem" should be ok, yes?
    – SherylHohman
    Apr 30 '17 at 22:30








  • 3




    @SherylHohman you can also try to run that yourself and see if it works or not
    – DarkCygnus
    May 8 '17 at 22:30






  • 2




    Don't forget that people often use parentheses for PEP 8-compliant implicit line continuation Also Also don't forget that tuples are not defined by parentheses but by the existence of the comma (tuples have nothing to do with parens except for the purposes of operator precedence).
    – cowbert
    Aug 27 '17 at 20:42






  • 2




    assert (2 + 2 = 5), "Houston we've got a problem" won't work... but it has nothing to do with the assert statement, which is fine. Your condition won't work because it isn't a condition. Missing a second =.
    – n1k31t4
    Oct 20 '17 at 23:50


















up vote
109
down vote













As other answers have noted, assert is similar to throwing an exception if a given condition isn't true. An important difference is that assert statements get ignored if you compile your code with the optimization option. The documentation says that assert expression can better be described as being equivalent to



if __debug__:
if not expression: raise AssertionError


This can be useful if you want to thoroughly test your code, then release an optimized version when you're happy that none of your assertion cases fail - when optimization is on, the __debug__ variable becomes False and the conditions will stop getting evaluated. This feature can also catch you out if you're relying on the asserts and don't realize they've disappeared.






share|improve this answer





















  • Does this mean, that if a certain variable or correct input (according to the contract by which the program is written) could lead to crashing the program, when its run by the user (assuming that -O flag is used when the user runs the program), you should instead use the if Not Error: raise Exception(“ this is a error”)? That way, the program will still show the source of the error, when the user runs it..
    – alpha_989
    Jan 14 at 19:36










  • On the other hand, if you expect that the program could error out because of incorrect logic/implementation of the code (but not due to an input which is according to the contract to the user of the program), you should use the assert statement? The assumption here is that when the program is released to the end user, you are using the -O flag, thus assuming that all the bugs have been removed. Hence, any error or program crash is due to input to the program which is valid as per the contract, but cant be handled by the program. So it should alert the user as such.
    – alpha_989
    Jan 14 at 19:36










  • @alpha_989 that's exactly right. I like to think of assertions as sanity checks that are only to help you as a developer to make sure that what you think is true is actually true while you develop.
    – Christopher Shroba
    Mar 20 at 18:32


















up vote
45
down vote













Others have already given you links to documentation.



You can try the following in a interactive shell:



>>> assert 5 > 2
>>> assert 2 > 5
Traceback (most recent call last):
File "<string>", line 1, in <fragment>
builtins.AssertionError:


The first statement does nothing, while the second raises an exception. This is the first hint: asserts are useful to check conditions that should be true in a given position of your code (usually, the beginning (preconditions) and the end of a function (postconditions)).



Asserts are actually highly tied to programming by contract, which is a very useful engineering practice:



http://en.wikipedia.org/wiki/Design_by_contract.






share|improve this answer























  • So does that mean we can check in code in a situation like assert( 2 > 5 ) and raise error else continue ?
    – user1176501
    Oct 17 '13 at 6:25






  • 18




    Lose the parens, assert is not a function.
    – pillmuncher
    Feb 17 '14 at 15:27






  • 1




    Losing the parens is more important than it seems. See below.
    – Evgeni Sergeev
    Jul 16 '15 at 11:50






  • 6




    Assert actually dates back (long before "contracts") to Turing, when he wrote one of the earliest papers on how programmers might tackle the rather daunting task of creating correct programs. Finding that paper is left as an exercise for the reader, since all programmers can benefit from becoming familiar with his work. :-) turingarchive.org
    – Ron Burk
    Oct 31 '16 at 23:41


















up vote
29
down vote













The goal of an assertion in Python is to inform developers about unrecoverable errors in a program.



Assertions are not intended to signal expected error conditions, like “file not found”, where a user can take corrective action (or just try again).



Another way to look at it is to say that assertions are internal self-checks in your code. They work by declaring some conditions as impossible in your code. If these conditions don’t hold that means there’s a bug in the program.



If your program is bug-free, these conditions will never occur. But if one of them does occur the program will crash with an assertion error telling you exactly which “impossible” condition was triggered. This makes it much easier to track down and fix bugs in your programs.



Here’s a summary from a tutorial on Python’s assertions I wrote:




Python’s assert statement is a debugging aid, not a mechanism for handling run-time errors. The goal of using assertions is to let developers find the likely root cause of a bug more quickly. An assertion error should never be raised unless there’s a bug in your program.







share|improve this answer





















  • Thanks for the article. Very helpful to understand assert statement and when to use this. I am trying to understand a number of terms that you introduced in the article.
    – alpha_989
    Jan 14 at 18:51












  • I thought I would post the comments here so a lot more people might be benefited from the clarifications. Sorry if the questions are too naive.
    – alpha_989
    Jan 14 at 18:51












  • In your blog that you linked, you give an example where you mentioned that ` assert 0 <= price <= product['price']` is correct, but using ` assert user.is_admin(), 'Must have admin privileges to delete'` and assert store.product_exists(product_id), 'Unknown product id' is not a good practice, because if the debug is turned off then the user even if not an admin will be able to delete the product. Do you consider assert user.is_admin() as a unrecoverable error? Why is this not a self-check?
    – alpha_989
    Jan 14 at 18:54










  • If you consider that ‘user.is_admin()` is a user input and hence shouldn’t be used in an assert statement, cant price also be considered a user input? Why do you consider assert user.is_admin() as data validation but not assert price?
    – alpha_989
    Jan 14 at 18:54










  • Note that you are required to sign up before you can read the tutorial @dbader was referring to in his answer. This requirement may not match your personal privacy preferences. Having said that, the answer here is excellent and IMO deserves more upvotes :-)
    – Laryx Decidua
    Apr 5 at 9:40




















up vote
16
down vote













The assert statement has two forms.



The simple form, assert <expression>, is equivalent to



if __​debug__:
if not <expression>: raise AssertionError


The extended form, assert <expression1>, <expression2>, is equivalent to



if __​debug__:
if not <expression1>: raise AssertionError, <expression2>





share|improve this answer






























    up vote
    13
    down vote













    Assertions are a systematic way to check that the internal state of a program is as the programmer expected, with the goal of catching bugs. See the example below.



    >>> number = input('Enter a positive number:')
    Enter a positive number:-1
    >>> assert (number > 0), 'Only positive numbers are allowed!'
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    AssertionError: Only positive numbers are allowed!
    >>>





    share|improve this answer



















    • 1




      Also, assertions can often be used in unit testing programs. stackoverflow.com/questions/1383/what-is-unit-testing
      – panofish
      Oct 2 '14 at 18:29


















    up vote
    11
    down vote













    From docs:



    Assert statements are a convenient way to insert debugging assertions into a program


    Here you can read more: http://docs.python.org/release/2.5.2/ref/assert.html






    share|improve this answer




























      up vote
      6
      down vote













      Here is a simple example, save this in file (let's say b.py)



      def chkassert(num):
      assert type(num) == int


      chkassert('a')


      and the result when $python b.py



      Traceback (most recent call last):
      File "b.py", line 5, in <module>
      chkassert('a')
      File "b.py", line 2, in chkassert
      assert type(num) == int
      AssertionError





      share|improve this answer




























        up vote
        4
        down vote













        if the statement after assert is true then the program continues , but if the statement after assert is false then the program gives an error. Simple as that.



        e.g.:



        assert 1>0   #normal execution
        assert 0>1 #Traceback (most recent call last):
        #File "<pyshell#11>", line 1, in <module>
        #assert 0>1
        #AssertionError





        share|improve this answer






























          up vote
          2
          down vote













          If you ever want to know exactly what a reserved function does in python, type in help(enter_keyword)



          Make sure if you are entering a reserved keyword that you enter it as a string.






          share|improve this answer






























            up vote
            1
            down vote













            Python assert is basically a debugging aid which test condition for internal self-check of your code.
            Assert makes debugging really easy when your code gets into impossible edge cases. Assert check those impossible cases.



            Let's say there is a function to calculate price of item after discount :



            def calculate_discount(price, discount):
            discounted_price = price - [discount*price]
            assert 0 <= discounted_price <= price
            return discounted_price


            here, discounted_price can never be less than 0 and greater than actual price. So, in case the above condition is violated assert raises an Assertion Error, which helps the developer to identify that something impossible had happened.



            Hope it helps :)






            share|improve this answer

















            • 1




              assert is useful in a debugging context, but should not be relied outside of a debugging context.
              – FluxIX
              Sep 27 at 3:25


















            up vote
            0
            down vote













            My short explanation is:





            • assert raises AssertionError if expression is false, otherwise just continues the code, and if there's a comma whatever it is it will be AssertionError: whatever after comma, and to code is like: raise AssertionError(whatever after comma)


            A related tutorial about this:




            https://www.tutorialspoint.com/python/assertions_in_python.htm







            share|improve this answer





















            • The answer provides how to use an assert, but not when to use (or not use) an assert; also noting that an assert can be disabled if __debug__ is False would be useful.
              – FluxIX
              Sep 27 at 3:23


















            up vote
            0
            down vote













            As summarized concisely on the C2 Wiki:




            An assertion is a boolean expression at a specific point in a program which will be true unless there is a bug in the program.




            You can use an assert statement to document your understanding of the code at a particular program point. For example, you can document assumptions or guarantees about inputs (preconditions), program state (invariants), or outputs (postconditions).



            Should your assertion ever fail, this is an alert for you (or your successor) that your understanding of the program was wrong when you wrote it, and that it likely contains a bug.



            For more information, John Regehr has a wonderful blog post on the Use of Assertions, which applies to the Python assert statement as well.






            share|improve this answer




























              up vote
              -1
              down vote













              def getUser(self, id, Email):

              user_key = id and id or Email

              assert user_key


              Can be used to ensure parameters are passed in the function call.






              share|improve this answer



















              • 1




                This will work, but from what I understand, asserts shouldn’t be used for checking user-input, because they can be turned off at run-time. If you really want to enforce or validate user-input use the if not user_key: raise ValueError() Check last 2 paragraphs here: wiki.python.org/moin/UsingAssertionsEffectively
                – alpha_989
                Jan 14 at 17:53










              • assert should not be used for input validation because either the validation will be stripped out if __debug__ is False. Also using assertions for non-debug purposes can cause people to catch the resulting AssertionErrors, which can make debugging more difficult instead of less.
                – FluxIX
                Aug 26 at 0:33


















              up vote
              -2
              down vote













              format :
              assert Expression[,arguments]
              When assert encounters a statement,Python evaluates the expression.If the statement is not true,an exception is raised(assertionError).
              If the assertion fails, Python uses ArgumentExpression as the argument for the AssertionError. AssertionError exceptions can be caught and handled like any other exception using the try-except statement, but if not handled, they will terminate the program and produce a traceback.
              Example:



              def KelvinToFahrenheit(Temperature):    
              assert (Temperature >= 0),"Colder than absolute zero!"
              return ((Temperature-273)*1.8)+32
              print KelvinToFahrenheit(273)
              print int(KelvinToFahrenheit(505.78))
              print KelvinToFahrenheit(-5)


              When the above code is executed, it produces the following result:



              32.0
              451
              Traceback (most recent call last):
              File "test.py", line 9, in <module>
              print KelvinToFahrenheit(-5)
              File "test.py", line 4, in KelvinToFahrenheit
              assert (Temperature >= 0),"Colder than absolute zero!"
              AssertionError: Colder than absolute zero!





              share|improve this answer






























                up vote
                -3
                down vote













                >>>this_is_very_complex_function_result = 9
                >>>c = this_is_very_complex_function_result
                >>>test_us = (c < 4)

                >>> #first we try without assert
                >>>if test_us == True:
                print("YES! I am right!")
                else:
                print("I am Wrong, but the program still RUNS!")

                I am Wrong, but the program still RUNS!


                >>> #now we try with assert
                >>> assert test_us
                Traceback (most recent call last):
                File "<pyshell#52>", line 1, in <module>
                assert test_us
                AssertionError
                >>>





                share|improve this answer




























                  up vote
                  -3
                  down vote













                  Basically the assert keyword meaning is that if the condition is not true then it through an assertionerror else it continue for example in python.



                  code-1



                  a=5

                  b=6

                  assert a==b


                  OUTPUT:



                  assert a==b

                  AssertionError


                  code-2



                  a=5

                  b=5

                  assert a==b


                  OUTPUT:



                  Process finished with exit code 0





                  share|improve this answer



















                  • 1




                    please format your code properly. also, how does this improve on previous answers?
                    – c2huc2hu
                    Jul 26 '17 at 17:31










                  • is there any problem in my explanation?
                    – ujjwal_bansal
                    Aug 2 '17 at 22:18










                  • your explanation doesn't add anything to the existing answers, and the poor grammar makes it hard to read. if you're looking for questions to answer, consider browsing the new questions feed.
                    – c2huc2hu
                    Aug 3 '17 at 1:46












                  • The provided answer does answer how to use an assert, but does not answer when to use (or not use) an assert.
                    – FluxIX
                    Sep 27 at 3:20










                  protected by Vamsi Prabhala Jan 23 at 2:57



                  Thank you for your interest in this question.
                  Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).



                  Would you like to answer one of these unanswered questions instead?














                  18 Answers
                  18






                  active

                  oldest

                  votes








                  18 Answers
                  18






                  active

                  oldest

                  votes









                  active

                  oldest

                  votes






                  active

                  oldest

                  votes








                  up vote
                  764
                  down vote



                  accepted










                  The assert statement exists in almost every programming language. It helps detect problems early in your program, where the cause is clear, rather than later as a side-effect of some other operation.



                  When you do...



                  assert condition


                  ... you're telling the program to test that condition, and immediately trigger an error if the condition is false.



                  In Python, it's roughly equivalent to this:



                  if not condition:
                  raise AssertionError()


                  Try it in the Python shell:



                  >>> assert True # nothing happens
                  >>> assert False
                  Traceback (most recent call last):
                  File "<stdin>", line 1, in <module>
                  AssertionError


                  Assertions can include an optional message, and you can disable them when running the interpreter.



                  To print a message if the assertion fails:



                  assert False, "Oh no! This assertion failed!"


                  When running python in optimized mode, where __debug__ is False, assert statements will be ignored. Just pass the -O flag:



                  python -O script.py


                  See here for the relevant documentation.






                  share|improve this answer



















                  • 66




                    Nit: assert is a statement and not a function. And unlike print, in Python 3 it's still a statement.
                    – Bob Stein
                    Sep 16 '14 at 16:45








                  • 56




                    syntax for the optional message: assert False, "You have asserted something false." Also see this answer for gotchas.
                    – scharfmn
                    Jun 18 '15 at 8:07






                  • 1




                    @Chaine assert means "make sure that *something" is True". So assert a == 3 will make sure that a is equal to 3; if a is not equal to 3 (i.e. a==3 is False) then it will raise an error
                    – Ant
                    Jul 18 '17 at 14:55






                  • 4




                    @alpha_989 a) it's shorter and more readable, b) you can disable assert statements when running the interpreter (not so with the manual if). Read the docs for more info :)
                    – slezica
                    Jan 17 at 15:07








                  • 4




                    totally cannot get how does this answer get so many up votes, actually others answers also. the question is "What is the use of “assert” in Python? ", so it is asking: when to use, or more exactly: what is the usage scenario of assert, but after reading all answers, i totally got nothing i want!
                    – lnshi
                    Feb 6 at 3:10















                  up vote
                  764
                  down vote



                  accepted










                  The assert statement exists in almost every programming language. It helps detect problems early in your program, where the cause is clear, rather than later as a side-effect of some other operation.



                  When you do...



                  assert condition


                  ... you're telling the program to test that condition, and immediately trigger an error if the condition is false.



                  In Python, it's roughly equivalent to this:



                  if not condition:
                  raise AssertionError()


                  Try it in the Python shell:



                  >>> assert True # nothing happens
                  >>> assert False
                  Traceback (most recent call last):
                  File "<stdin>", line 1, in <module>
                  AssertionError


                  Assertions can include an optional message, and you can disable them when running the interpreter.



                  To print a message if the assertion fails:



                  assert False, "Oh no! This assertion failed!"


                  When running python in optimized mode, where __debug__ is False, assert statements will be ignored. Just pass the -O flag:



                  python -O script.py


                  See here for the relevant documentation.






                  share|improve this answer



















                  • 66




                    Nit: assert is a statement and not a function. And unlike print, in Python 3 it's still a statement.
                    – Bob Stein
                    Sep 16 '14 at 16:45








                  • 56




                    syntax for the optional message: assert False, "You have asserted something false." Also see this answer for gotchas.
                    – scharfmn
                    Jun 18 '15 at 8:07






                  • 1




                    @Chaine assert means "make sure that *something" is True". So assert a == 3 will make sure that a is equal to 3; if a is not equal to 3 (i.e. a==3 is False) then it will raise an error
                    – Ant
                    Jul 18 '17 at 14:55






                  • 4




                    @alpha_989 a) it's shorter and more readable, b) you can disable assert statements when running the interpreter (not so with the manual if). Read the docs for more info :)
                    – slezica
                    Jan 17 at 15:07








                  • 4




                    totally cannot get how does this answer get so many up votes, actually others answers also. the question is "What is the use of “assert” in Python? ", so it is asking: when to use, or more exactly: what is the usage scenario of assert, but after reading all answers, i totally got nothing i want!
                    – lnshi
                    Feb 6 at 3:10













                  up vote
                  764
                  down vote



                  accepted







                  up vote
                  764
                  down vote



                  accepted






                  The assert statement exists in almost every programming language. It helps detect problems early in your program, where the cause is clear, rather than later as a side-effect of some other operation.



                  When you do...



                  assert condition


                  ... you're telling the program to test that condition, and immediately trigger an error if the condition is false.



                  In Python, it's roughly equivalent to this:



                  if not condition:
                  raise AssertionError()


                  Try it in the Python shell:



                  >>> assert True # nothing happens
                  >>> assert False
                  Traceback (most recent call last):
                  File "<stdin>", line 1, in <module>
                  AssertionError


                  Assertions can include an optional message, and you can disable them when running the interpreter.



                  To print a message if the assertion fails:



                  assert False, "Oh no! This assertion failed!"


                  When running python in optimized mode, where __debug__ is False, assert statements will be ignored. Just pass the -O flag:



                  python -O script.py


                  See here for the relevant documentation.






                  share|improve this answer














                  The assert statement exists in almost every programming language. It helps detect problems early in your program, where the cause is clear, rather than later as a side-effect of some other operation.



                  When you do...



                  assert condition


                  ... you're telling the program to test that condition, and immediately trigger an error if the condition is false.



                  In Python, it's roughly equivalent to this:



                  if not condition:
                  raise AssertionError()


                  Try it in the Python shell:



                  >>> assert True # nothing happens
                  >>> assert False
                  Traceback (most recent call last):
                  File "<stdin>", line 1, in <module>
                  AssertionError


                  Assertions can include an optional message, and you can disable them when running the interpreter.



                  To print a message if the assertion fails:



                  assert False, "Oh no! This assertion failed!"


                  When running python in optimized mode, where __debug__ is False, assert statements will be ignored. Just pass the -O flag:



                  python -O script.py


                  See here for the relevant documentation.







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Oct 18 at 4:45

























                  answered Feb 28 '11 at 13:15









                  slezica

                  42.7k1674133




                  42.7k1674133








                  • 66




                    Nit: assert is a statement and not a function. And unlike print, in Python 3 it's still a statement.
                    – Bob Stein
                    Sep 16 '14 at 16:45








                  • 56




                    syntax for the optional message: assert False, "You have asserted something false." Also see this answer for gotchas.
                    – scharfmn
                    Jun 18 '15 at 8:07






                  • 1




                    @Chaine assert means "make sure that *something" is True". So assert a == 3 will make sure that a is equal to 3; if a is not equal to 3 (i.e. a==3 is False) then it will raise an error
                    – Ant
                    Jul 18 '17 at 14:55






                  • 4




                    @alpha_989 a) it's shorter and more readable, b) you can disable assert statements when running the interpreter (not so with the manual if). Read the docs for more info :)
                    – slezica
                    Jan 17 at 15:07








                  • 4




                    totally cannot get how does this answer get so many up votes, actually others answers also. the question is "What is the use of “assert” in Python? ", so it is asking: when to use, or more exactly: what is the usage scenario of assert, but after reading all answers, i totally got nothing i want!
                    – lnshi
                    Feb 6 at 3:10














                  • 66




                    Nit: assert is a statement and not a function. And unlike print, in Python 3 it's still a statement.
                    – Bob Stein
                    Sep 16 '14 at 16:45








                  • 56




                    syntax for the optional message: assert False, "You have asserted something false." Also see this answer for gotchas.
                    – scharfmn
                    Jun 18 '15 at 8:07






                  • 1




                    @Chaine assert means "make sure that *something" is True". So assert a == 3 will make sure that a is equal to 3; if a is not equal to 3 (i.e. a==3 is False) then it will raise an error
                    – Ant
                    Jul 18 '17 at 14:55






                  • 4




                    @alpha_989 a) it's shorter and more readable, b) you can disable assert statements when running the interpreter (not so with the manual if). Read the docs for more info :)
                    – slezica
                    Jan 17 at 15:07








                  • 4




                    totally cannot get how does this answer get so many up votes, actually others answers also. the question is "What is the use of “assert” in Python? ", so it is asking: when to use, or more exactly: what is the usage scenario of assert, but after reading all answers, i totally got nothing i want!
                    – lnshi
                    Feb 6 at 3:10








                  66




                  66




                  Nit: assert is a statement and not a function. And unlike print, in Python 3 it's still a statement.
                  – Bob Stein
                  Sep 16 '14 at 16:45






                  Nit: assert is a statement and not a function. And unlike print, in Python 3 it's still a statement.
                  – Bob Stein
                  Sep 16 '14 at 16:45






                  56




                  56




                  syntax for the optional message: assert False, "You have asserted something false." Also see this answer for gotchas.
                  – scharfmn
                  Jun 18 '15 at 8:07




                  syntax for the optional message: assert False, "You have asserted something false." Also see this answer for gotchas.
                  – scharfmn
                  Jun 18 '15 at 8:07




                  1




                  1




                  @Chaine assert means "make sure that *something" is True". So assert a == 3 will make sure that a is equal to 3; if a is not equal to 3 (i.e. a==3 is False) then it will raise an error
                  – Ant
                  Jul 18 '17 at 14:55




                  @Chaine assert means "make sure that *something" is True". So assert a == 3 will make sure that a is equal to 3; if a is not equal to 3 (i.e. a==3 is False) then it will raise an error
                  – Ant
                  Jul 18 '17 at 14:55




                  4




                  4




                  @alpha_989 a) it's shorter and more readable, b) you can disable assert statements when running the interpreter (not so with the manual if). Read the docs for more info :)
                  – slezica
                  Jan 17 at 15:07






                  @alpha_989 a) it's shorter and more readable, b) you can disable assert statements when running the interpreter (not so with the manual if). Read the docs for more info :)
                  – slezica
                  Jan 17 at 15:07






                  4




                  4




                  totally cannot get how does this answer get so many up votes, actually others answers also. the question is "What is the use of “assert” in Python? ", so it is asking: when to use, or more exactly: what is the usage scenario of assert, but after reading all answers, i totally got nothing i want!
                  – lnshi
                  Feb 6 at 3:10




                  totally cannot get how does this answer get so many up votes, actually others answers also. the question is "What is the use of “assert” in Python? ", so it is asking: when to use, or more exactly: what is the usage scenario of assert, but after reading all answers, i totally got nothing i want!
                  – lnshi
                  Feb 6 at 3:10












                  up vote
                  332
                  down vote













                  Watch out for the parentheses. As has been pointed out above, in Python 3, assert is still a statement, so by analogy with print(..), one may extrapolate the same to assert(..) or raise(..) but you shouldn't.



                  This is important because:



                  assert(2 + 2 == 5, "Houston we've got a problem")


                  won't work, unlike



                  assert 2 + 2 == 5, "Houston we've got a problem"


                  The reason the first one will not work is that bool( (False, "Houston we've got a problem") ) evaluates to True.



                  In the statement assert(False), these are just redundant parentheses around False, which evaluate to their contents. But with assert(False,) the parentheses are now a tuple, and a non-empty tuple evaluates to True in a boolean context.






                  share|improve this answer



















                  • 8




                    I came here looking for this exact info about parens and the follow message. Thanks.
                    – superbeck
                    Jul 11 '16 at 18:41






                  • 2




                    But assert (2 + 2 = 5), "Houston we've got a problem" should be ok, yes?
                    – SherylHohman
                    Apr 30 '17 at 22:30








                  • 3




                    @SherylHohman you can also try to run that yourself and see if it works or not
                    – DarkCygnus
                    May 8 '17 at 22:30






                  • 2




                    Don't forget that people often use parentheses for PEP 8-compliant implicit line continuation Also Also don't forget that tuples are not defined by parentheses but by the existence of the comma (tuples have nothing to do with parens except for the purposes of operator precedence).
                    – cowbert
                    Aug 27 '17 at 20:42






                  • 2




                    assert (2 + 2 = 5), "Houston we've got a problem" won't work... but it has nothing to do with the assert statement, which is fine. Your condition won't work because it isn't a condition. Missing a second =.
                    – n1k31t4
                    Oct 20 '17 at 23:50















                  up vote
                  332
                  down vote













                  Watch out for the parentheses. As has been pointed out above, in Python 3, assert is still a statement, so by analogy with print(..), one may extrapolate the same to assert(..) or raise(..) but you shouldn't.



                  This is important because:



                  assert(2 + 2 == 5, "Houston we've got a problem")


                  won't work, unlike



                  assert 2 + 2 == 5, "Houston we've got a problem"


                  The reason the first one will not work is that bool( (False, "Houston we've got a problem") ) evaluates to True.



                  In the statement assert(False), these are just redundant parentheses around False, which evaluate to their contents. But with assert(False,) the parentheses are now a tuple, and a non-empty tuple evaluates to True in a boolean context.






                  share|improve this answer



















                  • 8




                    I came here looking for this exact info about parens and the follow message. Thanks.
                    – superbeck
                    Jul 11 '16 at 18:41






                  • 2




                    But assert (2 + 2 = 5), "Houston we've got a problem" should be ok, yes?
                    – SherylHohman
                    Apr 30 '17 at 22:30








                  • 3




                    @SherylHohman you can also try to run that yourself and see if it works or not
                    – DarkCygnus
                    May 8 '17 at 22:30






                  • 2




                    Don't forget that people often use parentheses for PEP 8-compliant implicit line continuation Also Also don't forget that tuples are not defined by parentheses but by the existence of the comma (tuples have nothing to do with parens except for the purposes of operator precedence).
                    – cowbert
                    Aug 27 '17 at 20:42






                  • 2




                    assert (2 + 2 = 5), "Houston we've got a problem" won't work... but it has nothing to do with the assert statement, which is fine. Your condition won't work because it isn't a condition. Missing a second =.
                    – n1k31t4
                    Oct 20 '17 at 23:50













                  up vote
                  332
                  down vote










                  up vote
                  332
                  down vote









                  Watch out for the parentheses. As has been pointed out above, in Python 3, assert is still a statement, so by analogy with print(..), one may extrapolate the same to assert(..) or raise(..) but you shouldn't.



                  This is important because:



                  assert(2 + 2 == 5, "Houston we've got a problem")


                  won't work, unlike



                  assert 2 + 2 == 5, "Houston we've got a problem"


                  The reason the first one will not work is that bool( (False, "Houston we've got a problem") ) evaluates to True.



                  In the statement assert(False), these are just redundant parentheses around False, which evaluate to their contents. But with assert(False,) the parentheses are now a tuple, and a non-empty tuple evaluates to True in a boolean context.






                  share|improve this answer














                  Watch out for the parentheses. As has been pointed out above, in Python 3, assert is still a statement, so by analogy with print(..), one may extrapolate the same to assert(..) or raise(..) but you shouldn't.



                  This is important because:



                  assert(2 + 2 == 5, "Houston we've got a problem")


                  won't work, unlike



                  assert 2 + 2 == 5, "Houston we've got a problem"


                  The reason the first one will not work is that bool( (False, "Houston we've got a problem") ) evaluates to True.



                  In the statement assert(False), these are just redundant parentheses around False, which evaluate to their contents. But with assert(False,) the parentheses are now a tuple, and a non-empty tuple evaluates to True in a boolean context.







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Apr 6 '16 at 19:31









                  kmario23

                  15.4k45368




                  15.4k45368










                  answered Jun 11 '15 at 2:15









                  Evgeni Sergeev

                  11.7k137386




                  11.7k137386








                  • 8




                    I came here looking for this exact info about parens and the follow message. Thanks.
                    – superbeck
                    Jul 11 '16 at 18:41






                  • 2




                    But assert (2 + 2 = 5), "Houston we've got a problem" should be ok, yes?
                    – SherylHohman
                    Apr 30 '17 at 22:30








                  • 3




                    @SherylHohman you can also try to run that yourself and see if it works or not
                    – DarkCygnus
                    May 8 '17 at 22:30






                  • 2




                    Don't forget that people often use parentheses for PEP 8-compliant implicit line continuation Also Also don't forget that tuples are not defined by parentheses but by the existence of the comma (tuples have nothing to do with parens except for the purposes of operator precedence).
                    – cowbert
                    Aug 27 '17 at 20:42






                  • 2




                    assert (2 + 2 = 5), "Houston we've got a problem" won't work... but it has nothing to do with the assert statement, which is fine. Your condition won't work because it isn't a condition. Missing a second =.
                    – n1k31t4
                    Oct 20 '17 at 23:50














                  • 8




                    I came here looking for this exact info about parens and the follow message. Thanks.
                    – superbeck
                    Jul 11 '16 at 18:41






                  • 2




                    But assert (2 + 2 = 5), "Houston we've got a problem" should be ok, yes?
                    – SherylHohman
                    Apr 30 '17 at 22:30








                  • 3




                    @SherylHohman you can also try to run that yourself and see if it works or not
                    – DarkCygnus
                    May 8 '17 at 22:30






                  • 2




                    Don't forget that people often use parentheses for PEP 8-compliant implicit line continuation Also Also don't forget that tuples are not defined by parentheses but by the existence of the comma (tuples have nothing to do with parens except for the purposes of operator precedence).
                    – cowbert
                    Aug 27 '17 at 20:42






                  • 2




                    assert (2 + 2 = 5), "Houston we've got a problem" won't work... but it has nothing to do with the assert statement, which is fine. Your condition won't work because it isn't a condition. Missing a second =.
                    – n1k31t4
                    Oct 20 '17 at 23:50








                  8




                  8




                  I came here looking for this exact info about parens and the follow message. Thanks.
                  – superbeck
                  Jul 11 '16 at 18:41




                  I came here looking for this exact info about parens and the follow message. Thanks.
                  – superbeck
                  Jul 11 '16 at 18:41




                  2




                  2




                  But assert (2 + 2 = 5), "Houston we've got a problem" should be ok, yes?
                  – SherylHohman
                  Apr 30 '17 at 22:30






                  But assert (2 + 2 = 5), "Houston we've got a problem" should be ok, yes?
                  – SherylHohman
                  Apr 30 '17 at 22:30






                  3




                  3




                  @SherylHohman you can also try to run that yourself and see if it works or not
                  – DarkCygnus
                  May 8 '17 at 22:30




                  @SherylHohman you can also try to run that yourself and see if it works or not
                  – DarkCygnus
                  May 8 '17 at 22:30




                  2




                  2




                  Don't forget that people often use parentheses for PEP 8-compliant implicit line continuation Also Also don't forget that tuples are not defined by parentheses but by the existence of the comma (tuples have nothing to do with parens except for the purposes of operator precedence).
                  – cowbert
                  Aug 27 '17 at 20:42




                  Don't forget that people often use parentheses for PEP 8-compliant implicit line continuation Also Also don't forget that tuples are not defined by parentheses but by the existence of the comma (tuples have nothing to do with parens except for the purposes of operator precedence).
                  – cowbert
                  Aug 27 '17 at 20:42




                  2




                  2




                  assert (2 + 2 = 5), "Houston we've got a problem" won't work... but it has nothing to do with the assert statement, which is fine. Your condition won't work because it isn't a condition. Missing a second =.
                  – n1k31t4
                  Oct 20 '17 at 23:50




                  assert (2 + 2 = 5), "Houston we've got a problem" won't work... but it has nothing to do with the assert statement, which is fine. Your condition won't work because it isn't a condition. Missing a second =.
                  – n1k31t4
                  Oct 20 '17 at 23:50










                  up vote
                  109
                  down vote













                  As other answers have noted, assert is similar to throwing an exception if a given condition isn't true. An important difference is that assert statements get ignored if you compile your code with the optimization option. The documentation says that assert expression can better be described as being equivalent to



                  if __debug__:
                  if not expression: raise AssertionError


                  This can be useful if you want to thoroughly test your code, then release an optimized version when you're happy that none of your assertion cases fail - when optimization is on, the __debug__ variable becomes False and the conditions will stop getting evaluated. This feature can also catch you out if you're relying on the asserts and don't realize they've disappeared.






                  share|improve this answer





















                  • Does this mean, that if a certain variable or correct input (according to the contract by which the program is written) could lead to crashing the program, when its run by the user (assuming that -O flag is used when the user runs the program), you should instead use the if Not Error: raise Exception(“ this is a error”)? That way, the program will still show the source of the error, when the user runs it..
                    – alpha_989
                    Jan 14 at 19:36










                  • On the other hand, if you expect that the program could error out because of incorrect logic/implementation of the code (but not due to an input which is according to the contract to the user of the program), you should use the assert statement? The assumption here is that when the program is released to the end user, you are using the -O flag, thus assuming that all the bugs have been removed. Hence, any error or program crash is due to input to the program which is valid as per the contract, but cant be handled by the program. So it should alert the user as such.
                    – alpha_989
                    Jan 14 at 19:36










                  • @alpha_989 that's exactly right. I like to think of assertions as sanity checks that are only to help you as a developer to make sure that what you think is true is actually true while you develop.
                    – Christopher Shroba
                    Mar 20 at 18:32















                  up vote
                  109
                  down vote













                  As other answers have noted, assert is similar to throwing an exception if a given condition isn't true. An important difference is that assert statements get ignored if you compile your code with the optimization option. The documentation says that assert expression can better be described as being equivalent to



                  if __debug__:
                  if not expression: raise AssertionError


                  This can be useful if you want to thoroughly test your code, then release an optimized version when you're happy that none of your assertion cases fail - when optimization is on, the __debug__ variable becomes False and the conditions will stop getting evaluated. This feature can also catch you out if you're relying on the asserts and don't realize they've disappeared.






                  share|improve this answer





















                  • Does this mean, that if a certain variable or correct input (according to the contract by which the program is written) could lead to crashing the program, when its run by the user (assuming that -O flag is used when the user runs the program), you should instead use the if Not Error: raise Exception(“ this is a error”)? That way, the program will still show the source of the error, when the user runs it..
                    – alpha_989
                    Jan 14 at 19:36










                  • On the other hand, if you expect that the program could error out because of incorrect logic/implementation of the code (but not due to an input which is according to the contract to the user of the program), you should use the assert statement? The assumption here is that when the program is released to the end user, you are using the -O flag, thus assuming that all the bugs have been removed. Hence, any error or program crash is due to input to the program which is valid as per the contract, but cant be handled by the program. So it should alert the user as such.
                    – alpha_989
                    Jan 14 at 19:36










                  • @alpha_989 that's exactly right. I like to think of assertions as sanity checks that are only to help you as a developer to make sure that what you think is true is actually true while you develop.
                    – Christopher Shroba
                    Mar 20 at 18:32













                  up vote
                  109
                  down vote










                  up vote
                  109
                  down vote









                  As other answers have noted, assert is similar to throwing an exception if a given condition isn't true. An important difference is that assert statements get ignored if you compile your code with the optimization option. The documentation says that assert expression can better be described as being equivalent to



                  if __debug__:
                  if not expression: raise AssertionError


                  This can be useful if you want to thoroughly test your code, then release an optimized version when you're happy that none of your assertion cases fail - when optimization is on, the __debug__ variable becomes False and the conditions will stop getting evaluated. This feature can also catch you out if you're relying on the asserts and don't realize they've disappeared.






                  share|improve this answer












                  As other answers have noted, assert is similar to throwing an exception if a given condition isn't true. An important difference is that assert statements get ignored if you compile your code with the optimization option. The documentation says that assert expression can better be described as being equivalent to



                  if __debug__:
                  if not expression: raise AssertionError


                  This can be useful if you want to thoroughly test your code, then release an optimized version when you're happy that none of your assertion cases fail - when optimization is on, the __debug__ variable becomes False and the conditions will stop getting evaluated. This feature can also catch you out if you're relying on the asserts and don't realize they've disappeared.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Feb 28 '11 at 14:10









                  Neil Vass

                  3,28821622




                  3,28821622












                  • Does this mean, that if a certain variable or correct input (according to the contract by which the program is written) could lead to crashing the program, when its run by the user (assuming that -O flag is used when the user runs the program), you should instead use the if Not Error: raise Exception(“ this is a error”)? That way, the program will still show the source of the error, when the user runs it..
                    – alpha_989
                    Jan 14 at 19:36










                  • On the other hand, if you expect that the program could error out because of incorrect logic/implementation of the code (but not due to an input which is according to the contract to the user of the program), you should use the assert statement? The assumption here is that when the program is released to the end user, you are using the -O flag, thus assuming that all the bugs have been removed. Hence, any error or program crash is due to input to the program which is valid as per the contract, but cant be handled by the program. So it should alert the user as such.
                    – alpha_989
                    Jan 14 at 19:36










                  • @alpha_989 that's exactly right. I like to think of assertions as sanity checks that are only to help you as a developer to make sure that what you think is true is actually true while you develop.
                    – Christopher Shroba
                    Mar 20 at 18:32


















                  • Does this mean, that if a certain variable or correct input (according to the contract by which the program is written) could lead to crashing the program, when its run by the user (assuming that -O flag is used when the user runs the program), you should instead use the if Not Error: raise Exception(“ this is a error”)? That way, the program will still show the source of the error, when the user runs it..
                    – alpha_989
                    Jan 14 at 19:36










                  • On the other hand, if you expect that the program could error out because of incorrect logic/implementation of the code (but not due to an input which is according to the contract to the user of the program), you should use the assert statement? The assumption here is that when the program is released to the end user, you are using the -O flag, thus assuming that all the bugs have been removed. Hence, any error or program crash is due to input to the program which is valid as per the contract, but cant be handled by the program. So it should alert the user as such.
                    – alpha_989
                    Jan 14 at 19:36










                  • @alpha_989 that's exactly right. I like to think of assertions as sanity checks that are only to help you as a developer to make sure that what you think is true is actually true while you develop.
                    – Christopher Shroba
                    Mar 20 at 18:32
















                  Does this mean, that if a certain variable or correct input (according to the contract by which the program is written) could lead to crashing the program, when its run by the user (assuming that -O flag is used when the user runs the program), you should instead use the if Not Error: raise Exception(“ this is a error”)? That way, the program will still show the source of the error, when the user runs it..
                  – alpha_989
                  Jan 14 at 19:36




                  Does this mean, that if a certain variable or correct input (according to the contract by which the program is written) could lead to crashing the program, when its run by the user (assuming that -O flag is used when the user runs the program), you should instead use the if Not Error: raise Exception(“ this is a error”)? That way, the program will still show the source of the error, when the user runs it..
                  – alpha_989
                  Jan 14 at 19:36












                  On the other hand, if you expect that the program could error out because of incorrect logic/implementation of the code (but not due to an input which is according to the contract to the user of the program), you should use the assert statement? The assumption here is that when the program is released to the end user, you are using the -O flag, thus assuming that all the bugs have been removed. Hence, any error or program crash is due to input to the program which is valid as per the contract, but cant be handled by the program. So it should alert the user as such.
                  – alpha_989
                  Jan 14 at 19:36




                  On the other hand, if you expect that the program could error out because of incorrect logic/implementation of the code (but not due to an input which is according to the contract to the user of the program), you should use the assert statement? The assumption here is that when the program is released to the end user, you are using the -O flag, thus assuming that all the bugs have been removed. Hence, any error or program crash is due to input to the program which is valid as per the contract, but cant be handled by the program. So it should alert the user as such.
                  – alpha_989
                  Jan 14 at 19:36












                  @alpha_989 that's exactly right. I like to think of assertions as sanity checks that are only to help you as a developer to make sure that what you think is true is actually true while you develop.
                  – Christopher Shroba
                  Mar 20 at 18:32




                  @alpha_989 that's exactly right. I like to think of assertions as sanity checks that are only to help you as a developer to make sure that what you think is true is actually true while you develop.
                  – Christopher Shroba
                  Mar 20 at 18:32










                  up vote
                  45
                  down vote













                  Others have already given you links to documentation.



                  You can try the following in a interactive shell:



                  >>> assert 5 > 2
                  >>> assert 2 > 5
                  Traceback (most recent call last):
                  File "<string>", line 1, in <fragment>
                  builtins.AssertionError:


                  The first statement does nothing, while the second raises an exception. This is the first hint: asserts are useful to check conditions that should be true in a given position of your code (usually, the beginning (preconditions) and the end of a function (postconditions)).



                  Asserts are actually highly tied to programming by contract, which is a very useful engineering practice:



                  http://en.wikipedia.org/wiki/Design_by_contract.






                  share|improve this answer























                  • So does that mean we can check in code in a situation like assert( 2 > 5 ) and raise error else continue ?
                    – user1176501
                    Oct 17 '13 at 6:25






                  • 18




                    Lose the parens, assert is not a function.
                    – pillmuncher
                    Feb 17 '14 at 15:27






                  • 1




                    Losing the parens is more important than it seems. See below.
                    – Evgeni Sergeev
                    Jul 16 '15 at 11:50






                  • 6




                    Assert actually dates back (long before "contracts") to Turing, when he wrote one of the earliest papers on how programmers might tackle the rather daunting task of creating correct programs. Finding that paper is left as an exercise for the reader, since all programmers can benefit from becoming familiar with his work. :-) turingarchive.org
                    – Ron Burk
                    Oct 31 '16 at 23:41















                  up vote
                  45
                  down vote













                  Others have already given you links to documentation.



                  You can try the following in a interactive shell:



                  >>> assert 5 > 2
                  >>> assert 2 > 5
                  Traceback (most recent call last):
                  File "<string>", line 1, in <fragment>
                  builtins.AssertionError:


                  The first statement does nothing, while the second raises an exception. This is the first hint: asserts are useful to check conditions that should be true in a given position of your code (usually, the beginning (preconditions) and the end of a function (postconditions)).



                  Asserts are actually highly tied to programming by contract, which is a very useful engineering practice:



                  http://en.wikipedia.org/wiki/Design_by_contract.






                  share|improve this answer























                  • So does that mean we can check in code in a situation like assert( 2 > 5 ) and raise error else continue ?
                    – user1176501
                    Oct 17 '13 at 6:25






                  • 18




                    Lose the parens, assert is not a function.
                    – pillmuncher
                    Feb 17 '14 at 15:27






                  • 1




                    Losing the parens is more important than it seems. See below.
                    – Evgeni Sergeev
                    Jul 16 '15 at 11:50






                  • 6




                    Assert actually dates back (long before "contracts") to Turing, when he wrote one of the earliest papers on how programmers might tackle the rather daunting task of creating correct programs. Finding that paper is left as an exercise for the reader, since all programmers can benefit from becoming familiar with his work. :-) turingarchive.org
                    – Ron Burk
                    Oct 31 '16 at 23:41













                  up vote
                  45
                  down vote










                  up vote
                  45
                  down vote









                  Others have already given you links to documentation.



                  You can try the following in a interactive shell:



                  >>> assert 5 > 2
                  >>> assert 2 > 5
                  Traceback (most recent call last):
                  File "<string>", line 1, in <fragment>
                  builtins.AssertionError:


                  The first statement does nothing, while the second raises an exception. This is the first hint: asserts are useful to check conditions that should be true in a given position of your code (usually, the beginning (preconditions) and the end of a function (postconditions)).



                  Asserts are actually highly tied to programming by contract, which is a very useful engineering practice:



                  http://en.wikipedia.org/wiki/Design_by_contract.






                  share|improve this answer














                  Others have already given you links to documentation.



                  You can try the following in a interactive shell:



                  >>> assert 5 > 2
                  >>> assert 2 > 5
                  Traceback (most recent call last):
                  File "<string>", line 1, in <fragment>
                  builtins.AssertionError:


                  The first statement does nothing, while the second raises an exception. This is the first hint: asserts are useful to check conditions that should be true in a given position of your code (usually, the beginning (preconditions) and the end of a function (postconditions)).



                  Asserts are actually highly tied to programming by contract, which is a very useful engineering practice:



                  http://en.wikipedia.org/wiki/Design_by_contract.







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Sep 19 '17 at 18:53









                  pyrrhic

                  6392722




                  6392722










                  answered Feb 28 '11 at 13:18









                  Baltasarq

                  9,5022245




                  9,5022245












                  • So does that mean we can check in code in a situation like assert( 2 > 5 ) and raise error else continue ?
                    – user1176501
                    Oct 17 '13 at 6:25






                  • 18




                    Lose the parens, assert is not a function.
                    – pillmuncher
                    Feb 17 '14 at 15:27






                  • 1




                    Losing the parens is more important than it seems. See below.
                    – Evgeni Sergeev
                    Jul 16 '15 at 11:50






                  • 6




                    Assert actually dates back (long before "contracts") to Turing, when he wrote one of the earliest papers on how programmers might tackle the rather daunting task of creating correct programs. Finding that paper is left as an exercise for the reader, since all programmers can benefit from becoming familiar with his work. :-) turingarchive.org
                    – Ron Burk
                    Oct 31 '16 at 23:41


















                  • So does that mean we can check in code in a situation like assert( 2 > 5 ) and raise error else continue ?
                    – user1176501
                    Oct 17 '13 at 6:25






                  • 18




                    Lose the parens, assert is not a function.
                    – pillmuncher
                    Feb 17 '14 at 15:27






                  • 1




                    Losing the parens is more important than it seems. See below.
                    – Evgeni Sergeev
                    Jul 16 '15 at 11:50






                  • 6




                    Assert actually dates back (long before "contracts") to Turing, when he wrote one of the earliest papers on how programmers might tackle the rather daunting task of creating correct programs. Finding that paper is left as an exercise for the reader, since all programmers can benefit from becoming familiar with his work. :-) turingarchive.org
                    – Ron Burk
                    Oct 31 '16 at 23:41
















                  So does that mean we can check in code in a situation like assert( 2 > 5 ) and raise error else continue ?
                  – user1176501
                  Oct 17 '13 at 6:25




                  So does that mean we can check in code in a situation like assert( 2 > 5 ) and raise error else continue ?
                  – user1176501
                  Oct 17 '13 at 6:25




                  18




                  18




                  Lose the parens, assert is not a function.
                  – pillmuncher
                  Feb 17 '14 at 15:27




                  Lose the parens, assert is not a function.
                  – pillmuncher
                  Feb 17 '14 at 15:27




                  1




                  1




                  Losing the parens is more important than it seems. See below.
                  – Evgeni Sergeev
                  Jul 16 '15 at 11:50




                  Losing the parens is more important than it seems. See below.
                  – Evgeni Sergeev
                  Jul 16 '15 at 11:50




                  6




                  6




                  Assert actually dates back (long before "contracts") to Turing, when he wrote one of the earliest papers on how programmers might tackle the rather daunting task of creating correct programs. Finding that paper is left as an exercise for the reader, since all programmers can benefit from becoming familiar with his work. :-) turingarchive.org
                  – Ron Burk
                  Oct 31 '16 at 23:41




                  Assert actually dates back (long before "contracts") to Turing, when he wrote one of the earliest papers on how programmers might tackle the rather daunting task of creating correct programs. Finding that paper is left as an exercise for the reader, since all programmers can benefit from becoming familiar with his work. :-) turingarchive.org
                  – Ron Burk
                  Oct 31 '16 at 23:41










                  up vote
                  29
                  down vote













                  The goal of an assertion in Python is to inform developers about unrecoverable errors in a program.



                  Assertions are not intended to signal expected error conditions, like “file not found”, where a user can take corrective action (or just try again).



                  Another way to look at it is to say that assertions are internal self-checks in your code. They work by declaring some conditions as impossible in your code. If these conditions don’t hold that means there’s a bug in the program.



                  If your program is bug-free, these conditions will never occur. But if one of them does occur the program will crash with an assertion error telling you exactly which “impossible” condition was triggered. This makes it much easier to track down and fix bugs in your programs.



                  Here’s a summary from a tutorial on Python’s assertions I wrote:




                  Python’s assert statement is a debugging aid, not a mechanism for handling run-time errors. The goal of using assertions is to let developers find the likely root cause of a bug more quickly. An assertion error should never be raised unless there’s a bug in your program.







                  share|improve this answer





















                  • Thanks for the article. Very helpful to understand assert statement and when to use this. I am trying to understand a number of terms that you introduced in the article.
                    – alpha_989
                    Jan 14 at 18:51












                  • I thought I would post the comments here so a lot more people might be benefited from the clarifications. Sorry if the questions are too naive.
                    – alpha_989
                    Jan 14 at 18:51












                  • In your blog that you linked, you give an example where you mentioned that ` assert 0 <= price <= product['price']` is correct, but using ` assert user.is_admin(), 'Must have admin privileges to delete'` and assert store.product_exists(product_id), 'Unknown product id' is not a good practice, because if the debug is turned off then the user even if not an admin will be able to delete the product. Do you consider assert user.is_admin() as a unrecoverable error? Why is this not a self-check?
                    – alpha_989
                    Jan 14 at 18:54










                  • If you consider that ‘user.is_admin()` is a user input and hence shouldn’t be used in an assert statement, cant price also be considered a user input? Why do you consider assert user.is_admin() as data validation but not assert price?
                    – alpha_989
                    Jan 14 at 18:54










                  • Note that you are required to sign up before you can read the tutorial @dbader was referring to in his answer. This requirement may not match your personal privacy preferences. Having said that, the answer here is excellent and IMO deserves more upvotes :-)
                    – Laryx Decidua
                    Apr 5 at 9:40

















                  up vote
                  29
                  down vote













                  The goal of an assertion in Python is to inform developers about unrecoverable errors in a program.



                  Assertions are not intended to signal expected error conditions, like “file not found”, where a user can take corrective action (or just try again).



                  Another way to look at it is to say that assertions are internal self-checks in your code. They work by declaring some conditions as impossible in your code. If these conditions don’t hold that means there’s a bug in the program.



                  If your program is bug-free, these conditions will never occur. But if one of them does occur the program will crash with an assertion error telling you exactly which “impossible” condition was triggered. This makes it much easier to track down and fix bugs in your programs.



                  Here’s a summary from a tutorial on Python’s assertions I wrote:




                  Python’s assert statement is a debugging aid, not a mechanism for handling run-time errors. The goal of using assertions is to let developers find the likely root cause of a bug more quickly. An assertion error should never be raised unless there’s a bug in your program.







                  share|improve this answer





















                  • Thanks for the article. Very helpful to understand assert statement and when to use this. I am trying to understand a number of terms that you introduced in the article.
                    – alpha_989
                    Jan 14 at 18:51












                  • I thought I would post the comments here so a lot more people might be benefited from the clarifications. Sorry if the questions are too naive.
                    – alpha_989
                    Jan 14 at 18:51












                  • In your blog that you linked, you give an example where you mentioned that ` assert 0 <= price <= product['price']` is correct, but using ` assert user.is_admin(), 'Must have admin privileges to delete'` and assert store.product_exists(product_id), 'Unknown product id' is not a good practice, because if the debug is turned off then the user even if not an admin will be able to delete the product. Do you consider assert user.is_admin() as a unrecoverable error? Why is this not a self-check?
                    – alpha_989
                    Jan 14 at 18:54










                  • If you consider that ‘user.is_admin()` is a user input and hence shouldn’t be used in an assert statement, cant price also be considered a user input? Why do you consider assert user.is_admin() as data validation but not assert price?
                    – alpha_989
                    Jan 14 at 18:54










                  • Note that you are required to sign up before you can read the tutorial @dbader was referring to in his answer. This requirement may not match your personal privacy preferences. Having said that, the answer here is excellent and IMO deserves more upvotes :-)
                    – Laryx Decidua
                    Apr 5 at 9:40















                  up vote
                  29
                  down vote










                  up vote
                  29
                  down vote









                  The goal of an assertion in Python is to inform developers about unrecoverable errors in a program.



                  Assertions are not intended to signal expected error conditions, like “file not found”, where a user can take corrective action (or just try again).



                  Another way to look at it is to say that assertions are internal self-checks in your code. They work by declaring some conditions as impossible in your code. If these conditions don’t hold that means there’s a bug in the program.



                  If your program is bug-free, these conditions will never occur. But if one of them does occur the program will crash with an assertion error telling you exactly which “impossible” condition was triggered. This makes it much easier to track down and fix bugs in your programs.



                  Here’s a summary from a tutorial on Python’s assertions I wrote:




                  Python’s assert statement is a debugging aid, not a mechanism for handling run-time errors. The goal of using assertions is to let developers find the likely root cause of a bug more quickly. An assertion error should never be raised unless there’s a bug in your program.







                  share|improve this answer












                  The goal of an assertion in Python is to inform developers about unrecoverable errors in a program.



                  Assertions are not intended to signal expected error conditions, like “file not found”, where a user can take corrective action (or just try again).



                  Another way to look at it is to say that assertions are internal self-checks in your code. They work by declaring some conditions as impossible in your code. If these conditions don’t hold that means there’s a bug in the program.



                  If your program is bug-free, these conditions will never occur. But if one of them does occur the program will crash with an assertion error telling you exactly which “impossible” condition was triggered. This makes it much easier to track down and fix bugs in your programs.



                  Here’s a summary from a tutorial on Python’s assertions I wrote:




                  Python’s assert statement is a debugging aid, not a mechanism for handling run-time errors. The goal of using assertions is to let developers find the likely root cause of a bug more quickly. An assertion error should never be raised unless there’s a bug in your program.








                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Jan 18 '17 at 14:04









                  dbader

                  4,80711617




                  4,80711617












                  • Thanks for the article. Very helpful to understand assert statement and when to use this. I am trying to understand a number of terms that you introduced in the article.
                    – alpha_989
                    Jan 14 at 18:51












                  • I thought I would post the comments here so a lot more people might be benefited from the clarifications. Sorry if the questions are too naive.
                    – alpha_989
                    Jan 14 at 18:51












                  • In your blog that you linked, you give an example where you mentioned that ` assert 0 <= price <= product['price']` is correct, but using ` assert user.is_admin(), 'Must have admin privileges to delete'` and assert store.product_exists(product_id), 'Unknown product id' is not a good practice, because if the debug is turned off then the user even if not an admin will be able to delete the product. Do you consider assert user.is_admin() as a unrecoverable error? Why is this not a self-check?
                    – alpha_989
                    Jan 14 at 18:54










                  • If you consider that ‘user.is_admin()` is a user input and hence shouldn’t be used in an assert statement, cant price also be considered a user input? Why do you consider assert user.is_admin() as data validation but not assert price?
                    – alpha_989
                    Jan 14 at 18:54










                  • Note that you are required to sign up before you can read the tutorial @dbader was referring to in his answer. This requirement may not match your personal privacy preferences. Having said that, the answer here is excellent and IMO deserves more upvotes :-)
                    – Laryx Decidua
                    Apr 5 at 9:40




















                  • Thanks for the article. Very helpful to understand assert statement and when to use this. I am trying to understand a number of terms that you introduced in the article.
                    – alpha_989
                    Jan 14 at 18:51












                  • I thought I would post the comments here so a lot more people might be benefited from the clarifications. Sorry if the questions are too naive.
                    – alpha_989
                    Jan 14 at 18:51












                  • In your blog that you linked, you give an example where you mentioned that ` assert 0 <= price <= product['price']` is correct, but using ` assert user.is_admin(), 'Must have admin privileges to delete'` and assert store.product_exists(product_id), 'Unknown product id' is not a good practice, because if the debug is turned off then the user even if not an admin will be able to delete the product. Do you consider assert user.is_admin() as a unrecoverable error? Why is this not a self-check?
                    – alpha_989
                    Jan 14 at 18:54










                  • If you consider that ‘user.is_admin()` is a user input and hence shouldn’t be used in an assert statement, cant price also be considered a user input? Why do you consider assert user.is_admin() as data validation but not assert price?
                    – alpha_989
                    Jan 14 at 18:54










                  • Note that you are required to sign up before you can read the tutorial @dbader was referring to in his answer. This requirement may not match your personal privacy preferences. Having said that, the answer here is excellent and IMO deserves more upvotes :-)
                    – Laryx Decidua
                    Apr 5 at 9:40


















                  Thanks for the article. Very helpful to understand assert statement and when to use this. I am trying to understand a number of terms that you introduced in the article.
                  – alpha_989
                  Jan 14 at 18:51






                  Thanks for the article. Very helpful to understand assert statement and when to use this. I am trying to understand a number of terms that you introduced in the article.
                  – alpha_989
                  Jan 14 at 18:51














                  I thought I would post the comments here so a lot more people might be benefited from the clarifications. Sorry if the questions are too naive.
                  – alpha_989
                  Jan 14 at 18:51






                  I thought I would post the comments here so a lot more people might be benefited from the clarifications. Sorry if the questions are too naive.
                  – alpha_989
                  Jan 14 at 18:51














                  In your blog that you linked, you give an example where you mentioned that ` assert 0 <= price <= product['price']` is correct, but using ` assert user.is_admin(), 'Must have admin privileges to delete'` and assert store.product_exists(product_id), 'Unknown product id' is not a good practice, because if the debug is turned off then the user even if not an admin will be able to delete the product. Do you consider assert user.is_admin() as a unrecoverable error? Why is this not a self-check?
                  – alpha_989
                  Jan 14 at 18:54




                  In your blog that you linked, you give an example where you mentioned that ` assert 0 <= price <= product['price']` is correct, but using ` assert user.is_admin(), 'Must have admin privileges to delete'` and assert store.product_exists(product_id), 'Unknown product id' is not a good practice, because if the debug is turned off then the user even if not an admin will be able to delete the product. Do you consider assert user.is_admin() as a unrecoverable error? Why is this not a self-check?
                  – alpha_989
                  Jan 14 at 18:54












                  If you consider that ‘user.is_admin()` is a user input and hence shouldn’t be used in an assert statement, cant price also be considered a user input? Why do you consider assert user.is_admin() as data validation but not assert price?
                  – alpha_989
                  Jan 14 at 18:54




                  If you consider that ‘user.is_admin()` is a user input and hence shouldn’t be used in an assert statement, cant price also be considered a user input? Why do you consider assert user.is_admin() as data validation but not assert price?
                  – alpha_989
                  Jan 14 at 18:54












                  Note that you are required to sign up before you can read the tutorial @dbader was referring to in his answer. This requirement may not match your personal privacy preferences. Having said that, the answer here is excellent and IMO deserves more upvotes :-)
                  – Laryx Decidua
                  Apr 5 at 9:40






                  Note that you are required to sign up before you can read the tutorial @dbader was referring to in his answer. This requirement may not match your personal privacy preferences. Having said that, the answer here is excellent and IMO deserves more upvotes :-)
                  – Laryx Decidua
                  Apr 5 at 9:40












                  up vote
                  16
                  down vote













                  The assert statement has two forms.



                  The simple form, assert <expression>, is equivalent to



                  if __​debug__:
                  if not <expression>: raise AssertionError


                  The extended form, assert <expression1>, <expression2>, is equivalent to



                  if __​debug__:
                  if not <expression1>: raise AssertionError, <expression2>





                  share|improve this answer



























                    up vote
                    16
                    down vote













                    The assert statement has two forms.



                    The simple form, assert <expression>, is equivalent to



                    if __​debug__:
                    if not <expression>: raise AssertionError


                    The extended form, assert <expression1>, <expression2>, is equivalent to



                    if __​debug__:
                    if not <expression1>: raise AssertionError, <expression2>





                    share|improve this answer

























                      up vote
                      16
                      down vote










                      up vote
                      16
                      down vote









                      The assert statement has two forms.



                      The simple form, assert <expression>, is equivalent to



                      if __​debug__:
                      if not <expression>: raise AssertionError


                      The extended form, assert <expression1>, <expression2>, is equivalent to



                      if __​debug__:
                      if not <expression1>: raise AssertionError, <expression2>





                      share|improve this answer














                      The assert statement has two forms.



                      The simple form, assert <expression>, is equivalent to



                      if __​debug__:
                      if not <expression>: raise AssertionError


                      The extended form, assert <expression1>, <expression2>, is equivalent to



                      if __​debug__:
                      if not <expression1>: raise AssertionError, <expression2>






                      share|improve this answer














                      share|improve this answer



                      share|improve this answer








                      edited Oct 15 '14 at 20:54









                      Colin D Bennett

                      5,91622851




                      5,91622851










                      answered Jul 10 '13 at 1:21









                      Bohdan

                      8,762105360




                      8,762105360






















                          up vote
                          13
                          down vote













                          Assertions are a systematic way to check that the internal state of a program is as the programmer expected, with the goal of catching bugs. See the example below.



                          >>> number = input('Enter a positive number:')
                          Enter a positive number:-1
                          >>> assert (number > 0), 'Only positive numbers are allowed!'
                          Traceback (most recent call last):
                          File "<stdin>", line 1, in <module>
                          AssertionError: Only positive numbers are allowed!
                          >>>





                          share|improve this answer



















                          • 1




                            Also, assertions can often be used in unit testing programs. stackoverflow.com/questions/1383/what-is-unit-testing
                            – panofish
                            Oct 2 '14 at 18:29















                          up vote
                          13
                          down vote













                          Assertions are a systematic way to check that the internal state of a program is as the programmer expected, with the goal of catching bugs. See the example below.



                          >>> number = input('Enter a positive number:')
                          Enter a positive number:-1
                          >>> assert (number > 0), 'Only positive numbers are allowed!'
                          Traceback (most recent call last):
                          File "<stdin>", line 1, in <module>
                          AssertionError: Only positive numbers are allowed!
                          >>>





                          share|improve this answer



















                          • 1




                            Also, assertions can often be used in unit testing programs. stackoverflow.com/questions/1383/what-is-unit-testing
                            – panofish
                            Oct 2 '14 at 18:29













                          up vote
                          13
                          down vote










                          up vote
                          13
                          down vote









                          Assertions are a systematic way to check that the internal state of a program is as the programmer expected, with the goal of catching bugs. See the example below.



                          >>> number = input('Enter a positive number:')
                          Enter a positive number:-1
                          >>> assert (number > 0), 'Only positive numbers are allowed!'
                          Traceback (most recent call last):
                          File "<stdin>", line 1, in <module>
                          AssertionError: Only positive numbers are allowed!
                          >>>





                          share|improve this answer














                          Assertions are a systematic way to check that the internal state of a program is as the programmer expected, with the goal of catching bugs. See the example below.



                          >>> number = input('Enter a positive number:')
                          Enter a positive number:-1
                          >>> assert (number > 0), 'Only positive numbers are allowed!'
                          Traceback (most recent call last):
                          File "<stdin>", line 1, in <module>
                          AssertionError: Only positive numbers are allowed!
                          >>>






                          share|improve this answer














                          share|improve this answer



                          share|improve this answer








                          edited Feb 19 '14 at 16:58

























                          answered Feb 19 '14 at 16:52









                          Jacob Abraham

                          67988




                          67988








                          • 1




                            Also, assertions can often be used in unit testing programs. stackoverflow.com/questions/1383/what-is-unit-testing
                            – panofish
                            Oct 2 '14 at 18:29














                          • 1




                            Also, assertions can often be used in unit testing programs. stackoverflow.com/questions/1383/what-is-unit-testing
                            – panofish
                            Oct 2 '14 at 18:29








                          1




                          1




                          Also, assertions can often be used in unit testing programs. stackoverflow.com/questions/1383/what-is-unit-testing
                          – panofish
                          Oct 2 '14 at 18:29




                          Also, assertions can often be used in unit testing programs. stackoverflow.com/questions/1383/what-is-unit-testing
                          – panofish
                          Oct 2 '14 at 18:29










                          up vote
                          11
                          down vote













                          From docs:



                          Assert statements are a convenient way to insert debugging assertions into a program


                          Here you can read more: http://docs.python.org/release/2.5.2/ref/assert.html






                          share|improve this answer

























                            up vote
                            11
                            down vote













                            From docs:



                            Assert statements are a convenient way to insert debugging assertions into a program


                            Here you can read more: http://docs.python.org/release/2.5.2/ref/assert.html






                            share|improve this answer























                              up vote
                              11
                              down vote










                              up vote
                              11
                              down vote









                              From docs:



                              Assert statements are a convenient way to insert debugging assertions into a program


                              Here you can read more: http://docs.python.org/release/2.5.2/ref/assert.html






                              share|improve this answer












                              From docs:



                              Assert statements are a convenient way to insert debugging assertions into a program


                              Here you can read more: http://docs.python.org/release/2.5.2/ref/assert.html







                              share|improve this answer












                              share|improve this answer



                              share|improve this answer










                              answered Feb 28 '11 at 13:16









                              gruszczy

                              26.8k20102148




                              26.8k20102148






















                                  up vote
                                  6
                                  down vote













                                  Here is a simple example, save this in file (let's say b.py)



                                  def chkassert(num):
                                  assert type(num) == int


                                  chkassert('a')


                                  and the result when $python b.py



                                  Traceback (most recent call last):
                                  File "b.py", line 5, in <module>
                                  chkassert('a')
                                  File "b.py", line 2, in chkassert
                                  assert type(num) == int
                                  AssertionError





                                  share|improve this answer

























                                    up vote
                                    6
                                    down vote













                                    Here is a simple example, save this in file (let's say b.py)



                                    def chkassert(num):
                                    assert type(num) == int


                                    chkassert('a')


                                    and the result when $python b.py



                                    Traceback (most recent call last):
                                    File "b.py", line 5, in <module>
                                    chkassert('a')
                                    File "b.py", line 2, in chkassert
                                    assert type(num) == int
                                    AssertionError





                                    share|improve this answer























                                      up vote
                                      6
                                      down vote










                                      up vote
                                      6
                                      down vote









                                      Here is a simple example, save this in file (let's say b.py)



                                      def chkassert(num):
                                      assert type(num) == int


                                      chkassert('a')


                                      and the result when $python b.py



                                      Traceback (most recent call last):
                                      File "b.py", line 5, in <module>
                                      chkassert('a')
                                      File "b.py", line 2, in chkassert
                                      assert type(num) == int
                                      AssertionError





                                      share|improve this answer












                                      Here is a simple example, save this in file (let's say b.py)



                                      def chkassert(num):
                                      assert type(num) == int


                                      chkassert('a')


                                      and the result when $python b.py



                                      Traceback (most recent call last):
                                      File "b.py", line 5, in <module>
                                      chkassert('a')
                                      File "b.py", line 2, in chkassert
                                      assert type(num) == int
                                      AssertionError






                                      share|improve this answer












                                      share|improve this answer



                                      share|improve this answer










                                      answered Feb 17 '14 at 14:54









                                      Gaurav Agarwal

                                      8,1012689148




                                      8,1012689148






















                                          up vote
                                          4
                                          down vote













                                          if the statement after assert is true then the program continues , but if the statement after assert is false then the program gives an error. Simple as that.



                                          e.g.:



                                          assert 1>0   #normal execution
                                          assert 0>1 #Traceback (most recent call last):
                                          #File "<pyshell#11>", line 1, in <module>
                                          #assert 0>1
                                          #AssertionError





                                          share|improve this answer



























                                            up vote
                                            4
                                            down vote













                                            if the statement after assert is true then the program continues , but if the statement after assert is false then the program gives an error. Simple as that.



                                            e.g.:



                                            assert 1>0   #normal execution
                                            assert 0>1 #Traceback (most recent call last):
                                            #File "<pyshell#11>", line 1, in <module>
                                            #assert 0>1
                                            #AssertionError





                                            share|improve this answer

























                                              up vote
                                              4
                                              down vote










                                              up vote
                                              4
                                              down vote









                                              if the statement after assert is true then the program continues , but if the statement after assert is false then the program gives an error. Simple as that.



                                              e.g.:



                                              assert 1>0   #normal execution
                                              assert 0>1 #Traceback (most recent call last):
                                              #File "<pyshell#11>", line 1, in <module>
                                              #assert 0>1
                                              #AssertionError





                                              share|improve this answer














                                              if the statement after assert is true then the program continues , but if the statement after assert is false then the program gives an error. Simple as that.



                                              e.g.:



                                              assert 1>0   #normal execution
                                              assert 0>1 #Traceback (most recent call last):
                                              #File "<pyshell#11>", line 1, in <module>
                                              #assert 0>1
                                              #AssertionError






                                              share|improve this answer














                                              share|improve this answer



                                              share|improve this answer








                                              edited Jun 29 '17 at 21:52









                                              Shawn Mehan

                                              3,46192039




                                              3,46192039










                                              answered Nov 1 '14 at 5:05









                                              abe312

                                              2,7052418




                                              2,7052418






















                                                  up vote
                                                  2
                                                  down vote













                                                  If you ever want to know exactly what a reserved function does in python, type in help(enter_keyword)



                                                  Make sure if you are entering a reserved keyword that you enter it as a string.






                                                  share|improve this answer



























                                                    up vote
                                                    2
                                                    down vote













                                                    If you ever want to know exactly what a reserved function does in python, type in help(enter_keyword)



                                                    Make sure if you are entering a reserved keyword that you enter it as a string.






                                                    share|improve this answer

























                                                      up vote
                                                      2
                                                      down vote










                                                      up vote
                                                      2
                                                      down vote









                                                      If you ever want to know exactly what a reserved function does in python, type in help(enter_keyword)



                                                      Make sure if you are entering a reserved keyword that you enter it as a string.






                                                      share|improve this answer














                                                      If you ever want to know exactly what a reserved function does in python, type in help(enter_keyword)



                                                      Make sure if you are entering a reserved keyword that you enter it as a string.







                                                      share|improve this answer














                                                      share|improve this answer



                                                      share|improve this answer








                                                      edited Jan 7 '16 at 3:36

























                                                      answered Jul 16 '15 at 3:51









                                                      ytpillai

                                                      2,1321732




                                                      2,1321732






















                                                          up vote
                                                          1
                                                          down vote













                                                          Python assert is basically a debugging aid which test condition for internal self-check of your code.
                                                          Assert makes debugging really easy when your code gets into impossible edge cases. Assert check those impossible cases.



                                                          Let's say there is a function to calculate price of item after discount :



                                                          def calculate_discount(price, discount):
                                                          discounted_price = price - [discount*price]
                                                          assert 0 <= discounted_price <= price
                                                          return discounted_price


                                                          here, discounted_price can never be less than 0 and greater than actual price. So, in case the above condition is violated assert raises an Assertion Error, which helps the developer to identify that something impossible had happened.



                                                          Hope it helps :)






                                                          share|improve this answer

















                                                          • 1




                                                            assert is useful in a debugging context, but should not be relied outside of a debugging context.
                                                            – FluxIX
                                                            Sep 27 at 3:25















                                                          up vote
                                                          1
                                                          down vote













                                                          Python assert is basically a debugging aid which test condition for internal self-check of your code.
                                                          Assert makes debugging really easy when your code gets into impossible edge cases. Assert check those impossible cases.



                                                          Let's say there is a function to calculate price of item after discount :



                                                          def calculate_discount(price, discount):
                                                          discounted_price = price - [discount*price]
                                                          assert 0 <= discounted_price <= price
                                                          return discounted_price


                                                          here, discounted_price can never be less than 0 and greater than actual price. So, in case the above condition is violated assert raises an Assertion Error, which helps the developer to identify that something impossible had happened.



                                                          Hope it helps :)






                                                          share|improve this answer

















                                                          • 1




                                                            assert is useful in a debugging context, but should not be relied outside of a debugging context.
                                                            – FluxIX
                                                            Sep 27 at 3:25













                                                          up vote
                                                          1
                                                          down vote










                                                          up vote
                                                          1
                                                          down vote









                                                          Python assert is basically a debugging aid which test condition for internal self-check of your code.
                                                          Assert makes debugging really easy when your code gets into impossible edge cases. Assert check those impossible cases.



                                                          Let's say there is a function to calculate price of item after discount :



                                                          def calculate_discount(price, discount):
                                                          discounted_price = price - [discount*price]
                                                          assert 0 <= discounted_price <= price
                                                          return discounted_price


                                                          here, discounted_price can never be less than 0 and greater than actual price. So, in case the above condition is violated assert raises an Assertion Error, which helps the developer to identify that something impossible had happened.



                                                          Hope it helps :)






                                                          share|improve this answer












                                                          Python assert is basically a debugging aid which test condition for internal self-check of your code.
                                                          Assert makes debugging really easy when your code gets into impossible edge cases. Assert check those impossible cases.



                                                          Let's say there is a function to calculate price of item after discount :



                                                          def calculate_discount(price, discount):
                                                          discounted_price = price - [discount*price]
                                                          assert 0 <= discounted_price <= price
                                                          return discounted_price


                                                          here, discounted_price can never be less than 0 and greater than actual price. So, in case the above condition is violated assert raises an Assertion Error, which helps the developer to identify that something impossible had happened.



                                                          Hope it helps :)







                                                          share|improve this answer












                                                          share|improve this answer



                                                          share|improve this answer










                                                          answered Apr 15 at 17:13









                                                          Nitish Chauhan

                                                          4617




                                                          4617








                                                          • 1




                                                            assert is useful in a debugging context, but should not be relied outside of a debugging context.
                                                            – FluxIX
                                                            Sep 27 at 3:25














                                                          • 1




                                                            assert is useful in a debugging context, but should not be relied outside of a debugging context.
                                                            – FluxIX
                                                            Sep 27 at 3:25








                                                          1




                                                          1




                                                          assert is useful in a debugging context, but should not be relied outside of a debugging context.
                                                          – FluxIX
                                                          Sep 27 at 3:25




                                                          assert is useful in a debugging context, but should not be relied outside of a debugging context.
                                                          – FluxIX
                                                          Sep 27 at 3:25










                                                          up vote
                                                          0
                                                          down vote













                                                          My short explanation is:





                                                          • assert raises AssertionError if expression is false, otherwise just continues the code, and if there's a comma whatever it is it will be AssertionError: whatever after comma, and to code is like: raise AssertionError(whatever after comma)


                                                          A related tutorial about this:




                                                          https://www.tutorialspoint.com/python/assertions_in_python.htm







                                                          share|improve this answer





















                                                          • The answer provides how to use an assert, but not when to use (or not use) an assert; also noting that an assert can be disabled if __debug__ is False would be useful.
                                                            – FluxIX
                                                            Sep 27 at 3:23















                                                          up vote
                                                          0
                                                          down vote













                                                          My short explanation is:





                                                          • assert raises AssertionError if expression is false, otherwise just continues the code, and if there's a comma whatever it is it will be AssertionError: whatever after comma, and to code is like: raise AssertionError(whatever after comma)


                                                          A related tutorial about this:




                                                          https://www.tutorialspoint.com/python/assertions_in_python.htm







                                                          share|improve this answer





















                                                          • The answer provides how to use an assert, but not when to use (or not use) an assert; also noting that an assert can be disabled if __debug__ is False would be useful.
                                                            – FluxIX
                                                            Sep 27 at 3:23













                                                          up vote
                                                          0
                                                          down vote










                                                          up vote
                                                          0
                                                          down vote









                                                          My short explanation is:





                                                          • assert raises AssertionError if expression is false, otherwise just continues the code, and if there's a comma whatever it is it will be AssertionError: whatever after comma, and to code is like: raise AssertionError(whatever after comma)


                                                          A related tutorial about this:




                                                          https://www.tutorialspoint.com/python/assertions_in_python.htm







                                                          share|improve this answer












                                                          My short explanation is:





                                                          • assert raises AssertionError if expression is false, otherwise just continues the code, and if there's a comma whatever it is it will be AssertionError: whatever after comma, and to code is like: raise AssertionError(whatever after comma)


                                                          A related tutorial about this:




                                                          https://www.tutorialspoint.com/python/assertions_in_python.htm








                                                          share|improve this answer












                                                          share|improve this answer



                                                          share|improve this answer










                                                          answered Sep 23 at 5:55









                                                          U9-Forward

                                                          10.6k2834




                                                          10.6k2834












                                                          • The answer provides how to use an assert, but not when to use (or not use) an assert; also noting that an assert can be disabled if __debug__ is False would be useful.
                                                            – FluxIX
                                                            Sep 27 at 3:23


















                                                          • The answer provides how to use an assert, but not when to use (or not use) an assert; also noting that an assert can be disabled if __debug__ is False would be useful.
                                                            – FluxIX
                                                            Sep 27 at 3:23
















                                                          The answer provides how to use an assert, but not when to use (or not use) an assert; also noting that an assert can be disabled if __debug__ is False would be useful.
                                                          – FluxIX
                                                          Sep 27 at 3:23




                                                          The answer provides how to use an assert, but not when to use (or not use) an assert; also noting that an assert can be disabled if __debug__ is False would be useful.
                                                          – FluxIX
                                                          Sep 27 at 3:23










                                                          up vote
                                                          0
                                                          down vote













                                                          As summarized concisely on the C2 Wiki:




                                                          An assertion is a boolean expression at a specific point in a program which will be true unless there is a bug in the program.




                                                          You can use an assert statement to document your understanding of the code at a particular program point. For example, you can document assumptions or guarantees about inputs (preconditions), program state (invariants), or outputs (postconditions).



                                                          Should your assertion ever fail, this is an alert for you (or your successor) that your understanding of the program was wrong when you wrote it, and that it likely contains a bug.



                                                          For more information, John Regehr has a wonderful blog post on the Use of Assertions, which applies to the Python assert statement as well.






                                                          share|improve this answer

























                                                            up vote
                                                            0
                                                            down vote













                                                            As summarized concisely on the C2 Wiki:




                                                            An assertion is a boolean expression at a specific point in a program which will be true unless there is a bug in the program.




                                                            You can use an assert statement to document your understanding of the code at a particular program point. For example, you can document assumptions or guarantees about inputs (preconditions), program state (invariants), or outputs (postconditions).



                                                            Should your assertion ever fail, this is an alert for you (or your successor) that your understanding of the program was wrong when you wrote it, and that it likely contains a bug.



                                                            For more information, John Regehr has a wonderful blog post on the Use of Assertions, which applies to the Python assert statement as well.






                                                            share|improve this answer























                                                              up vote
                                                              0
                                                              down vote










                                                              up vote
                                                              0
                                                              down vote









                                                              As summarized concisely on the C2 Wiki:




                                                              An assertion is a boolean expression at a specific point in a program which will be true unless there is a bug in the program.




                                                              You can use an assert statement to document your understanding of the code at a particular program point. For example, you can document assumptions or guarantees about inputs (preconditions), program state (invariants), or outputs (postconditions).



                                                              Should your assertion ever fail, this is an alert for you (or your successor) that your understanding of the program was wrong when you wrote it, and that it likely contains a bug.



                                                              For more information, John Regehr has a wonderful blog post on the Use of Assertions, which applies to the Python assert statement as well.






                                                              share|improve this answer












                                                              As summarized concisely on the C2 Wiki:




                                                              An assertion is a boolean expression at a specific point in a program which will be true unless there is a bug in the program.




                                                              You can use an assert statement to document your understanding of the code at a particular program point. For example, you can document assumptions or guarantees about inputs (preconditions), program state (invariants), or outputs (postconditions).



                                                              Should your assertion ever fail, this is an alert for you (or your successor) that your understanding of the program was wrong when you wrote it, and that it likely contains a bug.



                                                              For more information, John Regehr has a wonderful blog post on the Use of Assertions, which applies to the Python assert statement as well.







                                                              share|improve this answer












                                                              share|improve this answer



                                                              share|improve this answer










                                                              answered 9 hours ago









                                                              avandeursen

                                                              6,42123143




                                                              6,42123143






















                                                                  up vote
                                                                  -1
                                                                  down vote













                                                                  def getUser(self, id, Email):

                                                                  user_key = id and id or Email

                                                                  assert user_key


                                                                  Can be used to ensure parameters are passed in the function call.






                                                                  share|improve this answer



















                                                                  • 1




                                                                    This will work, but from what I understand, asserts shouldn’t be used for checking user-input, because they can be turned off at run-time. If you really want to enforce or validate user-input use the if not user_key: raise ValueError() Check last 2 paragraphs here: wiki.python.org/moin/UsingAssertionsEffectively
                                                                    – alpha_989
                                                                    Jan 14 at 17:53










                                                                  • assert should not be used for input validation because either the validation will be stripped out if __debug__ is False. Also using assertions for non-debug purposes can cause people to catch the resulting AssertionErrors, which can make debugging more difficult instead of less.
                                                                    – FluxIX
                                                                    Aug 26 at 0:33















                                                                  up vote
                                                                  -1
                                                                  down vote













                                                                  def getUser(self, id, Email):

                                                                  user_key = id and id or Email

                                                                  assert user_key


                                                                  Can be used to ensure parameters are passed in the function call.






                                                                  share|improve this answer



















                                                                  • 1




                                                                    This will work, but from what I understand, asserts shouldn’t be used for checking user-input, because they can be turned off at run-time. If you really want to enforce or validate user-input use the if not user_key: raise ValueError() Check last 2 paragraphs here: wiki.python.org/moin/UsingAssertionsEffectively
                                                                    – alpha_989
                                                                    Jan 14 at 17:53










                                                                  • assert should not be used for input validation because either the validation will be stripped out if __debug__ is False. Also using assertions for non-debug purposes can cause people to catch the resulting AssertionErrors, which can make debugging more difficult instead of less.
                                                                    – FluxIX
                                                                    Aug 26 at 0:33













                                                                  up vote
                                                                  -1
                                                                  down vote










                                                                  up vote
                                                                  -1
                                                                  down vote









                                                                  def getUser(self, id, Email):

                                                                  user_key = id and id or Email

                                                                  assert user_key


                                                                  Can be used to ensure parameters are passed in the function call.






                                                                  share|improve this answer














                                                                  def getUser(self, id, Email):

                                                                  user_key = id and id or Email

                                                                  assert user_key


                                                                  Can be used to ensure parameters are passed in the function call.







                                                                  share|improve this answer














                                                                  share|improve this answer



                                                                  share|improve this answer








                                                                  edited Feb 19 '16 at 21:00









                                                                  Cleb

                                                                  10.2k115076




                                                                  10.2k115076










                                                                  answered Mar 24 '15 at 11:54









                                                                  user2725012

                                                                  375




                                                                  375








                                                                  • 1




                                                                    This will work, but from what I understand, asserts shouldn’t be used for checking user-input, because they can be turned off at run-time. If you really want to enforce or validate user-input use the if not user_key: raise ValueError() Check last 2 paragraphs here: wiki.python.org/moin/UsingAssertionsEffectively
                                                                    – alpha_989
                                                                    Jan 14 at 17:53










                                                                  • assert should not be used for input validation because either the validation will be stripped out if __debug__ is False. Also using assertions for non-debug purposes can cause people to catch the resulting AssertionErrors, which can make debugging more difficult instead of less.
                                                                    – FluxIX
                                                                    Aug 26 at 0:33














                                                                  • 1




                                                                    This will work, but from what I understand, asserts shouldn’t be used for checking user-input, because they can be turned off at run-time. If you really want to enforce or validate user-input use the if not user_key: raise ValueError() Check last 2 paragraphs here: wiki.python.org/moin/UsingAssertionsEffectively
                                                                    – alpha_989
                                                                    Jan 14 at 17:53










                                                                  • assert should not be used for input validation because either the validation will be stripped out if __debug__ is False. Also using assertions for non-debug purposes can cause people to catch the resulting AssertionErrors, which can make debugging more difficult instead of less.
                                                                    – FluxIX
                                                                    Aug 26 at 0:33








                                                                  1




                                                                  1




                                                                  This will work, but from what I understand, asserts shouldn’t be used for checking user-input, because they can be turned off at run-time. If you really want to enforce or validate user-input use the if not user_key: raise ValueError() Check last 2 paragraphs here: wiki.python.org/moin/UsingAssertionsEffectively
                                                                  – alpha_989
                                                                  Jan 14 at 17:53




                                                                  This will work, but from what I understand, asserts shouldn’t be used for checking user-input, because they can be turned off at run-time. If you really want to enforce or validate user-input use the if not user_key: raise ValueError() Check last 2 paragraphs here: wiki.python.org/moin/UsingAssertionsEffectively
                                                                  – alpha_989
                                                                  Jan 14 at 17:53












                                                                  assert should not be used for input validation because either the validation will be stripped out if __debug__ is False. Also using assertions for non-debug purposes can cause people to catch the resulting AssertionErrors, which can make debugging more difficult instead of less.
                                                                  – FluxIX
                                                                  Aug 26 at 0:33




                                                                  assert should not be used for input validation because either the validation will be stripped out if __debug__ is False. Also using assertions for non-debug purposes can cause people to catch the resulting AssertionErrors, which can make debugging more difficult instead of less.
                                                                  – FluxIX
                                                                  Aug 26 at 0:33










                                                                  up vote
                                                                  -2
                                                                  down vote













                                                                  format :
                                                                  assert Expression[,arguments]
                                                                  When assert encounters a statement,Python evaluates the expression.If the statement is not true,an exception is raised(assertionError).
                                                                  If the assertion fails, Python uses ArgumentExpression as the argument for the AssertionError. AssertionError exceptions can be caught and handled like any other exception using the try-except statement, but if not handled, they will terminate the program and produce a traceback.
                                                                  Example:



                                                                  def KelvinToFahrenheit(Temperature):    
                                                                  assert (Temperature >= 0),"Colder than absolute zero!"
                                                                  return ((Temperature-273)*1.8)+32
                                                                  print KelvinToFahrenheit(273)
                                                                  print int(KelvinToFahrenheit(505.78))
                                                                  print KelvinToFahrenheit(-5)


                                                                  When the above code is executed, it produces the following result:



                                                                  32.0
                                                                  451
                                                                  Traceback (most recent call last):
                                                                  File "test.py", line 9, in <module>
                                                                  print KelvinToFahrenheit(-5)
                                                                  File "test.py", line 4, in KelvinToFahrenheit
                                                                  assert (Temperature >= 0),"Colder than absolute zero!"
                                                                  AssertionError: Colder than absolute zero!





                                                                  share|improve this answer



























                                                                    up vote
                                                                    -2
                                                                    down vote













                                                                    format :
                                                                    assert Expression[,arguments]
                                                                    When assert encounters a statement,Python evaluates the expression.If the statement is not true,an exception is raised(assertionError).
                                                                    If the assertion fails, Python uses ArgumentExpression as the argument for the AssertionError. AssertionError exceptions can be caught and handled like any other exception using the try-except statement, but if not handled, they will terminate the program and produce a traceback.
                                                                    Example:



                                                                    def KelvinToFahrenheit(Temperature):    
                                                                    assert (Temperature >= 0),"Colder than absolute zero!"
                                                                    return ((Temperature-273)*1.8)+32
                                                                    print KelvinToFahrenheit(273)
                                                                    print int(KelvinToFahrenheit(505.78))
                                                                    print KelvinToFahrenheit(-5)


                                                                    When the above code is executed, it produces the following result:



                                                                    32.0
                                                                    451
                                                                    Traceback (most recent call last):
                                                                    File "test.py", line 9, in <module>
                                                                    print KelvinToFahrenheit(-5)
                                                                    File "test.py", line 4, in KelvinToFahrenheit
                                                                    assert (Temperature >= 0),"Colder than absolute zero!"
                                                                    AssertionError: Colder than absolute zero!





                                                                    share|improve this answer

























                                                                      up vote
                                                                      -2
                                                                      down vote










                                                                      up vote
                                                                      -2
                                                                      down vote









                                                                      format :
                                                                      assert Expression[,arguments]
                                                                      When assert encounters a statement,Python evaluates the expression.If the statement is not true,an exception is raised(assertionError).
                                                                      If the assertion fails, Python uses ArgumentExpression as the argument for the AssertionError. AssertionError exceptions can be caught and handled like any other exception using the try-except statement, but if not handled, they will terminate the program and produce a traceback.
                                                                      Example:



                                                                      def KelvinToFahrenheit(Temperature):    
                                                                      assert (Temperature >= 0),"Colder than absolute zero!"
                                                                      return ((Temperature-273)*1.8)+32
                                                                      print KelvinToFahrenheit(273)
                                                                      print int(KelvinToFahrenheit(505.78))
                                                                      print KelvinToFahrenheit(-5)


                                                                      When the above code is executed, it produces the following result:



                                                                      32.0
                                                                      451
                                                                      Traceback (most recent call last):
                                                                      File "test.py", line 9, in <module>
                                                                      print KelvinToFahrenheit(-5)
                                                                      File "test.py", line 4, in KelvinToFahrenheit
                                                                      assert (Temperature >= 0),"Colder than absolute zero!"
                                                                      AssertionError: Colder than absolute zero!





                                                                      share|improve this answer














                                                                      format :
                                                                      assert Expression[,arguments]
                                                                      When assert encounters a statement,Python evaluates the expression.If the statement is not true,an exception is raised(assertionError).
                                                                      If the assertion fails, Python uses ArgumentExpression as the argument for the AssertionError. AssertionError exceptions can be caught and handled like any other exception using the try-except statement, but if not handled, they will terminate the program and produce a traceback.
                                                                      Example:



                                                                      def KelvinToFahrenheit(Temperature):    
                                                                      assert (Temperature >= 0),"Colder than absolute zero!"
                                                                      return ((Temperature-273)*1.8)+32
                                                                      print KelvinToFahrenheit(273)
                                                                      print int(KelvinToFahrenheit(505.78))
                                                                      print KelvinToFahrenheit(-5)


                                                                      When the above code is executed, it produces the following result:



                                                                      32.0
                                                                      451
                                                                      Traceback (most recent call last):
                                                                      File "test.py", line 9, in <module>
                                                                      print KelvinToFahrenheit(-5)
                                                                      File "test.py", line 4, in KelvinToFahrenheit
                                                                      assert (Temperature >= 0),"Colder than absolute zero!"
                                                                      AssertionError: Colder than absolute zero!






                                                                      share|improve this answer














                                                                      share|improve this answer



                                                                      share|improve this answer








                                                                      edited Dec 26 '14 at 15:41

























                                                                      answered Dec 26 '14 at 15:16









                                                                      bhavya

                                                                      2919




                                                                      2919






















                                                                          up vote
                                                                          -3
                                                                          down vote













                                                                          >>>this_is_very_complex_function_result = 9
                                                                          >>>c = this_is_very_complex_function_result
                                                                          >>>test_us = (c < 4)

                                                                          >>> #first we try without assert
                                                                          >>>if test_us == True:
                                                                          print("YES! I am right!")
                                                                          else:
                                                                          print("I am Wrong, but the program still RUNS!")

                                                                          I am Wrong, but the program still RUNS!


                                                                          >>> #now we try with assert
                                                                          >>> assert test_us
                                                                          Traceback (most recent call last):
                                                                          File "<pyshell#52>", line 1, in <module>
                                                                          assert test_us
                                                                          AssertionError
                                                                          >>>





                                                                          share|improve this answer

























                                                                            up vote
                                                                            -3
                                                                            down vote













                                                                            >>>this_is_very_complex_function_result = 9
                                                                            >>>c = this_is_very_complex_function_result
                                                                            >>>test_us = (c < 4)

                                                                            >>> #first we try without assert
                                                                            >>>if test_us == True:
                                                                            print("YES! I am right!")
                                                                            else:
                                                                            print("I am Wrong, but the program still RUNS!")

                                                                            I am Wrong, but the program still RUNS!


                                                                            >>> #now we try with assert
                                                                            >>> assert test_us
                                                                            Traceback (most recent call last):
                                                                            File "<pyshell#52>", line 1, in <module>
                                                                            assert test_us
                                                                            AssertionError
                                                                            >>>





                                                                            share|improve this answer























                                                                              up vote
                                                                              -3
                                                                              down vote










                                                                              up vote
                                                                              -3
                                                                              down vote









                                                                              >>>this_is_very_complex_function_result = 9
                                                                              >>>c = this_is_very_complex_function_result
                                                                              >>>test_us = (c < 4)

                                                                              >>> #first we try without assert
                                                                              >>>if test_us == True:
                                                                              print("YES! I am right!")
                                                                              else:
                                                                              print("I am Wrong, but the program still RUNS!")

                                                                              I am Wrong, but the program still RUNS!


                                                                              >>> #now we try with assert
                                                                              >>> assert test_us
                                                                              Traceback (most recent call last):
                                                                              File "<pyshell#52>", line 1, in <module>
                                                                              assert test_us
                                                                              AssertionError
                                                                              >>>





                                                                              share|improve this answer












                                                                              >>>this_is_very_complex_function_result = 9
                                                                              >>>c = this_is_very_complex_function_result
                                                                              >>>test_us = (c < 4)

                                                                              >>> #first we try without assert
                                                                              >>>if test_us == True:
                                                                              print("YES! I am right!")
                                                                              else:
                                                                              print("I am Wrong, but the program still RUNS!")

                                                                              I am Wrong, but the program still RUNS!


                                                                              >>> #now we try with assert
                                                                              >>> assert test_us
                                                                              Traceback (most recent call last):
                                                                              File "<pyshell#52>", line 1, in <module>
                                                                              assert test_us
                                                                              AssertionError
                                                                              >>>






                                                                              share|improve this answer












                                                                              share|improve this answer



                                                                              share|improve this answer










                                                                              answered Apr 25 '17 at 5:04









                                                                              rianhariadi.com

                                                                              1




                                                                              1






















                                                                                  up vote
                                                                                  -3
                                                                                  down vote













                                                                                  Basically the assert keyword meaning is that if the condition is not true then it through an assertionerror else it continue for example in python.



                                                                                  code-1



                                                                                  a=5

                                                                                  b=6

                                                                                  assert a==b


                                                                                  OUTPUT:



                                                                                  assert a==b

                                                                                  AssertionError


                                                                                  code-2



                                                                                  a=5

                                                                                  b=5

                                                                                  assert a==b


                                                                                  OUTPUT:



                                                                                  Process finished with exit code 0





                                                                                  share|improve this answer



















                                                                                  • 1




                                                                                    please format your code properly. also, how does this improve on previous answers?
                                                                                    – c2huc2hu
                                                                                    Jul 26 '17 at 17:31










                                                                                  • is there any problem in my explanation?
                                                                                    – ujjwal_bansal
                                                                                    Aug 2 '17 at 22:18










                                                                                  • your explanation doesn't add anything to the existing answers, and the poor grammar makes it hard to read. if you're looking for questions to answer, consider browsing the new questions feed.
                                                                                    – c2huc2hu
                                                                                    Aug 3 '17 at 1:46












                                                                                  • The provided answer does answer how to use an assert, but does not answer when to use (or not use) an assert.
                                                                                    – FluxIX
                                                                                    Sep 27 at 3:20















                                                                                  up vote
                                                                                  -3
                                                                                  down vote













                                                                                  Basically the assert keyword meaning is that if the condition is not true then it through an assertionerror else it continue for example in python.



                                                                                  code-1



                                                                                  a=5

                                                                                  b=6

                                                                                  assert a==b


                                                                                  OUTPUT:



                                                                                  assert a==b

                                                                                  AssertionError


                                                                                  code-2



                                                                                  a=5

                                                                                  b=5

                                                                                  assert a==b


                                                                                  OUTPUT:



                                                                                  Process finished with exit code 0





                                                                                  share|improve this answer



















                                                                                  • 1




                                                                                    please format your code properly. also, how does this improve on previous answers?
                                                                                    – c2huc2hu
                                                                                    Jul 26 '17 at 17:31










                                                                                  • is there any problem in my explanation?
                                                                                    – ujjwal_bansal
                                                                                    Aug 2 '17 at 22:18










                                                                                  • your explanation doesn't add anything to the existing answers, and the poor grammar makes it hard to read. if you're looking for questions to answer, consider browsing the new questions feed.
                                                                                    – c2huc2hu
                                                                                    Aug 3 '17 at 1:46












                                                                                  • The provided answer does answer how to use an assert, but does not answer when to use (or not use) an assert.
                                                                                    – FluxIX
                                                                                    Sep 27 at 3:20













                                                                                  up vote
                                                                                  -3
                                                                                  down vote










                                                                                  up vote
                                                                                  -3
                                                                                  down vote









                                                                                  Basically the assert keyword meaning is that if the condition is not true then it through an assertionerror else it continue for example in python.



                                                                                  code-1



                                                                                  a=5

                                                                                  b=6

                                                                                  assert a==b


                                                                                  OUTPUT:



                                                                                  assert a==b

                                                                                  AssertionError


                                                                                  code-2



                                                                                  a=5

                                                                                  b=5

                                                                                  assert a==b


                                                                                  OUTPUT:



                                                                                  Process finished with exit code 0





                                                                                  share|improve this answer














                                                                                  Basically the assert keyword meaning is that if the condition is not true then it through an assertionerror else it continue for example in python.



                                                                                  code-1



                                                                                  a=5

                                                                                  b=6

                                                                                  assert a==b


                                                                                  OUTPUT:



                                                                                  assert a==b

                                                                                  AssertionError


                                                                                  code-2



                                                                                  a=5

                                                                                  b=5

                                                                                  assert a==b


                                                                                  OUTPUT:



                                                                                  Process finished with exit code 0






                                                                                  share|improve this answer














                                                                                  share|improve this answer



                                                                                  share|improve this answer








                                                                                  edited Jul 27 '17 at 7:22









                                                                                  Dinesh Pundkar

                                                                                  2,88011327




                                                                                  2,88011327










                                                                                  answered Jul 26 '17 at 17:19









                                                                                  ujjwal_bansal

                                                                                  71




                                                                                  71








                                                                                  • 1




                                                                                    please format your code properly. also, how does this improve on previous answers?
                                                                                    – c2huc2hu
                                                                                    Jul 26 '17 at 17:31










                                                                                  • is there any problem in my explanation?
                                                                                    – ujjwal_bansal
                                                                                    Aug 2 '17 at 22:18










                                                                                  • your explanation doesn't add anything to the existing answers, and the poor grammar makes it hard to read. if you're looking for questions to answer, consider browsing the new questions feed.
                                                                                    – c2huc2hu
                                                                                    Aug 3 '17 at 1:46












                                                                                  • The provided answer does answer how to use an assert, but does not answer when to use (or not use) an assert.
                                                                                    – FluxIX
                                                                                    Sep 27 at 3:20














                                                                                  • 1




                                                                                    please format your code properly. also, how does this improve on previous answers?
                                                                                    – c2huc2hu
                                                                                    Jul 26 '17 at 17:31










                                                                                  • is there any problem in my explanation?
                                                                                    – ujjwal_bansal
                                                                                    Aug 2 '17 at 22:18










                                                                                  • your explanation doesn't add anything to the existing answers, and the poor grammar makes it hard to read. if you're looking for questions to answer, consider browsing the new questions feed.
                                                                                    – c2huc2hu
                                                                                    Aug 3 '17 at 1:46












                                                                                  • The provided answer does answer how to use an assert, but does not answer when to use (or not use) an assert.
                                                                                    – FluxIX
                                                                                    Sep 27 at 3:20








                                                                                  1




                                                                                  1




                                                                                  please format your code properly. also, how does this improve on previous answers?
                                                                                  – c2huc2hu
                                                                                  Jul 26 '17 at 17:31




                                                                                  please format your code properly. also, how does this improve on previous answers?
                                                                                  – c2huc2hu
                                                                                  Jul 26 '17 at 17:31












                                                                                  is there any problem in my explanation?
                                                                                  – ujjwal_bansal
                                                                                  Aug 2 '17 at 22:18




                                                                                  is there any problem in my explanation?
                                                                                  – ujjwal_bansal
                                                                                  Aug 2 '17 at 22:18












                                                                                  your explanation doesn't add anything to the existing answers, and the poor grammar makes it hard to read. if you're looking for questions to answer, consider browsing the new questions feed.
                                                                                  – c2huc2hu
                                                                                  Aug 3 '17 at 1:46






                                                                                  your explanation doesn't add anything to the existing answers, and the poor grammar makes it hard to read. if you're looking for questions to answer, consider browsing the new questions feed.
                                                                                  – c2huc2hu
                                                                                  Aug 3 '17 at 1:46














                                                                                  The provided answer does answer how to use an assert, but does not answer when to use (or not use) an assert.
                                                                                  – FluxIX
                                                                                  Sep 27 at 3:20




                                                                                  The provided answer does answer how to use an assert, but does not answer when to use (or not use) an assert.
                                                                                  – FluxIX
                                                                                  Sep 27 at 3:20





                                                                                  protected by Vamsi Prabhala Jan 23 at 2:57



                                                                                  Thank you for your interest in this question.
                                                                                  Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).



                                                                                  Would you like to answer one of these unanswered questions instead?



                                                                                  Popular posts from this blog

                                                                                  Full-time equivalent

                                                                                  Bicuculline

                                                                                  さくらももこ