All pastes #1367373 Raw Edit

Anonymous

public python v1 · immutable
#1367373 ·published 2009-03-21 18:43 UTC
rendered paste body
#!/usr/bin/env python# -*- coding: utf-8 -*-import string,sysdef pot(base,exponente):    if exponente == 0:        return 1;    else:        return (base*pot(base,exponente-1));def conv_base_10(num,base):    largo = len(num)    suma = 0    for i in range(0,largo):        dig_char = num[i]        dig = int(dig_char)        numero = dig * pot(base,largo-(i+1))        suma += numero    return sumadef conv_otra_base(numero,base):    lista_num = []    lista = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V']    largo = len(lista)        while numero > 0:        dig = numero % base        for j in range(0,largo):            if dig == j:                lista_num.append(str(lista[j]))            else:                pass                    numero /= base            lista_nueva = lista_num[::-1]        num_convert = ''.join([str(c) for c in lista_nueva])    return num_convert            def verifica_digito(digito):    lista = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V']    largo_lista = len(lista)    for i in range(0,largo_lista):        if digito == lista[i]:            break        else:            pass            return iif len(sys.argv) == 0:    print "No hay archivo para leer"file = open(sys.argv[1],'r')datos = file.read()lista_temp = string.split(datos,'\n')list_anid = map(lambda e: string.split(e, ' '),lista_temp)list_anid.pop() #Para eliminar el espacio en blanco que queda al finalnumero = []base1 = []base2 = []for n,b1,b2 in list_anid:    numero.append(n)    base1.append(b1)    base2.append(b2)for i in range(0,len(numero)):    str_num = str(numero[i])    num = list(str_num.upper())    largo_num = len(num)    lista_num = []    for c in range(0,largo_num):        dig = num[c]        dig_verifica = verifica_digito(dig)        dig_str = str(dig_verifica)        lista_num.append(dig_str)    for j in range(0,len(base1)):        b = int(base1[j])        for k in range(0,len(base2)):            b_conv = int(base2[k])            if b_conv == 10:                print conv_base_10(lista_num,b)            elif b_conv != 10 and b_conv >= 2 and b_conv <=32:                numero = conv_base_10(lista_num,b)                print conv_otra_base(numero,b_conv)            else:                print "No es posible hacer la conversión"