[Tutor] I don't understand why this program is said to be "not defined" when I test it.

Alan Gauld alan.gauld at btinternet.com
Fri Oct 16 19:16:57 EDT 2015


On 16/10/15 23:31, zak nelson wrote:
> I don't understand why this program is said to be "not defined" when I test
> it.

In future please be more precise in describing the problem,
and that means including the full error message in the post.
It contains a lot of useful information.

I'm guessing it doesn't say that the program is not defined
but it says the name buler is not defined? Is that correct?

Notice the spelling?
Now look at your code

> def problem22(aList):
>      length=len(aList)
>      if (length>6):
>          bueler=False
>      else:
>          bueler=True
>          for i in aList:
>              if(i < 0 and i > 6)==False:
>                  bueler=False
>              else:
>                  buler=True
>                  if type(i)!=("integer"):
>                      bueler=False
>                  else:
>                      bueler=True
>      return bueler

But there are a couple of other issues in there too.
Specifically this line:

           if(i < 0 and i > 6)==False:

The bit in parentheses can never be true because i can
never be both <0 and >6 at the same time. So the if
statement is always true and the next line is always
executed.

Also the line

    if type(i)!=("integer"):

Will never be true because the string 'integer' is not a type.
You should use the type name:

    if type(i) != int

or compare to the type of a known value:

    if type(i) != type(5):

In the case of an int the first one would be better.
A final refinement is that for these kinds of comparisons
it probably reads better to use is/is not rather
than the ==/!= symbols, so:

    if type(i) is not int:

HTH

-- 
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos




More information about the Tutor mailing list