On 2017-02-20 19:43, Ganesh Pal wrote:
On Feb 21, 2017 12:17 AM, "Rhodri James" <rho...@kynesim.co.uk> wrote:
On 20/02/17 17:55, Ganesh Pal wrote:
1. The only difference between both the programs the difference are just
the below lines.
newdata = '64000101057804'.decode('hex')
and
newdata = ""
newdata = '64000101057804'
newdata.decode('hex')
What is happening here and how do I fix this in program 2 ? for my eyes
there doesn't look any difference .
Python strings are immutable; methods like decode() create a brand new
string for you. What your program 2 version does is to name the string of
hex digits "newdata", decode it as hex into a new string and then throw
that new string away. Your program 1 version by contrast decodes the
string of digits as hex and then names is "newdata", throwing the original
string of digits away
Thanks for the reply James.
How can I make my program 2 look like program 1 , any hacks ? because I
get newdata value( as a hx return value Of type string )from a function.
In this:
newdata.decode('hex')
The .decode method doesn't change newdata in-place, it _returns_ the result.
You're doing anything with that result. You're not binding (assigning)
it to a name. You're not passing it into a function. You're not doing
_anything_ with it. You're just letting it be discarded, thrown away.
You could ask the user for the hex string:
hex_string = raw_input('Enter the hex string: ')
and then decode it:
newdata = hex_string.decode('hex')
--
https://mail.python.org/mailman/listinfo/python-list