On 10/24/2014 09:37 AM, Seymore4Head wrote:
<snip>

import string
Not needed, delete it.

def nametonumber(name):
     lst=[]
     nx=[]
     digit=[]
Not needed. You create digit as an empty list, them immediately follow by assigning a string to it (NOT a _list_ of characters, but an actual string.)

     digit="".join(str(i) for i in range(10))
digit is now the _string_ "0123456789". Actually, a direct assignment here would be easier and shorter;
        digit = "0123456789"

     for x in name:
         lst.append(x)
lst is now a list of the characters in name.  That works, but you can do the 
same thing with:
       lst = list(name)

     for y in (lst):
Parentheses not needed.

         if y in lst(range(1,10)):
This is the line the traceback is referring to. lst is a list, but the parentheses tell Python you are trying to call it as a function. That is what the "TypeError: 'list' object is not callable" means. Also it seems you are now trying to make a list of the digits 1-9 without the zero. Is this what you want? I don't think so, but if that IS what you want you can do it easier with slicing (look it up, VERY useful): (Remember, digit is already a string of the ten digits, with zero as the first character.)
        if y in digit[1:]:
Otherwise if you do want zero included you simply need:
        if y in digit:

         #if y in "1234567890":
         #if y.isdigit():
         #if y in digit:
All of those should work, with the zero.

         #if y in string.digits:
Ok (I think?), but the string module is effectively obsolete -- most of its capabilities have been replaced with newer, better string methods. It is RARELY useful. I have never used it myself so don't know too much about it. It is definitely not needed here, and is why I suggested deleting the import.

             nx.append(y)
> ...

     -=- Larry -=-

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

Reply via email to