Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - PUAROT

#81
Estoy empezando con la programación en Python, y tampoco tengo mucha esperiencia en linux, aunque algo me defiendo.

El problema que tengo es que tengo un pequeño programa hecho por mi en Python, el cual me funciona el el terminal de win y en macos pero en la Raspberry donde tengo instalado la versión 15.10 de UBUNTU MATE, y Python 3,4,3,  si lo ejecuto en el IDLE de Python 3.4.3 funciona bien y si desde terminal le digo : python3 archivo.py o python archivo.py también va bien (he creado un alias ya que no utilizo la versión 2.7 de python ) pero al hacer doble clic en el archivo en el entorno gráfico (en las propiedades del archivo tiene marcada la casilla de permitir tratar el archivo como ejecutable) me da la opción de Ejecutar (la cual no hace nada) y ejecutar en terminal, esta ultima me abre una ventana de terminal y empieza a ejecutar el código, pero devuelve un error que no me da tiempo a leer y se cierra la ventana.

Mi sensación es que al darle a ejecutar en terminal me lo intenta abrir con la version 2.7 de Python instalada en el sistema por defecto, ¿puede ser eso ? como puedo solucionarlo en caso de ser eso  ?

Muchas gracias de antemano y espero que se entienda, que creo que lo he escrito algo enrevesado .
#82
Scripting / Re: Modulo random
17 Enero 2016, 11:08 AM
Cita de: Once en 15 Enero 2016, 02:43 AM
Tienes que concatenar los valores, no sin antes convertir el valor aleatorio a string:

Código (python) [Seleccionar]

aleatorio = random.randint(0, 150)
variable = "F" + str(aleatorio)


Saludos!

Muchas gracias !!!!!!!!!!!!!!!!!!!!!!!!!!!!! ;-)

Era mas simple de lo que me imaginaba, no se me había ocurrido.

Esto de estar aprendiendo por mi cuenta y no tener a quien preguntar es algo desesperante, menos mal que están los foros y los foreros  ;-)
#83
Scripting / Modulo random
14 Enero 2016, 23:18 PM
Tengo una consulta sobre como utilizar el modulo random en un caso concreto, ( no se si puede)

Necesito tener una variable que sea F(x) donde la F es fija y la x un numero aleatorio entre 1 y 150  Por ejemplo
variable = F7

Utilizando  random.randint(0,150) tengo el valor aleatorio, pero no se como utilizarlo para que la variable tenga el valor F7 por ejemplo y no F 7

Se que también está la función shuffle, pero para utilizarla tendría que crear una lista que fuera desde F0 hasta F150

Gracias por la ayuda de antemano !
#84
Cita de: tincopasan en  5 Enero 2016, 00:19 AM
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 
#85
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:
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 !
#86
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 !!

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)