On 01/11/2013 04:51 PM, Ghadir Ghasemi wrote: > Hi, I made a program called binary/denary convertor. Can anyone tell me about > how I could stop the user entering a binary number with more than 8 numbers > or 8 bit by repeating the question over and over until they do enter a > correct binary number( 8-bit or less) > Here is the code. I started off by entering 'len' function. > > def add_binary_numbers(num1, num2): > return num1 + num2 > > num1 = int(input('please enter the first 8 bit binary number: '),2) > if len(num1) > 8: > print("please enter an 8 bit binary number") > return int(num1,2) > num2 = int(input('please enter the second 8 bit binary number: '),2) > result = add_binary_numbers(num1, num2) > print('the result is', bin(result)[2:]) > >
1. Specify the Python version. I'll assume version 3.3 2. Show whatever error you got. I'd guess something like the following: File "<stdin>", line 1, in <module> TypeError: object of type 'int' has no len() The len() function operates on strings, lists, and other sequences and mappings. But although you had a string at first, you've already converted it to an int, which has no len() method. It might be simplest to compare the value num to 0 and 255. Alternatively, you could compare it before doing the int function. Since you're doing it twice, it probably makes sense to do this in a function. Write a function that repeatedly asks the user till it gets a value in the right range. The other error that jumps out is that you have a return statement at top-level, while the statement only makes sense inside a function. That problem goes away once you put the input logic inside a function. -- DaveA _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor