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
| | |-+  duda en el manejo de diccionarios python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: duda en el manejo de diccionarios python  (Leído 2,287 veces)
crosvid

Desconectado Desconectado

Mensajes: 3


Ver Perfil
duda en el manejo de diccionarios python
« en: 5 Abril 2017, 08:58 am »

hola disculpe mi tema tan burdo de expresarme soy nuevo en el foro, y en general nuevo en el uso de python, quiero usar un diccionario para implementar un menú, pero al hacerlo salta inmediatamente a la función en lugar de continuar el código, alguno de ustedes tendrá alguna idea de como puedo solucionarlo, se los agradecería mucho.
Código
  1. def funcion1():
  2.    print("Funcion 1")
  3.  
  4. def funcion2():
  5.    print("Funcion 2")
  6.  
  7. def menu():
  8.    dicionario={'1':funcion1(), '2':funcion2()}
  9.    opcion=str(input("Ingrese una opcion"))
  10.    diccionario["opcion"]
  11.  
  12. menu()
Código
  1. Funcion 1
  2. Funcion 2
  3. Ingrese una opcion1
  4. Traceback (most recent call last):
  5.  File "C:/Users/Raziel/AppData/Local/Programs/Python/Python36-32/ejemplo.py", line 12, in <module>
  6.    menu()
  7.  File "C:/Users/Raziel/AppData/Local/Programs/Python/Python36-32/ejemplo.py", line 10, in menu
  8.    diccionario["opcion"]
  9. NameError: name 'diccionario' is not defined


En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: duda en el manejo de diccionarios python
« Respuesta #1 en: 5 Abril 2017, 10:12 am »

Porque lo estás llamando como variable no como función, trata de ponerle los paréntesis después del llamado dinámico. Así: diccionario["opcion"]() aver que pasa.


En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: duda en el manejo de diccionarios python
« Respuesta #2 en: 5 Abril 2017, 16:00 pm »

varias cosas, pero para no hacerla larga solo dos:
1)si te fijas "diccionario" no existe! ya que creaste "dicionario" o sea sobra o falta una "c"
2)no es necesario usar str, ya que input devuelve una cadena!

tu forma no creo que funcione, hay mejores formas de usar este metódo de menus con diccionario, pero ese es otro tema.
En línea

crosvid

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: duda en el manejo de diccionarios python
« Respuesta #3 en: 5 Abril 2017, 16:12 pm »

ya funciono!, fue gracias a sus consejos el código final fue el siguiente:
Código
  1. def funcion1():
  2.    print("Funcion 1")
  3.  
  4. def funcion2():
  5.    print("Funcion 2")
  6.  
  7. def menu():
  8.    glosario={'1':funcion1, '2':funcion2}
  9.    opcion=input("Ingrese una opcion")
  10.    glosario[opcion]()
  11.  
  12. menu()
Código
  1. Ingrese una opcion1
  2. Funcion 1
  3. >>>
se que debe haber mejores formas, pero mi profesor es algo "especial" nuevamente muchas gracias por sus aportaciones.
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: duda en el manejo de diccionarios python
« Respuesta #4 en: 5 Abril 2017, 23:17 pm »

podrías hacer la verificación:

Código:
if opcion in glosario:
    # ok...
else:
    # opcion incorrecta

Te recomiendo procesar el input con .strip() si es que no es nulo, a veces pasa que la gente le agrega espacios en blanco a las opciones antes de presionar enter, recuerda que es un string no un integer.
« Última modificación: 5 Abril 2017, 23:20 pm por WHK » En línea

crosvid

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: duda en el manejo de diccionarios python
« Respuesta #5 en: 6 Abril 2017, 18:52 pm »

muy buena sugerencia gracias por el aporte, siempre es bueno validar todo lo que se pueda
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[DUDA][PYTHON]Acceder a Diccionarios desde Módulos
Scripting
RyogiShiki 2 3,320 Último mensaje 14 Enero 2011, 21:22 pm
por RyogiShiki
Python diccionarios
Scripting
Joe Fraddy 1 3,068 Último mensaje 20 Enero 2015, 21:29 pm
por SrCooper
HOLA PROBLEMA CON LOS DICCIONARIOS EN PYTHON
Scripting
eliander20 1 2,247 Último mensaje 13 Febrero 2016, 13:43 pm
por Eleкtro
Qué son y como usar los diccionarios en python
Scripting
987123564 9 4,698 Último mensaje 15 Agosto 2016, 04:52 am
por engel lex
[Python 3.6] Duda con cursor en manejo de ficheros
Scripting
n1sen 1 1,912 Último mensaje 12 Octubre 2017, 04:51 am
por tincopasan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines