I am out of trial and error again Lists
orgnut at yahoo.com
Sat Oct 25 08:04:00 CEST 2014
On 10/24/2014 09:37 AM, Seymore4Head wrote:
> import string
Not needed, delete it.
> def nametonumber(name):
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
digit = "0123456789"
> for x in name:
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.
-=- Larry -=-
More information about the Python-list