shorten this: if char in "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz":

s0suk3 at gmail.com s0suk3 at gmail.com
Wed Jun 25 01:06:43 CEST 2008


On Jun 24, 5:36 pm, John Machin <sjmac... at lexicon.net> wrote:
> On Jun 25, 4:32 am, cirfu <circularf... at yahoo.se> wrote:
>
> > if char in "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz":
>
> > cant i write something like:
> > if char in "[A-Za-z]":
>
> You can write that if you want to, but it's equivalent to
>    if char in "zaZa]-[":
> i.e. it doesn't do what you want.
>
> This gives the same reuslt as your original code, unaffected by
> locale:
>
> if "A" <= char <= "Z" or "a" <= char <= "z":

But doesn't that rely on the underlying character set? It's like
performing math on C char's (maybe that's what the interpreter does
internally?). If that's the case, using 'char.isalpha()' or 'char in
string.letters' or regex's would be better.




More information about the Python-list mailing list