patternpythonMinor
Python Reverse the binary equivalent of input and output the integer equivalent of the reverse binary
Viewed 0 times
theequivalentreverseoutputinputbinarypythonandinteger
Problem
Am supposed to capture user input as an integer, convert to a binary, reverse the binary equivalent and convert it to an integer.Am getting the right output but someone says the solution is wrong. Where is the problem?
x = 0
while True:
try:
x = int(raw_input('input a decimal number \t'))
if x in xrange(1,1000000001):
y = bin(x)
rev = y[2:]
print("the reverse binary soln for the above is %d") %(int('0b'+rev[::-1],2))
break
except ValueError:
print("Please input an integer, that's not an integer")
continueSolution
x = 0There is no point in doing this. You just replace it anyways
while True:
try:
x = int(raw_input('input a decimal number \t'))
if x in xrange(1,1000000001):Probably better to use
if 1 <= x <= 100000000001: although I'm really not sure why you are doing this check. Also, you should probably explain to the user that you've reject the number.y = bin(x)
rev = y[2:]I'd use
reversed = bin(x)[:1::-1] rather then splitting it out across the tree lines.print("the reverse binary soln for the above is %d") %(int('0b'+rev[::-1],2))I'd convert the number before the print to seperate output from the actual math.
break
except ValueError:
print("Please input an integer, that's not an integer")
continueThis continue does nothing.
Code Snippets
while True:
try:
x = int(raw_input('input a decimal number \t'))
if x in xrange(1,1000000001):y = bin(x)
rev = y[2:]print("the reverse binary soln for the above is %d") %(int('0b'+rev[::-1],2))break
except ValueError:
print("Please input an integer, that's not an integer")
continueContext
StackExchange Code Review Q#20965, answer score: 5
Revisions (0)
No revisions yet.