By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
464,776 Members | 1,190 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 464,776 IT Pros & Developers. It's quick & easy.

shorten this: if char in "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz":

P: n/a
if char in "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz":

cant i write something like:
if char in "[A-Za-z]":

?
Jun 27 '08 #1
Share this Question
Share on Google+
9 Replies

P: n/a
cirfu wrote:
if char in "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz":

cant i write something like:
if char in "[A-Za-z]":
Either of the following should do what you want, without resorting to
regular expressions:

import string
if char in string.letters:

or

if char.isalpha():

--
Brian

Jun 27 '08 #2

P: n/a
On 24 juin, 20:32, cirfu <circularf...@yahoo.sewrote:
if char in "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz":

cant i write something like:
if char in "[A-Za-z]":
Nope. But there are other solutions. Here are two:

# 1
import string

if char in string.letters:
print "yay"

# 2
import re
exp = re.compile(r'[A-Za-z]')

if exp.match(char):
print "yay"

Jun 27 '08 #3

P: n/a
On Tue, Jun 24, 2008 at 3:47 PM, br*****************@gmail.com
<br*****************@gmail.comwrote:
On 24 juin, 20:32, cirfu <circularf...@yahoo.sewrote:
>if char in "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz":

cant i write something like:
if char in "[A-Za-z]":

Nope. But there are other solutions. Here are two:

# 1
import string

if char in string.letters:
print "yay"

# 2
import re
exp = re.compile(r'[A-Za-z]')

if exp.match(char):
print "yay"
Let me post another one, and longer:

if ord(somechar) in range(ord('A'), ord('Z') + 1) + range(ord('a'),
ord('z') + 1):
...
--
-- Guilherme H. Polo Goncalves
Jun 27 '08 #4

P: n/a
another way:

import string

if char in string.ascii_letters:
print('hello buddy!')

[]'s
- Walter
Jun 27 '08 #5

P: n/a
On Jun 24, 7:59*pm, "Guilherme Polo" <ggp...@gmail.comwrote:
On Tue, Jun 24, 2008 at 3:47 PM, bruno.desthuilli...@gmail.com

<bruno.desthuilli...@gmail.comwrote:
On 24 juin, 20:32, cirfu <circularf...@yahoo.sewrote:
if char in "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz":
cant i write something like:
if char in "[A-Za-z]":
Nope. But there are other solutions. Here are two:
# 1
import string
if char in string.letters:
* print "yay"
# 2
import re
exp = re.compile(r'[A-Za-z]')
if exp.match(char):
* print "yay"

Let me post another one, and longer:

if ord(somechar) in range(ord('A'), ord('Z') + 1) + range(ord('a'),
ord('z') + 1):
* * ...
And another:

if 'A' <= somechar <= 'Z' or 'a' <= somechar <= 'z':
...
Jun 27 '08 #6

P: n/a
On Jun 25, 4:32 am, cirfu <circularf...@yahoo.sewrote:
if char in "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz":

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":
Jun 27 '08 #7

P: n/a
On Jun 24, 5:36 pm, John Machin <sjmac...@lexicon.netwrote:
On Jun 25, 4:32 am, cirfu <circularf...@yahoo.sewrote:
if char in "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz":
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.

Jun 27 '08 #8

P: n/a
On Jun 25, 9:06 am, s0s...@gmail.com wrote:
On Jun 24, 5:36 pm, John Machin <sjmac...@lexicon.netwrote:
On Jun 25, 4:32 am, cirfu <circularf...@yahoo.sewrote:
if char in "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz":
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?
Unless there is a Python implementation using EBCDIC, different
underlying character set that differs from ASCII in A..Z and a..z is
*not* a practical concern.
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.
You should be asking the OP what he really wants ... precisely those
letters? alphabetic, in what locale?
Jun 27 '08 #9

P: n/a
Guilherme Polo <gg****@gmail.comwrote:
Let me post another one, and longer:

if ord(somechar) in range(ord('A'), ord('Z') + 1) + range(ord('a'),
ord('z') + 1):
...
That is very inefficient! Every time it is run it creates two lists
then joins them then throws the whole lot away!

--
Nick Craig-Wood <ni**@craig-wood.com-- http://www.craig-wood.com/nick
Jun 27 '08 #10

This discussion thread is closed

Replies have been disabled for this discussion.