elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: [1]
1  Programación / Scripting / Re: Necesito pistas por favor. Python en: 24 Octubre 2015, 16:48 pm
¿es de matemáticas o de python el "profesor"? porque si es de matemáticas que mal método usa para la conversión, lo más normal o fácil es solo dividir y si es de python ponele que no quiera que uses la función oct(), pero podés usar el modulo math y alguna de sus funciones o salvo el int() ¿quiere todo a base de lógica? tipo antigua escuela que no había tantos modulos


Edito: ni siquiera leí bien el tipo de conversión! Error mío!

por perro que soy (y porque me aburre leer los post) al poner mal la info que conteste recién, hice un código más que simple, con un while y un if y variables indicativas.
Código
  1. #-*- coding:utf -8 -*-
  2.  
  3. numero=input('Ingrese un numero: ')
  4. invertido= numero[::-1]
  5. posibles='01234567'
  6. largo = len(numero)
  7. inicio=0
  8. indice=0
  9. elevado=0
  10. convertido=0
  11. while inicio < largo:
  12.    cada_numero=(invertido[inicio])    
  13.    inicio+=1
  14.    if cada_numero in posibles:
  15.        convertir=int(invertido[indice])*8 ** elevado
  16.        indice+=1
  17.        elevado+=1
  18.        convertido+=convertir
  19.  
  20.    else:
  21.        print("El numero {} no corresponde a un octal".format(cada_numero))
  22.  
  23. print ("El número {} octal es en decimal {} ".format (numero,convertido))
  24.  
._. El profesor es de python y quería que el programa resuelva a la antigua tal como lo acaba de hacer usted. Agradezco su ayuda y sería tonto yo, si no aprovecho lo que me acaba de regalar  :laugh:, no obstante, veo para mi una fuente de conocimientos que aun no había podido aplicar correctamente.
Gracias nuevamente.
2  Programación / Scripting / Re: Necesito pistas por favor. Python en: 23 Octubre 2015, 17:06 pm
mira las opciones que tienes con las funciones oct() e int(), son las que sirven para pasar de octal a decimal y viceversa. checa tambien hex() y bin().... En el interprete de python help(oct) por ejemplo.
Si entiendo mas o menos como usar esas funciones pero mi bendito profe quiere que el procedimiento sea multiplicando y elevando :/
Gracias.



con tu código hay un montón de errores... fuera de la solución de kr.chacacreker que es la más practica

en tú código usas "input" pero eso captura un numero, no un string como tú esperas, para eso tienes que usar raw_input

el p es medio absurdo

if n in p tambien carece de sentido, no discutamos el while...


como sería lo más "practico"

n captura por raw input... luego inviertes n usando [::-1]

es decir
Código
  1. n = n[::-1]

asignas a la potencia que vas a usar inicialmente 0 no 2, a demás necesitas una variable que vaya acumulando el resultado

con todo esto simplemente usando un for puedes iterar entre los elementos de n

Código
  1. for numero in n:

"numero" contendrá el numero trabajado... de allí en más es que hagas el cálculo




Lanzada la pregunta le dije al profe que hay un "for" necesario y me dijo que NO, que con un if bastaba :(
Pero con la ayuda que ya me has brindado, volveré a intentarlo.
Gracias.





coincido con ambos comentarios, salvo lo del raw input(por suerte ya no se usa más en las versiones de 3x), que por el print supongo es el que estas usando, pero es cierto que input toma strings, para que sea integer sería asi:
Código
  1. n=int(input('Ingrese un número: '))
  2.  
o
Código
  1. n=input('Ingrese un número: ')
  2. n=int(n)
  3.  
y es preferible usar las funciones ya predefinidas como dice kr.chacacreker
Efectivamente, ahora usamos python 3.5 XD
Pero diferencia es mínima :)
Gracias.

Mod: No hagas doble post, usa el botón modificar
3  Programación / Scripting / Necesito pistas por favor. Python en: 21 Octubre 2015, 16:53 pm
Pasar de un numero octal a decimal, nose como hacer que funcione con un número mayor a una cifra.

Código
  1. n=input('Ingrese un número: ')
  2. p='01234567'
  3.  
  4. l=len(n)
  5. q=1
  6. z=2
  7. n1=n
  8. if n in p:
  9.    while (q<=l):
  10.        m=((n[-q]))
  11.        m=int(m)
  12.        o=8**z
  13.        y=(m*o)  
  14.  
  15.  
  16.        print (n,y)
  17.        z+=1
  18.        q+=1
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines