Найти - Пользователи
Полная версия: bin2dec
Начало » Python для новичков » bin2dec
1
breidos
Хочу сделать программу, которая переводила бы двоичные числа в десятичные.
y='101010'
i=0
j=0
l=len(y)-1
dl=len(y)
while j<dl:
s=''
s=str(int(y[i])*(pow(2,l)))
i=i+1
j=j+1
l=l-1
print s,
>>>32 0 8 0 2 0
Мне бы еще сложить все полученные числа. Подскажите как сделать.
И еще один вопрос: вот допустим я пишут код в начале как бы есть текст:
print "| ® |
Ну вообщем какая та информация. Можно эту информацию как бы сохранить в отдельном файле, а потом просто в коде как бы сделать ссылку на нее?
Подскажите как реализовать подобные вещи?

И еще 1 вопрос: вот я хочу отловить ошибку если допустим введенное число будет не двоичным, т.е. в введенном числе будут какие либо символы кроме 0 и 1. Чем бы воспользоваться в этом случае?
Ed
1. Самое простое - завести переменную и наращивать сумму в ней.
2. import ?
3. set(sorted(ваша строка)) !=

Теперь мои предложения:
На мой взгляд в вашем коде много лишних переменных. Попробуйте от них избавиться.
Для начала попробуйте цикл while можно заменить на for i in xrange(len(y))
И еще - переводить s в строку не нужно.
sp3
while 1:
y = raw_input('vvedite bin (0 or 1):')
if not y: break
if y.count('1') + y.count('0') != len(y) :
print 'tolko 0 and 1'
continue

dec = 0
for x in range(0,len(y)):
dec += 2**x if y[len(y)-x-1] == '1' else 0

print y, ' -> ',dec
Isem
while True:
y = raw_input('Enter binary number (0 or 1):')
if not y: break
if set(y)-{'0','1'}: continue

dec = sum( 2**i for i, c in enumerate(reversed(y)) if c =='1' )

print( y, '->', dec )
print( 'Check: ', y, '->', int( y, 2 ) )
breidos
Спасибо всем за ответы, помогли. Вот пытаюсь ограничить длину вводимого числа:
if  x.count('1')+x.count('0')!=len(x) or len(x)>(2**32)::
print 'Вы ввели некорректное число.'
если писать
if  x.count('1')+x.count('0')!=len(x):
print 'Вы ввели некорректное число.'
все работает :(
breidos
ПС. Все работает, сам изначально неправильное условие написал )
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB