All pastes #1363941 Raw Edit

Stuff

public python v1 · immutable
#1363941 ·published 2009-03-18 01:20 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 i#if (len(sys.argv) > 1):#    print "Abriendo "+sys.argv[1]#    n = raw_input()#    b = input()#    b_conv = input()#else:#    print "indica el nombre del archivo"#n = raw_input("Ingresa el número a convertir ")#b = input("Ingresa la base del número original ")#b_conv = input("Ingresa la base del número al cual desea convertir ")if len(sys.argv) == 0:    print "No hay archivo para leer"file = open(sys.argv[1],'r')lista_palabra = []for linea in file.readlines():    if linea != '\n':        for palabra in linea.split(' '):            lista_palabra.append(palabra)        largo_lista_palabra = len(lista_palabra)        for i in range(0,largo_lista_palabra):            n = lista_palabra[i]            b_str = lista_palabra[i+1]            b_conv_str = lista_palabra[i+2]            str_num = str(n)            num = list(str_num)            largo_num = len(num)            lista_num = []            for i in range(0,largo_num):                dig = num[i]                dig_verifica = verifica_digito(dig)                dig_str = str(dig_verifica)                lista_num.append(dig_str)            b = int(b_str)            b_conv = int(b_conv_str)            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"