Autor
|
Tema: Necesito pistas por favor. Python (Leído 3,801 veces)
|
makiro15
Desconectado
Mensajes: 3
|
Pasar de un numero octal a decimal, nose como hacer que funcione con un número mayor a una cifra. n=input('Ingrese un número: ') p='01234567' l=len(n) q=1 z=2 n1=n if n in p: while (q<=l): m=((n[-q])) m=int(m) o=8**z y=(m*o) print (n,y) z+=1 q+=1
|
|
« Última modificación: 21 Octubre 2015, 17:00 pm por Eleкtro »
|
En línea
|
|
|
|
kr.chacacreker
Desconectado
Mensajes: 19
|
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.
|
|
|
En línea
|
|
|
|
engel lex
|
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 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 for numero in n:
"numero" contendrá el numero trabajado... de allí en más es que hagas el cálculo
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
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: n=int(input('Ingrese un número: '))
o n=input('Ingrese un número: ') n=int(n)
y es preferible usar las funciones ya predefinidas como dice kr.chacacreker
|
|
|
En línea
|
|
|
|
makiro15
Desconectado
Mensajes: 3
|
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 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 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: n=int(input('Ingrese un número: '))
o n=input('Ingrese un número: ') n=int(n)
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
|
|
« Última modificación: 23 Octubre 2015, 18:18 pm por engel lex »
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
¿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. #-*- coding:utf -8 -*- numero=input('Ingrese un numero: ') invertido= numero[::-1] posibles='01234567' largo = len(numero) inicio=0 indice=0 elevado=0 convertido=0 while inicio < largo: cada_numero=(invertido[inicio]) inicio+=1 if cada_numero in posibles: convertir=int(invertido[indice])*8 ** elevado indice+=1 elevado+=1 convertido+=convertir else: print("El numero {} no corresponde a un octal".format(cada_numero)) print ("El número {} octal es en decimal {} ".format (numero,convertido))
|
|
« Última modificación: 24 Octubre 2015, 11:53 am por tincopasan »
|
En línea
|
|
|
|
makiro15
Desconectado
Mensajes: 3
|
¿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. #-*- coding:utf -8 -*- numero=input('Ingrese un numero: ') invertido= numero[::-1] posibles='01234567' largo = len(numero) inicio=0 indice=0 elevado=0 convertido=0 while inicio < largo: cada_numero=(invertido[inicio]) inicio+=1 if cada_numero in posibles: convertir=int(invertido[indice])*8 ** elevado indice+=1 elevado+=1 convertido+=convertir else: print("El numero {} no corresponde a un octal".format(cada_numero)) print ("El número {} octal es en decimal {} ".format (numero,convertido))
._. 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 , no obstante, veo para mi una fuente de conocimientos que aun no había podido aplicar correctamente. Gracias nuevamente.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
necesito hacer pistas
Multimedia
|
pardo
|
1
|
12,864
|
30 Noviembre 2005, 06:19 am
por aNexos
|
|
|
Necesito ayuda, por favor, necesito eliminar definitivamente un contacto del msn
« 1 2 »
Mensajería
|
jordijor
|
10
|
14,921
|
19 Diciembre 2011, 09:16 am
por A4TECH
|
|
|
Ayuda x favor con Scriter 2.6 de python
Scripting
|
Danegui
|
1
|
2,377
|
5 Marzo 2011, 12:46 pm
por xassiz~
|
|
|
[Python] Por favor
Scripting
|
Geormarsch
|
3
|
2,359
|
16 Febrero 2012, 16:50 pm
por fallout20xx
|
|
|
[AYUDA][PYTHON] Necesito ayuda con el metodo SEARCH del modulo RE de python
Scripting
|
Noxware
|
2
|
4,162
|
24 Mayo 2014, 16:11 pm
por Noxware
|
|