On Wed, 22 Oct 2014 22:43:14 +0000 (UTC), Denis McMahon
<denismfmcma...@gmail.com> wrote:

>On Wed, 22 Oct 2014 16:30:37 -0400, Seymore4Head wrote:
>
>> def nametonumber(name):
>>     lst=[""]
>>     for x,y in enumerate (name):
>>         lst=lst.append(y)
>>     print (lst)
>>     return (lst)
>> a=["1-800-getcharter"]
>> print (nametonumber(a))#18004382427837
>>     
>>     
>> The syntax for when to use a () and when to use [] still throws me a
>> curve.
>> 
>> For now, I am trying to end up with a list that has each character in
>> "a" as a single item.
>> 
>> I get:
>> None None
>
>First of all, an empty list is created with:
>
>emptylist = []
>
>whereas
>
>x = [""]
>
>creates a list containing one element, that element being an empty 
>string. Not the same thing!
>
>Did you try stepping through your code line by line in the interpreter to 
>see what happened at each step?
>
>note that append is a method of a list object, it has no return value, 
>the original list is modified in place.
>
>>>> l = ["a","b","c"]   # declare a list
>>>> l.append( "d" )     # use the append method
>>>> l                   # show the list
>['a', 'b', 'c', 'd']
>
>So your line:
>
>lst = lst.append(y)
>
>should be:
>
>lst.append(y)
>
>Finally, did you really intend to pass a single element list into the 
>function, or did you intend to pass a string into the function?
>
Those string errors were desperate attempts to fix the "append" error
I didn't understand.  

>There is a difference between:
>
>a=["1-800-getcharter"] 
>
>which creates a single element list, the one element is the string "1-800-
>getcharter", and:
>
>a="1-800-getcharter"
>
>which creates a string variable with the value "1-800-getcharter"
>
>when you pass a list containing a string to your function, enumerate will 
>look at each list element, so if your list contains one string, enumerate 
>will return the pair 0, the_string, so the string gets appended to your 
>empty list as a single item.
>
>The code I think you wanted to write is as follows:
>
>def nametonumber(name):
>    lst=[]
>    for x,y in enumerate(name):
>        lst.append(y)
>    return lst
>
>a="1-800-getcharter"
>print ( nametonumber(a) )
>
>I suggests that you study very carefully the differences between this and 
>your original code until you understand the reason and effect of every 
>difference, as only by doing so will you discover the misconceptions 
>which you seem to be operating under, and until you can get some of those 
>straightened out, you're not going to make a lot of progress.
>
>Try running the original code and my suggested alternative line by line 
>in the interpreter, and examining the state of relevant variables after 
>each line of execution.
>
>Here's a code file with both your original code and my modified code with 
>comprehensive print statements inserted for debugging. By referencing the 
>debugging statements back to the code, you should be able to determine 
>exactly where in your original code the value of "none" comes from.
>
>### code starts
>
>print ( "original code" )
>
>def nametonumber(name):
>    print ("a) name =", name)
>    lst=[""]
>    print ( "b) lst = ", lst )
>    for x,y in enumerate (name):
>        print ( "c) x = ", x, "; y = ", y, "; lst = ", lst )
>        lst=lst.append(y)
>        print ( "d) lst = ", lst )
>    print (lst)
>    return (lst)
>
>a=["1-800-getcharter"]
>print ( "e) a = ", a )
>print (nametonumber(a))
>
>print ( "modified code" )
>
>def nametonumber2(name):
>    print ("f) name =", name)
>    lst=[]
>    print ( "g) lst = ", lst )
>    for x,y in enumerate(name):
>        print ( "h) x = ", x, "; y = ", y, "; lst = ", lst )
>        lst.append(y)
>        print ( "i) lst = ", lst )
>    return lst
>
>a="1-800-getcharter"
>print ( "j) a = ", a )
>print ( nametonumber2(a) )
>
>### code ends
>
>If you run the above code exactly as it is, you should see in the output 
>how the enumeration reacts according to the different data it is given to 
>enumerate, and also where lst is assigned the value none.
>
>As I said above, getting your head round why this is happening is 
>essential, and I really do suggest that you slow down and try and 
>understand these basic concepts, because at the moment it seems you are 
>striving to attempt more and more complicated things without 
>understanding the basics upon which they are constructed, and like many 
>other similar newsgroups, it's been my experience in the past that there 
>is limited tolerance here for people who repeatedly make the same basic 
>errors without learning from them.

Thanks a lot for all your suggestions.  I haven't learned to use the
interpreter yet.  I do plan on learning to use it.
The problem with that at the moment is that I have enrolled in an
online computer class.  They use Codeskulptor.
Codeskulptor code is not compatible to standard Python.  When I finish
the class I do plan on using Python 3 and will learn the Python 3
stuff.
Codeskulptor has a Viz mode.  I have tried using it, but so far it is
still pretty confusing.  I will try to use it more.

I have saved your message and will crack the interpreter on it soon.

My trouble is trying to search for practice problems that are not too
hard yet.

Thanks again

-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to