Título: [Python] Prolijidad de éste script
Publicado por: Geormarsch 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. #!/usr/bin/env python # -*- coding: utf-8 -*- def funcion1(): print(' Stats Recomendados Soul Master') point = 0 print point = int(input(' Total de puntos: ')) frzPct = 2 agiPct = 40 vitPct = 8 enePct = 50 PctVal = 100 frz = (point * frzPct) / PctVal agi = (point * agiPct) / PctVal vit = (point * vitPct) / PctVal ene = (point * enePct) / PctVal print' Fuerza : ', frz print' Agilidad : ', agi print' Vitalidad: ', vit print' Energía : ', ene print print' Por Jorge Martini 2016' input() def funcion2(): print(' Stats Recomendados Blade Knight') point = 0 print point = int(input(' Total de puntos: ')) frzPct = 40 agiPct = 30 vitPct = 10 enePct = 20 PctVal = 100 frz = (point * frzPct) / PctVal agi = (point * agiPct) / PctVal vit = (point * vitPct) / PctVal ene = (point * enePct) / PctVal print' Fuerza : ', frz print' Agilidad : ', agi print' Vitalidad: ', vit print' Energía : ', ene print print' Por Jorge Martini 2016' input() def funcion3(): print(' Stats Recomendados Muse Elf(Agilidad)') point = 0 print point = int(input(' Total de puntos: ')) frzPct = 24 agiPct = 64 vitPct = 10 enePct = 2 PctVal = 100 frz = (point * frzPct) / PctVal agi = (point * agiPct) / PctVal vit = (point * vitPct) / PctVal ene = (point * enePct) / PctVal print' Fuerza : ', frz print' Agilidad : ', agi print' Vitalidad: ', vit print' Energía : ', ene print print' Por Jorge Martini 2016' input() def funcion4(): print(' Stats Recomendados Dark Lord') point = 0 print point = int(input(' Total de puntos: ')) frzPct = 7 agiPct = 20 vitPct = 3 enePct = 20 comPct = 50 PctVal = 100 frz = (point * frzPct) / PctVal agi = (point * agiPct) / PctVal vit = (point * vitPct) / PctVal ene = (point * enePct) / PctVal com = (point * comPct) / PctVal print' Fuerza : ', frz print' Agilidad : ', agi print' Vitalidad: ', vit print' Energía : ', ene print' Comando : ', com print print' Por Jorge Martini 2016' input() def funcion5(): print(' Stats Recomendados Magic Gladiator(Balanceado)') point = 0 print point = int(input(' Total de puntos: ')) frzPct = 30 agiPct = 30 vitPct = 10 enePct = 30 PctVal = 100 frz = (point * frzPct) / PctVal agi = (point * agiPct) / PctVal vit = (point * vitPct) / PctVal ene = (point * enePct) / PctVal print' Fuerza : ', frz print' Agilidad : ', agi print' Vitalidad: ', vit print' Energía : ', ene print print' Por Jorge Martini 2016' input() print print ' Bienvenidos a Stats Recomendados' print ' Mu Wolf S2' print print ' [1] Soul Master' print ' [2] Blade Knight' print ' [3] Muse Elf' print ' [4] Dark Lord' print ' [5] Magic Gladiator' print print print ' Sólo ingresar números!!!' pj = input(' Seleccionar personaje: ') print print if pj == 1: funcion1() if pj == 2: funcion2() if pj == 3: funcion3() if pj == 4: funcion4() if pj == 5: funcion5() if pj > 5: print ' Debes ingresar un número valido.'
Título: Re: [Python] Prolijidad de éste script
Publicado por: engel lex 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 sería si pj es igual a 1: funcion1()
Título: Re: [Python] Prolijidad de éste script
Publicado por: Geormarsch 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 😔
Título: Re: [Python] Prolijidad de éste script
Publicado por: tincopasan 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: #-*- coding: utf -8 -*- def caracteristicas(frzPct,agiPct,vitPct,enePct,comPct=0): point=0 PctVal = 100 point = int(eval(input(' Total de puntos: '))) frz = (point * frzPct) / PctVal agi = (point * agiPct) / PctVal vit = (point * vitPct) / PctVal ene = (point * enePct) / PctVal com = (point * comPct) / PctVal print(' Fuerza : ', frz) print(' Agilidad : ', agi) print(' Vitalidad: ', vit) print(' Energía : ', ene) if comPct != 0: print(' Comando : ', com) print() print(' Por Jorge Martini 2016') print() print(''' Bienvenidos a Stats Recomendados' Mu Wolf S2') [1] Soul Master [2] Blade Knight [3] Muse Elf [4] Dark Lord [5] Magic Gladiator Sólo ingresar números!!!''') pj = int(input(' Seleccionar personaje: ')) print() print() if pj == 1: print(' Stats Recomendados Soul Master') caracteristicas(2,40,8,50) elif pj == 2: print(' Stats Recomendados Blade Knight') caracteristicas(40,30,10,20) elif pj == 3: print(' Stats Recomendados Muse Elf(Agilidad)') caracteristicas(24,64,10,2) elif pj == 4: print(' Stats Recomendados Dark Lord') caracteristicas(7,20,3,20,50) elif pj == 5: print(' Stats Recomendados Magic Gladiator(Balanceado)') caracteristicas(30,30,10,30) else: print("ingrese un número válido")
|