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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [PYTHON] ¿Algún tipo de GoTo en Python?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [PYTHON] ¿Algún tipo de GoTo en Python?  (Leído 2,952 veces)
TheCrimulo

Desconectado Desconectado

Mensajes: 11

Hoy es el día, de volver a dormir.


Ver Perfil
[PYTHON] ¿Algún tipo de GoTo en Python?
« en: 8 Diciembre 2014, 01:09 am »

Muy buenas,
En este código (Interprete de comandos) tengo un problema, y es que cuando, por ejemplo, he usado la función de la calculadora, vuelva al 'prompt':
Código
  1. # -*- coding: utf-8 -*-
  2. from _pyclass import pymaths #Math Class
  3. from _pyclass import pyuses #Pauses
  4. from _pyclass import pymethods #Methods
  5. import os
  6. import time
  7.  
  8. pymaths = pymaths()
  9. pyuse = pyuses()
  10. pyfiles = pyfiles()
  11. pymet = pymethods()
  12.  
  13. pymet.pyusr('TheCrimulo','Python Software Foundation - PSF')
  14.  
  15. print 'Welcome to AnvilPy'
  16. print '[0.1.2.4]'
  17. print time.strftime("%Y/%m/%d %H:%M:%S")
  18.  
  19. print '///////////////////////'
  20. print '/                     /'
  21. print '/   AnvilPy Logger    /'
  22. print '/                     /'
  23. print '/                     /'
  24. print '///////////////////////'
  25.  
  26. usr = raw_input('Username:')
  27. mode = raw_input('Terminal mode ("$command" or "command"):')
  28. print 'Welcome, ' + usr
  29.  
  30. q1 = '?'
  31. q1_ = '$'
  32. q2 = 'hlp'
  33. q2_ = '$hlp'
  34. q3 = 'help'
  35. q3_ = '$help'
  36. q4 = 'python'
  37. q4_ = '$python'
  38. q5 = 'calculator'
  39. q5_ = '$calculator'
  40. q6 = 'time'
  41. q6_ = '$time'
  42. q7 = '¡doc'
  43. m1 = 'command'
  44. m1_ = '$command'
  45.  
  46. if mode == m1:
  47. cprompt = raw_input('*terminal*>>>')
  48.  
  49. if cprompt == q1:
  50. print """
  51. Commands:
  52. ===========
  53. ? , hlp , help - Shows all the commands
  54. python - Shows the Python Info
  55. calculator - Starts the calculator
  56. time - Shows the time
  57. """
  58. elif cprompt == q2:
  59. print """
  60. Commands:
  61. ===========
  62. ? , hlp , help - Shows all the commands
  63. python - Shows the Python Info
  64. calculator - Starts the calculator
  65. time - Shows the time
  66. """
  67. elif cprompt == q3:
  68. print """
  69. Commands:
  70. ===========
  71. ? , hlp , help - Shows all the commands
  72. python - Shows the Python Info
  73. calculator - Starts the calculator
  74. time - Shows the time
  75. """
  76. elif cprompt == q4:
  77. print 'Python 2.7.7 - PSF'
  78. print 'www.python.org'
  79.  
  80. elif cprompt == q5:
  81. eprompt = raw_input('*calculator*>>>')
  82. a1 = 'Add'
  83. a2 = 'Substract'
  84. a3 = 'Multiply'
  85. a4 = 'Int Division'
  86. a5 = 'Dec Division'
  87. a6 = 'Quo Division'
  88. a7 = 'Res Division'
  89. a8 = 'Round Number'
  90. if eprompt == a1:
  91. ep1 = raw_input('Number:')
  92. ep2 = raw_input('Number:')
  93. print pymaths.add(ep1,ep2)
  94.  
  95. elif eprompt == a2:
  96. ep3 = raw_input('Number:')
  97. ep4 = raw_input('Number:')
  98. print pymaths.substract(ep3,ep4)
  99.  
  100. elif eprompt == a3:
  101. ep5 = raw_input('Number:')
  102. ep6 = raw_input('Number:')
  103. print pymaths.multiply(ep5,ep6)
  104.  
  105. elif eprompt == a4:
  106. ep7 = raw_input('Number:')
  107. ep8 = raw_input('Number:')
  108. print pymaths.divide_int(ep7,ep8)
  109.  
  110. elif eprompt == a5:
  111. ep9 = raw_input('Number:')
  112. ep10 = raw_input('Number:')
  113. print pymaths.divide_dec(ep9,ep10)
  114.  
  115. elif eprompt == a6:
  116. ep11 = raw_input('Number:')
  117. ep12 = raw_input('Number:')
  118. print pymaths.divide_quo(ep11,ep12)
  119.  
  120. elif eprompt == a7:
  121. ep13 = raw_input('Number:')
  122. ep14 = raw_input('Number:')
  123. print pymaths.divide_res(ep13,ep14)
  124.  
  125. elif eprompt == a8:
  126. ep15 = raw_input('Number:')
  127. ep16 = raw_input('Number of Decimals:')
  128. print pymaths.roundto(ep15,ep16)
Falta MUCHO para terminar, pero es un punto crucial en el programa, lo he intentado con exec, pero NOPE.

Un saludo,
TheCrimulo


En línea

Código
  1. print "¡Buenos días mundo!"
Código
  1. System.WriteLine("¡Callate!");
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [PYTHON] ¿Algún tipo de GoTo en Python?
« Respuesta #1 en: 8 Diciembre 2014, 01:11 am »

goto por lo general los lenguajes no lo tienen por gran cantidad de problemas y descontrol del codigo... por que no lo haces en funciones y de manera bien estructurada?


« Última modificación: 8 Diciembre 2014, 01:16 am por engel lex » 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.
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.131


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: [PYTHON] ¿Algún tipo de GoTo en Python?
« Respuesta #2 en: 8 Diciembre 2014, 05:34 am »

Prueba con loop (while)...

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

TheCrimulo

Desconectado Desconectado

Mensajes: 11

Hoy es el día, de volver a dormir.


Ver Perfil
Re: [PYTHON] ¿Algún tipo de GoTo en Python?
« Respuesta #3 en: 8 Diciembre 2014, 19:59 pm »

Muchas gracias, con los While (while loop <= 999:) y terminando cada comando del "interprete" con loop += 1 (Evidentemente, a los 999 se cierra) me ha arreglado el programa entero. Millones de gracias  :D

EJEMPLO:
Código
  1. loop = 0
  2. while loop <= 999:
  3.    if consola == comando1:
  4.        codigo
  5.        loop += 1
En línea

Código
  1. print "¡Buenos días mundo!"
Código
  1. System.WriteLine("¡Callate!");
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [PYTHON] ¿Algún tipo de GoTo en Python?
« Respuesta #4 en: 8 Diciembre 2014, 20:05 pm »

Código
  1. while True:
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.
TheCrimulo

Desconectado Desconectado

Mensajes: 11

Hoy es el día, de volver a dormir.


Ver Perfil
Re: [PYTHON] ¿Algún tipo de GoTo en Python?
« Respuesta #5 en: 8 Diciembre 2014, 20:17 pm »

Es verdad  :P
Yo y mis idas de olla, siempre a lo dificil... , pero de todas maneras gracias :D
En línea

Código
  1. print "¡Buenos días mundo!"
Código
  1. System.WriteLine("¡Callate!");
PedroDJavier
Visitante


Email
Re: [PYTHON] ¿Algún tipo de GoTo en Python?
« Respuesta #6 en: 15 Diciembre 2014, 16:41 pm »

Un consejo, en python hay 3 paradigmas, uno de ellos es el "de funciones" o "funcional"  --> Te explico:

para hacer un menú principal harias asi:

Código
  1. def menu():
  2.    print("Menu Principal ")
  3.    print("1.- hackear nasa")
  4.    print("2.- hackear fbi")
  5.  

y cuando quieras volver al menu haces:

Código
  1. menu()

y listo ;)
es otra forma similar de hacerlo al bucle.

PD: Lo de que no haya goto en python (los que vengan de batch se estaran arrancando los pelos) es debido a que asi se organiza mejor el code y no hacemos codigo espaguetti  :p

Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines