On 12/09/12 21:20, Aaron Pilgrim wrote:
Hello,
I am trying to write a small program that converts ascii to binary.
Can you explain what you mean by "ascii to binary"? Any of these
could be described that way:
'hello world'
=> '68656c6c6f20776f726c64'
=> 'begin 666 <data>\n+:&5L;&\\@=V]R;&0 \n \nend\n'
=> 'aGVsbG8gd29ybGQ=\n'
=> 'x\x9c\xcbH\xcd\xc9\xc9W(\xcf/\xcaI\x01\x00\x1a\x0b\x04]'
or many others.
For the record, those are:
* raw hex string
* uuencode
* base64
* zip compressed[1]
Reading ahead, I think you want the raw hex string, correct?
I tried using the python reference library section 18.8 but had
trouble understanding how to make it work.
Here is the code I am currently trying to use:
def main():
import binascii
As a general rule, imports should go in the top-level of the module,
not inside the body of a function. There are exceptions to that
rule, but in this case there is no reason not to follow it. So:
import binascii
def main():
# body of main without the import
myWord = input("Enter the word to convert..")
#convert text to ascii
for ch in myWord:
print(ord(ch))
#convert ascii to binary
binascii.a2b_uu(ord(ch))
There is no need to process the string one character at a time.
Try this instead:
import binascii
def main():
line = input("Enter a line of text to convert: ")
print(binascii.hexlify(line))
If you want to do it one character at a time, there's no need
for binhex:
def main():
line = input("Enter a line of text to convert: ")
for c in line:
print("Char: '%c' Ord: %3d (decimal) %x (hex)" % (c, ord(c), ord(c)))
[1] It is ironic that zip compression on a short string leads
to a *longer* string
--
Steven
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor