[Tutor] Module Review
dn
PythonList at DancesWithMice.info
Sat Apr 15 13:46:50 EDT 2023
On 16/04/2023 03.28, Thurman Hill wrote:
> number = 2 # Initialize the variable
> while number < 13: # Complete the while loop condition
> print(number, end=" ")
> number +2 # Increment the variable
>
> # Should print 2 4 6 8 10 12
>
> this is what i have now but i think the assessment may have messed up
> its saying it takes more than 5 seconds
> to process so i need a simpler solution.
1 Please check how the email-client works, to ensure reply to list (cf
one person only)
2 Did you copy-paste the code from the script? As above, it won't
work/has a syntax error.
3 Will https://www.codespeedy.com/augmented-assignment-in-python/ help?
> On Wed, Apr 12, 2023 at 8:40 PM dn via Tutor <tutor at python.org
> <mailto:tutor at python.org>> wrote:
>
> Hi,
>
> Am a little confused by the title - where's the (Python) module?
> but, let's get on with the question...
>
>
> On 13/04/2023 04.48, Thurman Hill wrote:
> > I’m getting a type error when I put this into the blanks… Please
> help I’ve been stuck for weeks…
> >
> > Fill in the blanks to print the even numbers from 2 to 12.
> >
> > number = range(2,12+1,2) # Initialize the variable
> > while number > 0: # Complete the while loop condition
> > print(number, end=" ")
> > number # Increment the variable
> >
> > # Should print 2 4 6 8 10 12
> >
> > Error:
> > Error on line 2:
> > while number > 0: # Complete the while loop condition
> > TypeError: '>' not supported between instances of 'range' and 'int'
>
> The experimentation that will help with this sort of problem can be
> most-easily carried-out in the Python REPL - open a terminal*, start
> Python, and be able to enter one line of code at a time and have Python
> immediately execute it (or tell you where things went wrong).
>
> * please 'translate' if you are an MS-Win user
>
> The error message says it all - of course, if you don't know it all,
> then... Yes, they can be quite opaque!
>
> "TypeError...'range' and 'int'
>
> So, what is a type-error? It comes when Python is asked to do something
> with two operands of different types that it just can't do, ie
> trying to
> add apples to oranges, as the saying goes.
>
> In this case, the two types are: 'range' and 'int'. The range comes
> from
> line 1, and "int" is short for "integer". Thus, we're talking about
> "number" and "0" (resp).
>
> In the REPL, if you type the first line, you can then investigate the
> result. If you try:
>
> print( number )
> -> range(2, 13, 2)
>
> it appears to tell you what you already know - and exactly what you
> told
> Python you wanted - and the "range()" part tells you that it is both of
> type "range" and not an integer.
>
> You can confirm this with:
>
> print( type( number ) )
> -> <class 'range'>
>
>
> In fact, the "range-object" (called "number") is a "collection" of
> integers: the "2 4 6 8 10 12" you expect.
>
> However, the code (in the while-condition) is trying to treat it as if
> it were a single integer.
>
> You can read-up about range-objects, but the full-fat description is a
> bit complicated for beginners.
>
> Have you looked at lists and for-loops? If not, now is the time to
> do-so! Lists are THE basic "collection" and are "built-in" to Python!
> For-loops are designed to process each element in a collection, one
> after the other. Accordingly, are a much better tool than the while
> (etc) loop (which won't work anyway in its current form).
>
> At this stage in your Python-learning, you can get-away-with treating
> the "number" range, as if it were a list.
>
> To double-check the above, try:
>
> print( list( number ) )
> -> [2, 4, 6, 8, 10, 12]
>
> What's happening here is that the range (number) is being turned into a
> list, and then the list of integers printed. Exactly what you want?
>
>
> Once you've had time to read and think about that, it's time to go back
> to the REPL and try-out these new ideas...
>
>
> Once you have things working in the REPL, it is relatively easy to
> copy-paste (the good bits!) into a code-file ("script")...
>
>
> NB I (for one) am having trouble imagining that "number" describes a
> list/range of integers. If it were called "even_numbers" for example
> (note the plural - because it is a collection of multiple integers),
> will such also help you get your head around the ideas?
>
>
> Come back to us once you've had a chance to experiment...
>
> --
> Regards,
> =dn
> _______________________________________________
> Tutor maillist - Tutor at python.org <mailto:Tutor at python.org>
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
> <https://mail.python.org/mailman/listinfo/tutor>
>
--
Regards,
=dn
More information about the Tutor
mailing list