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


 


Tema destacado: [Aporte] Mejores practicas en Java


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderador: Eleкtro)
| | |-+  Saludos y ayuda con código Python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Saludos y ayuda con código Python  (Leído 472 veces)
PUAROT

Desconectado Desconectado

Mensajes: 56



Ver Perfil WWW
Saludos y ayuda con código Python
« en: 3 Enero 2016, 17:48 »

Ante todo un saludo a todos y dar las gracias por molestaros en leer mi pregunta.

Estoy intentando aprender python 3,x por mi cuenta y riesgo, y es muy frustrante no tener a nadie a quien ir preguntando las dudas y seguir chocando en los mismos errores.Estoy intentando aprender haciendo una pequeña aplicación pero estoy atascado, mi problema puede parecer una chorrada, pero la idea es arreglar esa chorrada para aprender.
Estoy haciendo un menú que me pregunta el tema a tratar para que me lea unos test que tengo en excel, después me pregunta cuantas preguntas quiero, y luego empieza las preguntas.

Quiero reutilizar código y ahí es donde empieza mi problema.

El código se ejecuta y pregunta tema, elijo la respuesta D por ejemplo y me dice que ha cargado el archivo correspondiente y hace una segunda ronda cambiando parámetros para que las opciones no sean temas si no numero de preguntas
Luego sale una frase que dice va a comenzar el tes de x preguntas sobre Y tema

Pues bien en esa frase, para poner el tema me utiliza el valor de la primera pasada de código .
Le podéis echar un vistazo y orientarme un poco ?

Muchas gracias de antemano !!

Código:
import openpyxl
import random

selecciona = ["Seleciona el Tema de los test :", "Cuantas preguntas quieres en el Test"]
temas = ["a) Conocimientos Generales ", "b) Derecho ", "c) Factores Humanos", "d) Meteorología", "e) Navegtacióbn", "f) Performances", "g) Principios Operacionales", "h) Principios de vuelo","q) Salir","a) 10", "b) 20","c) 30","d) 40","e) 50","f) 60","g) 70","h) 80"]
respuestas = ["a","A","b","B","c","C","d","D","e","E","f","F","g","G","h","H","q","Q"]
archivo = ['Test/CGA.xlsx','Test/DA.xlsx','Test/FH.xlsx','Test/ME.xlsx','Test/NV.xlsx','Test/PE.xlsx','Test/PO.xlsx','Test/PV.xlsx']
comienza = ["Comienza Test de","preguntas aleatorias de"]

class Selec_tema():
    def __init__(self,m,n,l):
        self.m = m
        self.n = n
        self.l = l
        print (selecciona[l])
        for tema in temas[self.m:self.n]:
            print (tema)
        self.elige()
       
    def elige(self):
        seleccion = input()
        while not (seleccion in respuestas[0:18]):
            print ("Seleción no valida")
            seleccion = input()
        self.comprueba(seleccion)

    def comprueba(self,seleccion):
        if seleccion in ("a","A"):
            self.accion(0)
        elif seleccion in ("b","B"):
            self.accion(1)
        elif seleccion in ("c","C"):
            self.accion(2)
        elif seleccion in ("d","D"):
            self.accion(3)
        elif seleccion in ("e","E"):
            self.accion(4)
        elif seleccion in ("f","F"):
            self.accion(5)
        elif seleccion in ("g","G"):
            self.accion(6)
        elif seleccion in ("h","H"):
            self.accion(7)
        elif seleccion in ("q","Q"):
            print ("Adios")

    def accion(self,pos):
        while self.l == 0:
            self.carga(archivo[pos])
        self.limpia()
        numero_preguntas = (pos +1) * 10
        self.empieza(pos,numero_preguntas)
       
    def carga(self,str):
        print ("archivo cargado")
        cga = openpyxl.load_workbook(str)
        hoja_cga = cga.get_sheet_by_name('Hoja 1')
        p = Selec_tema(9,17,1)
       
    def empieza(self,pos,numero_preguntas):       
        print (comienza[0],numero_preguntas,comienza[1],"".join(temas[pos])[3:])
        r = Test(numero_preguntas)

    def limpia(self):
        for limpia in range(25):
            print ("")

class Test():
    def __init__(self,numero_preguntas):
        self.numero_preguntas = numero_preguntas
        print (numero_preguntas)
 #       self.mostrar_preguntas()

    def mostrar_preguntas(self):
        print ( p.hoja_cga["F2"].value)

    def mostrar_respuestas(self):
        pass

    def comprobar_respiuesta(self):
        pass

    def puntuacion(self):
        pass

    def run(self):
        pass

p = Selec_tema(0,9,0)


En línea

PUAROT

Desconectado Desconectado

Mensajes: 56



Ver Perfil WWW
Re: Saludos y ayuda con código Python
« Respuesta #1 en: 4 Enero 2016, 19:57 »

Me autorespondo (en parte), por si a alguien le sirve de algo.

Me he dado cuenta de que el problema es que no manejo bien las variables, despues de horas mirando el código y haciendo pruebas he comprendido que dentro de un método o función, no puedo crear una variable y utilizarla en otra función, mas o menos, que esto no funciona:
Código:
class Formulas():
   
    def suma(self,a,b):
        res1 = a + b + 1
   
    def resta(self,a,b):
        res2 = a - b - 1

    def multi(self):
        mul = res1 * res2
        print (mul)
   

Por lo que ahora viene la pregunta (esta vez mucho mas simple)

No hay forma de crear una variable dentro de una función, y poder utilizarla en el resto del código ?
Ya se que si la creo al principio, en la clase general, o dentro de una clase podré usarla, pero no puedo crearla dentro de una función?

La idea es no crear variables que dependiendo como se ejecuta el código  lo mismo no se utilizan...

Gracias otra vez !


En línea

tincopasan


Desconectado Desconectado

Mensajes: 925


No es lo mismo conocer el camino que recorrelo.


Ver Perfil
Re: Saludos y ayuda con código Python
« Respuesta #2 en: 5 Enero 2016, 00:19 »

podés declarar una variable como global!
En línea

PUAROT

Desconectado Desconectado

Mensajes: 56



Ver Perfil WWW
Re: Saludos y ayuda con código Python
« Respuesta #3 en: 5 Enero 2016, 12:58 »

podés declarar una variable como global!
He aquí otra prueba de lo verde que estoy ... no conocía esa función ... he buscado por internet y lo he encontrado Muchas gracias !!!

Seguiré investigando, practicando y por supuesto preguntando :-D 
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python] (Ayuda) Código ofuscado.
Scripting
adrianmendezRap 8 3,095 Último mensaje 21 Abril 2012, 15:16
por adrianmendezRap
Ayuda a desofuscar codigo python
Scripting
CADi 3 1,958 Último mensaje 2 Agosto 2013, 21:35
por 0x5d
ayuda con este codigo python soy nuevo!!
Scripting
SkullMaster 3 1,152 Último mensaje 16 Noviembre 2013, 22:24
por SkullMaster
alguno me ayuda con un código roto en python? « 1 2 »
Scripting
Joe Fraddy 11 2,175 Último mensaje 23 Enero 2015, 19:00
por engel lex
ayuda a comentar codigo python
Scripting
.rn3w. 0 265 Último mensaje 3 Septiembre 2016, 22:41
por .rn3w.
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines