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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Python] - Menú con While.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: [Python] - Menú con While.  (Leído 20,603 veces)
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Python] - Menú con While.
« Respuesta #10 en: 15 Octubre 2010, 22:29 pm »

Si crees que no debes de usarlo entonces no vas a hacer nunca el ejercicio :silbar:
Crees que una tupla o lista sirve solo con el for? Se usa con el while también :¬¬ (por hacer referencia a tu ejercicio)

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.438



Ver Perfil WWW
Re: [Python] - Menú con While.
« Respuesta #11 en: 15 Octubre 2010, 23:22 pm »

Pregunto, ya que entra en la categoría de sólo while sin for in que indica el pdf que puedes ver en la página 109.

http://marmota.act.uji.es/mtp/pdf/python.pdf

Saludo.


En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Python] - Menú con While.
« Respuesta #12 en: 15 Octubre 2010, 23:35 pm »

Que indica? ... Que tienes que tener dos vectores :rolleyes:
"Deseamos confeccionar un programa que permita operar con dos vectores".
"Introducir el primer vector"
"Introducir el segundo vector"

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.438



Ver Perfil WWW
Re: [Python] - Menú con While.
« Respuesta #13 en: 15 Octubre 2010, 23:52 pm »

Que indica? ... Que tienes que tener dos vectores :rolleyes:

Si, y eso me da vueltas a la cabeza, que supuestamente debe ser while, no un tem apor delante como indica en la página 109 del pdf http://marmota.act.uji.es/mtp/pdf/python.pdf . Con razón que siempre me faltaba ideas que luego veía.

"Deseamos confeccionar un programa que permita operar con dos vectores".
"Introducir el primer vector"
"Introducir el segundo vector"

Entonces seguiré practicando en el pdf a ver si encuentro la solución.


Saludos

Gracias por tu tiempo.

En línea

@Sthéfano

Desconectado Desconectado

Mensajes: 98

Security & Programming ~


Ver Perfil
Re: [Python] - Menú con While.
« Respuesta #14 en: 16 Octubre 2010, 00:11 am »

Solo un pequeño dato mas :D

#
Código
  1. Importar arcoseno.
  2. from math import acos
  3.  
  4. vector1 = float(raw_input('Introduce el primer vector: '))
  5. vector2 = float(raw_input('Introduce el segundo vector: '))
  6.  
  7. opcion = ''
  8. while opcion < 'a' or opcion > 'g':
  9.    print 'Selecciona una opción: \n'
  10.    print 'a) Calcular la suma.'
  11.    print 'b) Calcular la diferencia.'
  12.    print 'c) Calcular el producto escalar.'
  13.    print 'd) Calcular el producto vectorial.'
  14.    print 'e) Calcular el ángulo (en gastos) entre ellos.'
  15.    print 'f) Calcular la longitud.'
  16.    print 'g) Finalizar. '
  17.    opcion = raw_input('Pulsa a, b, c, d, e, f o g, luego pulsa retorno de carro: ')
  18.    if opcion == 'a':
  19.        x1 = float(raw_input('Introduce el primer vector: '))

En vez de tantos print, podrias usar comillas triples.

Código
  1. # Importar arcoseno.
  2. from math import acos
  3.  
  4. vector1 = float(raw_input('Introduce el primer vector: '))
  5. vector2 = float(raw_input('Introduce el segundo vector: '))
  6.  
  7. opcion = ''
  8. while opcion < 'a' or opcion > 'g':
  9.    print '''
  10.        Selecciona una opcion:
  11.            a) Calcular la suma.
  12.            b) Calcular la diferencia.
  13.            c) Calcular el producto escalar.
  14.            d) Calcular el producto vectorial.
  15.            e) Calcular el ángulo (en gastos) entre ellos.
  16.            f) Calcular la longitud.
  17.            g) Finalizar.
  18.    '''
  19.    opcion = raw_input('Pulsa a, b, c, d, e, f o g, luego pulsa retorno de carro: ')
  20.    if opcion == 'a':
  21.        x1 = float(raw_input('Introduce el primer vector: '))

Te ahorras muchos print por hacer :P

Saludos ;)
En línea

Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Re: [Python] - Menú con While.
« Respuesta #15 en: 16 Octubre 2010, 00:54 am »

Muchas gracias. No recuerdo haberlo leído en ninguta parte del PDF que estoy leyendo. Apróximadamente voy por la página 109 y no he leído nada de eso y no se si vendrá.

http://marmota.act.uji.es/mtp/pdf/python.pdf

Saludo.
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Python] - Menú con While.
« Respuesta #16 en: 16 Octubre 2010, 01:20 am »


Meta, retiro lo dicho ya que puede ser que estuviese equivocado :-[
Puede ser que cuando en el libro se refieren a vectores, se refieren a vectores matemáticos sin hacer referencia a listas o tuplas, quiero pensar que no te van a pedir hacer algo sin explicartelo :-\
A ver, volviendo al código que tenías antes de que yo dijera esto ...
Citar
Los vectores del principio los ves inútil porque estas metiendo las variables a mano :xD ... x1, x2, x3, y1, y2 e y3 son los elementos de los dos vectores, empieza por eso, no por las operaciones.
En tu código asignas los valores de las variables a mano, y lo que debes de hacer es tener un input por cada variable, y todo eso metido dentro de la opción "introducir el primer vector" e "introducir el segundo vector"
Código:
Si opcion 1
var1 = pido dato
var2 = pido dato
var3 = pido dato
Si opcion 2
var4 = pido dato
.
.
.
A ver si lo solucionamos :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.438



Ver Perfil WWW
Re: [Python] - Menú con While.
« Respuesta #17 en: 16 Octubre 2010, 02:47 am »

Ya decía yo. Rectificar es de sabio.

Hay algo que no entiendo. Añado estás líneas de código.

Código
  1. # Introducir vectores.
  2. vector1 = float(raw_input('Introduce el primer vector: '))
  3. vector2 = float(raw_input('Introduce el segundo vector: '))

Por lo que te entiendo pregunta por más variables en cada vector que sería así supuestamente.

Código
  1. from math import acos, pi, sqrt
  2.  
  3. opcion = ''
  4. while opcion < 'a' or opcion > 'i':
  5.    print '''Selecciona una opci&#243;n:
  6.            a) Introducir el primer vector.
  7.            b) Introducir el segundo vector.
  8.            c) Calcular la suma.
  9.            d) Calcular la diferencia.
  10.            e) Calcular el producto escalar.
  11.            f) Calcular el producto vectorial.
  12.            g) Calcular el &#225;ngulo (en gastos) entre ellos.
  13.            h) Calcular la longitud.
  14.            i) Finalizar. '''
  15.  
  16.    opcion = raw_input('Pulsa a, b, c, d, e, f, g, h o i, luego pulsa retorno de carro: ')
  17.  
  18. # Primer vector.
  19. if  opcion == 'a':
  20.    x1 = float(raw_input('Introduce valor x1: '))
  21.    y1 = float(raw_input('Introduce valor y1: '))
  22.    z1 = float(raw_input('Introduce valor z1: '))
  23.  
  24. # Segundo vector.
  25. elif opcion == 'b':
  26.    x2 = float(raw_input('Introduce valor x2: '))
  27.    y2 = float(raw_input('Introduce valor y2: '))
  28.    z2 = float(raw_input('Introduce valor z2: '))
  29. # Suma.
  30. elif opcion == 'c':
  31.  
  32.        suma = (x1 + x2, y1 + y2, z1 + z2)
  33.        print suma
  34.  
  35. # Diferencia.
  36. elif opcion == 'd':
  37.  
  38.        diferencia = (x1 - x2, y1 - y2, z1 - z2)
  39.        print diferencia
  40.  
  41. # Producto escalar.
  42. elif opcion == 'e':
  43.  
  44.        producto = (x1 * x2 + y1 * y2 + z1 * z2)
  45.        print producto
  46.  
  47. # Producto vectorial.
  48. elif opcion == 'f':
  49.  
  50.        vectorial = (y1 * z2 - z1 * y2, z1 * x2 - x1 * z2, x1 * y2 - y1 * x2)
  51.        print vectorial
  52.  
  53. # &#193;ngulo.
  54. elif opcion == 'g':
  55.  
  56.        print  (180 / pi) * arcos * ((x1 * x2 + y1 * y2 + z1 * z2) / (sqrt(x1**2 + y1**2 + z1**2) * (sqrt(x2**2 + y2**2 + z2**2))
  57.  
  58. # Longitud.
  59. elif opcion == 'h':
  60.  
  61.        x = 56
  62.        y = 92
  63.        z = 50
  64.  
  65.        longitud = sqrt(x**2+y**2+z**2)
  66.        print longitud
  67.  
  68. elif opcion == 'i':
  69.        print 'S&#243;lo hay sietes opciones: a, b, c, d, e, f o g. Usted has tecleado', opcion
  70. print 'Gracias por usar el programa.'

¿Te refieres algo así?

Ahora mismo no lo puedo ejecutar para hacer pruebas porque me da fallos.
Citar
File "/home/user/NetBeansProjects/kam/src/kam.py", line 90
    elif opcion == 'h':
       ^
SyntaxError: invalid syntax
« Última modificación: 16 Octubre 2010, 02:53 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] - Menú con While.
« Respuesta #18 en: 16 Octubre 2010, 03:32 am »

Revisa paréntesis en g :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.438



Ver Perfil WWW
Re: [Python] - Menú con While.
« Respuesta #19 en: 16 Octubre 2010, 04:13 am »

Gracias por el error, sólo es el del paréntesis.

En su salida me ha dado este resultado.

Citar
Selecciona una opción:
            a) Introducir el primer vector.
            b) Introducir el segundo vector.
            c) Calcular la suma.
            d) Calcular la diferencia.
            e) Calcular el producto escalar.
            f) Calcular el producto vectorial.
            g) Calcular el ángulo (en gastos) entre ellos.
            h) Calcular la longitud.
            i) Finalizar.
Pulsa a, b, c, d, e, f, g, h o i, luego pulsa retorno de carro: a
Introduce valor x1: 3
Introduce valor y1: 4
Introduce valor z1: 5
Gracias por usar el programa.

Por fin me funciona algo. Por ahora me falta que vuelta al menú para hacer la opción b). He leído por Internet que los goto están prohibidos usarlos para el aprendizaje o sino cogeré malos hábitos en programación. Deja ver como me sale.


Edito:


Código
  1. from math import acos, pi, sqrt
  2.  
  3. opcion = ''
  4. while opcion < 'a' or opcion > 'i':
  5.    print '''Selecciona una opción:
  6.            a) Introducir el primer vector.
  7.            b) Introducir el segundo vector.
  8.            c) Calcular la suma.
  9.            d) Calcular la diferencia.
  10.            e) Calcular el producto escalar.
  11.            f) Calcular el producto vectorial.
  12.            g) Calcular el ángulo (en gastos) entre ellos.
  13.            h) Calcular la longitud.
  14.            i) Finalizar. '''
  15.  
  16.    opcion = raw_input('Pulsa a, b, c, d, e, f, g, h o i, luego pulsa retorno de carro: ')
  17.  
  18. # Primer vector.
  19. if  opcion == 'a':
  20.    x1 = float(raw_input('Introduce valor x1: '))
  21.    y1 = float(raw_input('Introduce valor y1: '))
  22.    z1 = float(raw_input('Introduce valor z1: '))
  23.  
  24. # Segundo vector.
  25. elif opcion == 'b':
  26.    x2 = float(raw_input('Introduce valor x2: '))
  27.    y2 = float(raw_input('Introduce valor y2: '))
  28.    z2 = float(raw_input('Introduce valor z2: '))
  29. # Suma.
  30. elif opcion == 'c':
  31.  
  32.        suma = (x1 + x2, y1 + y2, z1 + z2)
  33.        print suma
  34.  
  35. # Diferencia.
  36. elif opcion == 'd':
  37.  
  38.        diferencia = (x1 - x2, y1 - y2, z1 - z2)
  39.        print diferencia
  40.  
  41. # Producto escalar.
  42. elif opcion == 'e':
  43.  
  44.        producto = (x1 * x2 + y1 * y2 + z1 * z2)
  45.        print producto
  46.  
  47. # Producto vectorial.
  48. elif opcion == 'f':
  49.  
  50.        vectorial = (y1 * z2 - z1 * y2, z1 * x2 - x1 * z2, x1 * y2 - y1 * x2)
  51.        print vectorial
  52.  
  53. # Ángulo.
  54. elif opcion == 'g':
  55.        print  (180 / pi) * arcos * (x1 * x2 + y1 * y2 + z1 * z2) / (sqrt(x1**2 + y1**2 + z1**2) * sqrt(x2**2 + y2**2 + z2**2))
  56.  
  57. # Longitud.
  58. elif opcion == 'h':
  59.  
  60.        x = float(raw_input('Introduce valor x: '))
  61.        y = float(raw_input('Introduce valor y: '))
  62.        z = float(raw_input('Introduce valor z: '))
  63.  
  64.        longitud = sqrt(x**2+y**2+z**2)
  65.        print longitud
  66.  
  67. elif opcion == 'i':
  68.        print 'Sólo hay sietes opciones: a, b, c, d, e, f o g. Usted has tecleado', opcion
  69. print 'Gracias por usar el programa.'

Debo hacer algo para que cuando acabe una operación vuelva al menú principal automáticamente, cuando pulse i) para finalizar es cuando debe aparecer el mensaje "Gracias por usar el programa." y se acaba el programa o...

...¿hay que dejarlo así en este ejercicio?

Edito 2:

El programa me debe funcionar de esta manera sin usar GOTOssssssssssssss.

Si pulso a), te pide introducir el primer vector. Luego se acaba el programa y no se puede continuar para rellenar el vector 2.

Desde que introduzca los datos de la opción a), que vuelva almenú principal, así con cada opción excepto la opción i) que es cuando realmente se acaba el programa.
« Última modificación: 16 Octubre 2010, 05:29 am por Meta » En línea

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Menu en python con otro menu dentro
Scripting
AdeLax 2 6,545 Último mensaje 7 Octubre 2012, 21:46 pm
por AdeLax
[Python] Especie de 'Menú' para un Script
Scripting
Geormarsch 4 2,275 Último mensaje 19 Octubre 2016, 19:10 pm
por tincopasan
Python Menu -Tweepy Twitter
Scripting
aspiazu 1 2,153 Último mensaje 10 Diciembre 2016, 20:58 pm
por engel lex
Ejericio 2 python: Menu, cual es el numero del mes
Scripting
xiquipython 1 1,781 Último mensaje 8 Febrero 2019, 14:39 pm
por xiquipython
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines