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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Python] Pasar de decimal a Octal.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python] Pasar de decimal a Octal.  (Leído 13,936 veces)
Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
[Python] Pasar de decimal a Octal.
« en: 2 Noviembre 2010, 18:15 pm »

Debo lograr con for in pasar un número que me pide en raw_input de entrada numeros decimales y a su salida números octales.

Por ahora hice esto pero no me sale, es para dar ideas.

Código
  1. decimal = int(raw_input('Introduce un número decimal: '))
  2.  
  3. valor = 0
  4. for bit in decimal:
  5.    valor += valor + int(bit)
  6.  
  7. print 'Su valor Octal es', valor

# Se que el valor Octal se representa así \000

Hay que hacerlo con for in y cadenas, no como intenté hacer algo sin sentido.

Código
  1. decimal = int(raw_input('Introduce un número decimal: '))
  2.  
  3. print decimal \000


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: [Python] Pasar de decimal a Octal.
« Respuesta #1 en: 2 Noviembre 2010, 19:19 pm »

Citar
La conversión de un número decimal a octal se hace mediante divisiones sucesivas por 8 y colocando los restos obtenidos en orden inverso. Por ejemplo, para escribir en octal el número decimal 12210 tendremos que hacer las siguientes divisiones:

122 : 8 = 15   Resto: 2
15 : 8 = 1       Resto: 7
1 : 8 = 0         Resto: 1
Lo sabías?


En línea

Te vendería mi talento por poder dormir tranquilo.
VirajeCR

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: [Python] Pasar de decimal a Octal.
« Respuesta #2 en: 2 Noviembre 2010, 19:24 pm »

Respecto a tu código. Es importante recordar que en python los valores de tipo int no son iterables. Al menos ese código da ese error.

Personalmente creo que la mejor forma de atacar el problema es en la forma que propone Shell Root.

O habrá otra.

Saludos.
En línea

Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: [Python] Pasar de decimal a Octal.
« Respuesta #3 en: 2 Noviembre 2010, 23:36 pm »

Citar
La conversión de un número decimal a octal se hace mediante divisiones sucesivas por 8 y colocando los restos obtenidos en orden inverso. Por ejemplo, para escribir en octal el número decimal 12210 tendremos que hacer las siguientes divisiones:

122 : 8 = 15   Resto: 2
15 : 8 = 1       Resto: 7
1 : 8 = 0         Resto: 1
Lo sabías?

Haciendo pruebas he estado comprobando si el resultado que hay que hacer o el Octal que busco está en el resto por lo que interpreto.

Código
  1. d = 945698965
  2. D = 567376
  3.  
  4. resultado = d / D
  5.  
  6.  
  7.  
  8. print resultado # Cociente.
  9. print d % D # ¿Este resto te refieres que en realidad es Octal?

Citar
1666
450549 Supuestamente es el resto y no da Octal.
En línea

VirajeCR

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: [Python] Pasar de decimal a Octal.
« Respuesta #4 en: 2 Noviembre 2010, 23:45 pm »

Esto está como querer jugar ajedrez sin saberlo.

Acá una ayudita para que aclares tus dudas.

Citar
En línea

Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: [Python] Pasar de decimal a Octal.
« Respuesta #5 en: 3 Noviembre 2010, 01:07 am »

La verdad no caigo. Se hacerlo a mano pero con Python como que no.



Ver imagen.

Por lo que he entendido, el resultado si me funciona, claro que lo he hecho en plan chapuza a domicilio y no es cuestión. ¿Hay de una manera de ahcerlo con un simle for in?

Código
  1. n1 = 122 / 8
  2. resto1 = 122 % 8
  3. n2 = n1 / 8
  4. resto2 = n1 % 8
  5. n3 = n2 / 8
  6. resto3 = n2 % 8
  7.  
  8. print n1, n2, n3
  9. print resto3, resto2, resto1
Citar
15 1 0
1 7 2

Deba haber otra forma mejor de hacerlo. Puse los datos directamente. Debe ser que te pida una entrada decimal con raw_input con cualquier cifra corta o larga y después un resultado Octal.

Por ejemplo:
- Si introduzco en decimal 145 su Octal es 221.
- Si su valor decimal es 487653276, Octal es 3504177634.

Es la diea principal que me viene bien para hacer estas conversiones, no a la manera que hice porque me estaba buscando la vida de resolver el problema pero es específico y muy incómodo.
« Última modificación: 3 Noviembre 2010, 01:17 am por Meta » En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Python] Pasar de decimal a Octal.
« Respuesta #6 en: 3 Noviembre 2010, 11:31 am »

Insisto en que tienes serios problemas de lógica :xD
Código
  1. n = input('Ingresa un valor: ')
  2. octal = ''
  3. while n!=0:
  4.    octal = str(n%8) + octal
  5.    n /= 8
  6. print(octal)

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: [Python] Pasar de decimal a Octal.
« Respuesta #7 en: 3 Noviembre 2010, 11:34 am »

Parece que tengo más problemas más allá de lo que pueda imaginar.

Sin for in ni nada se puede hacer así.
Código
  1. n = int(raw_input("Dame un numero: "))
  2. print "%o" % n
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Python] Pasar de decimal a Octal.
« Respuesta #8 en: 3 Noviembre 2010, 11:42 am »

Pero esa no vale :xD También así:
Código
  1. n = input('Ingresa un valor: ')
  2. print(oct(n))

Por otra parte, antes de que en python 3000 se instaurara el input como función única, en python 2.x se usa raw_input para cadenas, e input para números, de este modo te evitas la conversión :P

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: [Python] Pasar de decimal a Octal.
« Respuesta #9 en: 3 Noviembre 2010, 11:54 am »

No lo sabía.

Nota:
Estoy con la versión 2.6 el Python y no me quiero meter en el 3.x todavía. Deja ver si acabo el libro. Esto de aprender desde cero Python, veo que tarda mucho, en mi caso. No soy muy distro con él todavía, pero me engancha horas aquí.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
programa que convierte de decimal a binario,hexadacimal y octal
Programación C/C++
dnsdirm 0 35,876 Último mensaje 25 Mayo 2011, 18:53 pm
por dnsdirm
decimal a octal
Programación C/C++
Ander123 6 4,021 Último mensaje 31 Agosto 2012, 14:16 pm
por ecfisa
pasar de decimal a cualquier base menor de 10 « 1 2 »
Programación C/C++
juanma31 14 7,421 Último mensaje 3 Abril 2014, 18:48 pm
por Eternal Idol
pasar de decimal a cualquier base menor de 10
Programación C/C++
juanma31 9 4,857 Último mensaje 24 Mayo 2014, 15:14 pm
por leosansan
Problema cambio de hexadecimal y octal a decimal
Programación C/C++
Turakam 5 4,302 Último mensaje 13 Noviembre 2014, 19:23 pm
por Turakam
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines