- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def foobar():
sev=raw_input("Chislo dvoichnoy sistemy schisleniya: ") # Вводим число с клавиатуры
lsev=list(sev)
n=len(lsev)-1
dec=0
result=""
f=[]
i=1
if sev <= '000000000000000000000000000000000000000000000000000000000000000000': # Проверка если много нулей
print "Chislo vosmerichnoy sistemy schisleniya: ",0
return
if sev.isdigit()== 0:
print "vi vveli nivirnyu stroku!" #Возвращает ошибку, если хотя бы 1 символ - не число
return
if sev.isalpha() == 1: #Проверка на ввод буквенных значений (True=1) значит есть буква
print "vi vveli bukvu, a doljni chisla!"
return
if sev == '':
print "vi nichego ne vveli" #Проверка на пустое поле ввода
return
else:
while n>=0:
if int(lsev[-n-1]) in range(2): # Проверяем, является ли число двоичным
dec+=int(lsev[-n-1])*2**(n) # Переводим из двоичной в десятичную
n-=1
else: # Сообщаем об ошибке ввода и прекращаем выполнение
print "Vvedennoye chislo ne yavlyayetsya dvoichnym!"
return
while dec>0: # Цикл, создающий список из остатков деления на 8 (перевод в восьмеричную систему)
f.append(dec%8)
dec=dec/8
i+=1
z=len(f)-1
while z>=0: # Созданием из списка и печатаем восьмеричное число
result+=unicode(f[z])
z-=1
print "Chislo vosmerichnoy sistemy scisleniya:",result
foobar()