On Thu, 23 Oct 2014 08:20:32 +0100, Mark Lawrence <breamore...@yahoo.co.uk> wrote:
>On 23/10/2014 02:57, Seymore4Head wrote: >> 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. :( >> > >If you were to read and digest what is written it would help. You're >trying to run IDLE. We're talking the interactive interpreter. If (at >least on Windows) you run a command prompt and then type python<cr> you >should see something like this. > >Python 3.4.2 (v3.4.2:ab2c023a9432, Oct 6 2014, 22:16:31) [MSC v.1600 64 >bit (AMD64)] on win32 >Type "help", "copyright", "credits" or "license" for more information. OK Thanks -- https://mail.python.org/mailman/listinfo/python-list