Restricting the alphabet of a string

N

Nathan Harmston

Hi,

I ve being thinking about playing around with bit strings but use in
some encoding problems I m considering and was trying to decide how to
implement a bit string class. Is there a library out there for doing
basic things with bit strings already is my first question?

I know that I can extend string to bit string, but is there anyway I
can force the alphabet to be restricted to 1's and 0's (or even 1, 0
and -1, as an extension to from trinary strings).

class Binary_String(String):
pass

Many Thanks

Nathan
 
7

7stud

Hi,

I ve being thinking about playing around with bit strings but use in
some encoding problems I m considering and was trying to decide how to
implement a bit string class. Is there a library out there for doing
basic things with bit strings already is my first question?

I know that I can extend string to bit string, but is there anyway I
can force the alphabet to be restricted to 1's and 0's (or even 1, 0
and -1, as an extension to from trinary strings).

class Binary_String(String):
pass

Many Thanks

Nathan

You could do something like this:

class Binary_String(str):
def __init__(self, val):
i = 0
for char in val:
if char not in "-101":
raise ValueError("illegal character at index " +
str(i) + "\nOnly -1,0,1 allowed.")

i+=1
self.val = val


b = Binary_String("1a0101")

--output:--
Traceback (most recent call last):
File "test1.py", line 13, in ?
b = Binary_String("1a100")
File "test1.py", line 6, in __init__
raise ValueError("illegal character at index " + str(i)
ValueError: illegal character at index 1
Only -1,0,1 allowed.
 
P

Paul McGuire

You could do something like this:

class Binary_String(str):
def __init__(self, val):
i = 0
for char in val:
if char not in "-101":
raise ValueError("illegal character at index " +
str(i) + "\nOnly -1,0,1 allowed.")

i+=1
self.val = val

b = Binary_String("1a0101")

--output:--
Traceback (most recent call last):
File "test1.py", line 13, in ?
b = Binary_String("1a100")
File "test1.py", line 6, in __init__
raise ValueError("illegal character at index " + str(i)
ValueError: illegal character at index 1
Only -1,0,1 allowed.- Hide quoted text -

- Show quoted text -

Your character test only needs to check if the character is in "-10",
not "-101". In fact, this is a little misleading, since it appears to
check for "-1" but is really only checking for "-"s and "1"s (and "0"s
too, of course).

This code accepts "1-0101" also, but what is -0?

-- Paul


-- Paul
 
J

John Machin

Hi,

I ve being thinking about playing around with bit strings but use in
some encoding problems I m considering and was trying to decide how to
implement a bit string class. Is there a library out there for doing
basic things with bit strings already is my first question?

I know that I can extend string to bit string, but is there anyway I
can force the alphabet to be restricted to 1's and 0's (or even 1, 0
and -1, as an extension to from trinary strings).

class Binary_String(String):
pass

See if you can pick which line below is impractically different to the
others:

binary: 0, 1
"trinary": -1, 0, 1
octal: 0, 1, 2, 3, 4, 5, 6, 7
decimal: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

HTH,
John
 
N

Nathan Harmston

Thanks,

I might just move my trinary string (if I get that far) to be encoded
as 0, 1, 2, thanks for your help.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,434
Messages
2,571,688
Members
48,796
Latest member
Greg L.

Latest Threads

Top