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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Python] Prolijidad de éste script
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python] Prolijidad de éste script  (Leído 2,168 veces)
Geormarsch

Desconectado Desconectado

Mensajes: 160



Ver Perfil
[Python] Prolijidad de éste script
« en: 21 Octubre 2016, 04:59 am »

Una vez más aquí, para preguntar por python.

Resulta que leí más como toooodos me mencionaron  :laugh:
cambié la variable "str" por fzr.
quedan muchas consultas en mí cabeza

- Por qué al importar "os" y anteponer os.system("clear") me arroja un error.

- El uso del if, todavía no lo logro comprender.

- Siento que el menú es muy disfuncional y podría tener errores.

- Sé que siempre hay distintas formas de hacer una cosa, pero cuál sería la más correcta para lo que yo busco?

Tengo los porcentajes configurados en cada variable, y me funciona bien, todos los valores son exactos, ya que sólo sería de números desde el 300 y el doble de cada número sucesivamente, por ende no tendré problemas con decimales ni nada de eso.

ahora sólo me complica el menú.

Espero que no se molesten, pero no logro comprender muchas cosas de las que leo.

Código
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. def funcion1():
  5. print(' Stats Recomendados Soul Master')
  6. point = 0
  7. print
  8. point = int(input(' Total de puntos: '))
  9.  
  10. frzPct = 2
  11. agiPct = 40
  12. vitPct = 8
  13. enePct = 50
  14.  
  15. PctVal = 100
  16.  
  17. frz = (point * frzPct) / PctVal
  18. agi = (point * agiPct) / PctVal
  19. vit = (point * vitPct) / PctVal
  20. ene = (point * enePct) / PctVal
  21. print' Fuerza   : ', frz
  22. print' Agilidad : ', agi
  23. print' Vitalidad: ', vit
  24. print' Energía  : ', ene
  25. print
  26. print' Por Jorge Martini 2016'
  27. input()
  28.  
  29. def funcion2():
  30. print(' Stats Recomendados Blade Knight')
  31. point = 0
  32. print
  33. point = int(input(' Total de puntos: '))
  34.  
  35. frzPct = 40
  36. agiPct = 30
  37. vitPct = 10
  38. enePct = 20
  39.  
  40. PctVal = 100
  41.  
  42. frz = (point * frzPct) / PctVal
  43. agi = (point * agiPct) / PctVal
  44. vit = (point * vitPct) / PctVal
  45. ene = (point * enePct) / PctVal
  46. print' Fuerza   : ', frz
  47. print' Agilidad : ', agi
  48. print' Vitalidad: ', vit
  49. print' Energía  : ', ene
  50. print
  51. print' Por Jorge Martini 2016'
  52. input()
  53.  
  54.  
  55. def funcion3():
  56. print(' Stats Recomendados Muse Elf(Agilidad)')
  57. point = 0
  58. print
  59. point = int(input(' Total de puntos: '))
  60.  
  61. frzPct = 24
  62. agiPct = 64
  63. vitPct = 10
  64. enePct = 2
  65.  
  66. PctVal = 100
  67.  
  68. frz = (point * frzPct) / PctVal
  69. agi = (point * agiPct) / PctVal
  70. vit = (point * vitPct) / PctVal
  71. ene = (point * enePct) / PctVal
  72. print' Fuerza   : ', frz
  73. print' Agilidad : ', agi
  74. print' Vitalidad: ', vit
  75. print' Energía  : ', ene
  76. print
  77. print' Por Jorge Martini 2016'
  78. input()
  79.  
  80. def funcion4():
  81. print(' Stats Recomendados Dark Lord')
  82. point = 0
  83. print
  84. point = int(input(' Total de puntos: '))
  85.  
  86. frzPct = 7
  87. agiPct = 20
  88. vitPct = 3
  89. enePct = 20
  90. comPct = 50
  91.  
  92. PctVal = 100
  93.  
  94. frz = (point * frzPct) / PctVal
  95. agi = (point * agiPct) / PctVal
  96. vit = (point * vitPct) / PctVal
  97. ene = (point * enePct) / PctVal
  98. com = (point * comPct) / PctVal
  99. print' Fuerza   : ', frz
  100. print' Agilidad : ', agi
  101. print' Vitalidad: ', vit
  102. print' Energía  : ', ene
  103. print' Comando  : ', com
  104. print
  105. print' Por Jorge Martini 2016'
  106. input()
  107.  
  108.  
  109. def funcion5():
  110. print(' Stats Recomendados Magic Gladiator(Balanceado)')
  111. point = 0
  112. print
  113. point = int(input(' Total de puntos: '))
  114.  
  115. frzPct = 30
  116. agiPct = 30
  117. vitPct = 10
  118. enePct = 30
  119.  
  120. PctVal = 100
  121.  
  122. frz = (point * frzPct) / PctVal
  123. agi = (point * agiPct) / PctVal
  124. vit = (point * vitPct) / PctVal
  125. ene = (point * enePct) / PctVal
  126. print' Fuerza   : ', frz
  127. print' Agilidad : ', agi
  128. print' Vitalidad: ', vit
  129. print' Energía  : ', ene
  130. print
  131. print' Por Jorge Martini 2016'
  132. input()
  133.  
  134. print
  135. print ' Bienvenidos a Stats Recomendados'
  136. print ' Mu Wolf S2'
  137. print
  138. print ' [1] Soul Master'
  139. print ' [2] Blade Knight'
  140. print ' [3] Muse Elf'
  141. print ' [4] Dark Lord'
  142. print ' [5] Magic Gladiator'
  143. print
  144. print
  145. print ' Sólo ingresar números!!!'
  146. pj = input(' Seleccionar personaje: ')
  147. print
  148. print
  149.  
  150. if pj == 1:
  151.    funcion1()
  152. if pj == 2:
  153. funcion2()
  154. if pj == 3:
  155. funcion3()
  156. if pj == 4:
  157. funcion4()
  158. if pj == 5:
  159. funcion5()
  160. if pj > 5:
  161. print ' Debes ingresar un número valido.'


En línea

"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Python] Prolijidad de éste script
« Respuesta #1 en: 21 Octubre 2016, 05:29 am »

os.system es equivalente a escribir un comando en la consola, si estás en windows "clear" no es un comando valido, eso es en linux y mac, usarías "cls" (creo)

el es "si" se cumple una condición
Código:

if pj == 1:
    funcion1()

sería

Código:

si pj es igual a 1:
    funcion1()



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

Desconectado Desconectado

Mensajes: 160



Ver Perfil
Re: [Python] Prolijidad de éste script
« Respuesta #2 en: 21 Octubre 2016, 06:53 am »

Estoy en linux, en bash para limpiar la consola es clear, y esa parte del if si la entendí, lo que no comprendo es como hacer cuando se escriba un texto volver al menu, algo como el uso del else, probé pero nada 😔
En línea

"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: [Python] Prolijidad de éste script
« Respuesta #3 en: 21 Octubre 2016, 08:34 am »

No puedo decirte sobre "clear" porque no uso linux, en cuanto al menú para que se repita debes aprender soble bucles y para ello sobre while, en cuanto a saber si escriben letras o números existe la función isdigit, ya tenés más para buscar y leer.

edito:
         no entiendo que querés hacer pero estaba aburrido y modifiqué apenas tu código porque escribiste una chorrada de funciones que hacen basicamente lo mismo, así que las resumí para que veas como ahorrar código, obvio que faltan cosas y sobran otras, es solo a modo orientativo:
Código
  1. #-*- coding: utf -8 -*-
  2. def caracteristicas(frzPct,agiPct,vitPct,enePct,comPct=0):
  3.    point=0    
  4.    PctVal = 100
  5.    point = int(eval(input(' Total de puntos: ')))
  6.  
  7.    frz = (point * frzPct) / PctVal
  8.    agi = (point * agiPct) / PctVal
  9.    vit = (point * vitPct) / PctVal
  10.    ene = (point * enePct) / PctVal
  11.    com = (point * comPct) / PctVal
  12.    print(' Fuerza   : ', frz)
  13.    print(' Agilidad : ', agi)
  14.    print(' Vitalidad: ', vit)
  15.    print(' Energía  : ', ene)
  16.    if comPct != 0:    
  17.        print(' Comando  : ', com)      
  18.    print()
  19.    print(' Por Jorge Martini 2016')
  20.  
  21. print()
  22. print(''' Bienvenidos a Stats Recomendados'
  23.          Mu Wolf S2')
  24.  
  25.         [1] Soul Master
  26.         [2] Blade Knight
  27.         [3] Muse Elf
  28.         [4] Dark Lord
  29.         [5] Magic Gladiator
  30.  
  31.  
  32.         Sólo ingresar números!!!''')
  33. pj = int(input(' Seleccionar personaje: '))
  34. print()
  35. print()    
  36.  
  37. if pj == 1:
  38.    print(' Stats Recomendados Soul Master')
  39.    caracteristicas(2,40,8,50)
  40.  
  41. elif pj == 2:
  42.    print(' Stats Recomendados Blade Knight')
  43.    caracteristicas(40,30,10,20)
  44.  
  45. elif pj == 3:
  46.    print(' Stats Recomendados Muse Elf(Agilidad)')
  47.    caracteristicas(24,64,10,2)
  48.  
  49. elif pj == 4:
  50.    print(' Stats Recomendados Dark Lord')
  51.    caracteristicas(7,20,3,20,50)
  52.  
  53. elif pj == 5:
  54.    print(' Stats Recomendados Magic Gladiator(Balanceado)')
  55.    caracteristicas(30,30,10,30)
  56. else:
  57.    print("ingrese un número válido")
  58.  
« Última modificación: 21 Octubre 2016, 10:05 am por tincopasan » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python] Little Script Codepad
Scripting
The Swash 0 2,050 Último mensaje 2 Noviembre 2011, 03:35 am
por The Swash
Ayuda con script python
Scripting
Xenomorfo77 5 3,678 Último mensaje 4 Mayo 2012, 02:13 am
por Xenomorfo77
Script en Python [Duda]
Scripting
michelmarques 2 2,184 Último mensaje 14 Julio 2012, 22:39 pm
por michelmarques
[python] Script FTP
Scripting
flacc 0 3,382 Último mensaje 16 Agosto 2012, 22:37 pm
por flacc
¿En donde puedo alojar un script de python para que este se ejecute?
Scripting
emperie 1 8,524 Último mensaje 25 Enero 2023, 01:06 am
por Danielㅤ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines