On Thu, 23 Oct 2014 09:23:29 -0400, Dennis Lee Bieber <wlfr...@ix.netcom.com> wrote:
>On Thu, 23 Oct 2014 00:10:28 -0700, Larry Hudson ><org...@yahoo.com.dmarc.invalid> declaimed the following: > > >>I know you are trying to explore lists here, but I found myself somewhat >>intrigued with the >>problem itself, so I wrote a different version. This version does not use >>lists but only >>strings. I'm just presenting it as-is to let you try to follow the logic, >>but if you ask, I'll >>explain it in detail. It turns your long sequence of if's essentially into a >>single line -- >>unfortunately 's' and 'z' have to be handled as special-cases, which turns >>that single line into >>a six-line if/elif/else set. You might consider this line 'tricky', but I'll >>just say it's just >>looking at the problem from a different viewpoint. BTW, this version accepts >>upper-case as well >>as lower-case. isdigit() and isalpha() are standard string methods. >> > ><SNIP> > > This is another example where changing data structures can simplify >things a lot... > >-=-=-=-=-=-=- >keys = { "a" : "2", "b" : "2", "c" : "2", # 1 is not assigned > "d" : "3", "e" : "3", "f" : "3", > "g" : "4", "h" : "4", "i" : "4", > "j" : "5", "k" : "5", "l" : "5", > "m" : "6", "n" : "6", "o" : "6", > "p" : "7", "q" : "7", "r" : "7", "s" : "7", > "t" : "8", "u" : "8", "v" : "8", > "w" : "9", "x" : "9", "y" : "9", "z" : "9" } > >def textToNumber(inp): > outp = [] > for c in inp.lower(): > outp.append(keys.get(c, c)) > return "".join(outp) > >if __name__ == "__main__": > while True: > #NOTE: Python 2.7! > aNumStr = raw_input("\nEnter Phone Number String: ") > if not aNumStr: break > print "Converted to all numbers: %s" % textToNumber(aNumStr) > I'll have a look at this one too. I haven't used a dictionary yet. Thanks >-=-=-=-=-=-=- >Microsoft Windows [Version 6.1.7601] >Copyright (c) 2009 Microsoft Corporation. All rights reserved. > >C:\Users\Wulfraed\Documents\Python Progs>Phone.py > >Enter Phone Number String: 1-800-getcharter >Converted to all numbers: 1-800-4382427837 > >Enter Phone Number String: 1-800-leo laporte >Converted to all numbers: 1-800-536 5276783 > >Enter Phone Number String: 1 800 callaprogrammer >Converted to all numbers: 1 800 225527764726637 > >Enter Phone Number String: +1(800)Leo-Laporte >Converted to all numbers: +1(800)536-5276783 > >Enter Phone Number String: > >C:\Users\Wulfraed\Documents\Python Progs> -- https://mail.python.org/mailman/listinfo/python-list