On Wed, 22 Oct 2014 21:35:19 -0400, Seymore4Head <Seymore4Head@Hotmail.invalid> wrote:
>On Thu, 23 Oct 2014 02:31:57 +0100, MRAB <pyt...@mrabarnett.plus.com> >wrote: > >>On 2014-10-23 01:10, Seymore4Head wrote: >>> On Thu, 23 Oct 2014 11:05:08 +1100, Steven D'Aprano >>> <steve+comp.lang.pyt...@pearwood.info> wrote: >>> >>>>Seymore4Head wrote: >>>> >>>>> Those string errors were desperate attempts to fix the "append" error >>>>> I didn't understand. >>>> >>>>Ah, the good ol' "make random changes to the code until the error goes away" >>>>technique. You know that it never works, right? >>>> >>>>Start by *reading the error message*, assuming you're getting an error >>>>message. I'm the first person to admit that Python's error messages are not >>>>always as clear as they should be, especially syntax errors, but still >>>>there is a lot of information that can be gleamed from most error messages. >>>>Take this attempt to use append: >>>> >>>>py> mylist.append(23) >>>>Traceback (most recent call last): >>>> File "<stdin>", line 1, in <module> >>>>NameError: name 'mylist' is not defined >>>> >>>>That tells me that I have forgotten to define a variable mylist. So I fix >>>>that: >>>> >>>>py> mylist = 23 >>>>py> mylist.append(23) >>>>Traceback (most recent call last): >>>> File "<stdin>", line 1, in <module> >>>>AttributeError: 'int' object has no attribute 'append' >>>> >>>> >>>>That tells me that I can't append to a int. After googling for "Python >>>>append" I learn that I can append to a list, so I try again: >>>> >>>>py> mylist = [] >>>>py> mylist.append(23) >>>>py> print(mylist) >>>>[23] >>>> >>>> >>>>Success! >>>> >>>>If you are familiar with other programming languages, it might help to think >>>>of append() as being like a procedure in Pascal, for example. You call >>>>append() with an argument, but don't expect a return result. >>>> >>>>Technically, *all* functions and methods in Python return something, even if >>>>just the special value None, which can lead to "Gotchas!" like this one: >>>> >>>>py> mylist = mylist.append(42) # Don't do this! >>>>py> print(mylist) # I expect [23, 42] but get None instead. >>>>None >>>> >>>>Oops. One of the small annoyances of Python is that there is no way to tell >>>>ahead of time, except by reading the documentation, whether something is a >>>>proper function that returns a useful value, or a procedure-like function >>>>that returns None. That's just something you have to learn. >>>> >>>>The interactive interpreter is your friend. Learn to experiment at the >>>>interactive interpreter -- you do know how to do that, don't you? If not, >>>>ask. At the interactive interpreter, if a function or method returns a >>>>value, it will be printed, *except for None*. So a function that doesn't >>>>print anything might be procedure-like, and one which does print something >>>>might not be: >>>> >>>>py> mylist = [1, 5, 2, 6, 4, 3] >>>>py> sorted(mylist) # proper function returns a value >>>>[1, 2, 3, 4, 5, 6] >>>>py> mylist.sort() # procedure-like function returns None >>>>py> print(mylist) # and modifies the list in place >>>>[1, 2, 3, 4, 5, 6] >>> >>> I am going to get around to learning the interpreter soon. >>> >>Why wait? >> >>You're trying to learn the language _now_, and checking things >>interactively will help you. > >Because most of the practice I am getting is not using Python. I use >Codeskulptor. > >OK.........Now is as good a time as ever. > >Thanks Now I remember why...........nothing happens http://i.imgur.com/MIRpqzY.jpg If I click on the shell window, I can get the grayed options to show up for one turn. I hit step and everything goes gray again. http://i.imgur.com/NtMdmU1.jpg Not a very fruitful exercise. :( -- https://mail.python.org/mailman/listinfo/python-list