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 - reconFito

#1
Hola que tal a todos, me encontre este codigo y no termino de entender input.n y los demas usos
que le dan en este codigo.
Crei que era sobreescritura del metodo input pero eso solo lo he visto implementado en clases
no en funciones simples.

Gracias por sus respuestas

Código (python) [Seleccionar]


inputs = """
emanuel
eduardo
nuñez
maliños
"""


def input():
    try:
        input.n += 1
    except Exception:
        input.n = 0
    return inputs.split()[input.n]


first = input()
second = input()
print(first, second)


[/size][/size][/size][/size]
#2
Scripting / [Python3-Ayuda]
2 Abril 2020, 02:54 AM
Existe alguna de forma crear un script que se este siempre activo en espera de cambios de un directorio determinado.
Ya que quiero realizar uno en python con dicho cometido para mover los ejecutables de archivos C a una carpeta aparte de donde tengo el código de C valga la redundancia.Se que hay programas que ya lo hacen.

Que tengo que buscar ya que no se por donde empezar.
#3
No entiendo ni madres de lo que veo pero se ve genial.
;-) ;-)
Sigue así compañero
#4
Hola que tal todos este es un muy simple graficador de funciones usando el módulo turtle.

Código (python) [Seleccionar]

def graficar_funciones2D(*args):
    """
    El primer vector se tomara como las coordenadas de inicio de la gráfica
    si no las proporcionas por defecto es (0, 0).
    """

    # ----------- Workspace --------------
    WIDTH = 700
    HEIGHT = 500
    wn = Screen()
    wn.title("Vectores y gráficas básicas")
    wn.setup(WIDTH, HEIGHT)
    wn.screensize(WIDTH-10, HEIGHT-10)
    wn.bgcolor("#FFFDF9")

    pen = Turtle()
    pen.pen({"pensize": 2,
             "shown": False,
             "speed": -1})

    # ----------- global variables --------------
    dot_radio = 5
    color = "red"
    wn_width = wn.window_width()
    wn_height = wn.window_height()

    """ # Descomenta esto si quieres ver un fondo cuadriculádo
    # ----------- grid --------------
    pen.pu()
    pen.goto(-wn_width, wn_height)
    pen.seth(0)
    pen.pd()
    for i in range(0, wn_height+wn_height, 10):
        pen.pencolor("#daafaf")
        pen.pensize(1)
        pen.fd(wn_width)
        pen.up()
        pen.goto(-wn_width, (wn_height)-i)
        pen.down()
        pen.fd(wn_width)

    pen.pu()
    pen.goto(-wn_width, wn_height)
    pen.seth(270)
    pen.pd()
    for j in range(0, wn_width+wn_width, 10):
        pen.fd(wn_height)
        pen.up()
        pen.goto(-wn_width+j, wn_height)
        pen.down()
        pen.fd(wn_height)
    """

    # ----------- Graph --------------
    pen.up()
    pen.home()
    pen.pencolor("#090909")
    pen.pd()
    for i in range(4):
        pen.fd(wn_width)
        pen.bk(wn_width)
        pen.lt(90)

    # ----------- Points --------------
    vector = args
    pen.up()
    pen.goto(vector[0][0], vector[0][1])
    pen.pd()
    for values in vector:
        # pen.up()  # Descomenta esta linea si no deseas ver el trazo del dibujo
        pen.goto(values[0], values[1])
        # pen.pd()  # Descomenta esta linea si no deseas ver el trazo del dibujo
        pen.dot(dot_radio, color)
        # pen.write(tuple(values), False, "right", ("tahoma", 7, "italic"))
    wn.listen()
    wn.onkeypress(lambda: wn.bye(), "space")
    wn.mainloop()

[/size][/size][/size]
#5
si en todo caso estas intentando acceder a un nivel del directorio en el cual no necesitas permisos y además ese directorio existe puedes utilizar  os.chdir("ruta"), caso contrario lanzara una excepción

AYUDA
Documentación de python
https://docs.python.org/3/library/os.html

Video explicativo del uso básico del modulo os(en ingles).
https://www.youtube.com/watch?v=tJxcKyFMTGo

Espero te sirva de algo y logres terminar el script  ;-)
#6
Puedes utilizar la función os.getcwd() que viene predefinida en el módulo os valga la redundancia
Espero te sirva de algo.
#7
Scripting / Python
17 Marzo 2020, 06:28 AM
¿Es necesario usar la estructura try/except cuando envió un correo usando ssl  o simplemente cuando
utilizo tls?

¿Cuales son las convenciones a seguir al enviar correos por medio de python?

Gracias por sus respuestas!
#8
Código (python) [Seleccionar]

from turtle import Turtle, Screen

width = 600
height = 600
X = width - 10
Y = height - 10


def _turtle():
    # Pantalla
    pantalla = Screen()
    pantalla.title("Pacman")
    pantalla.bgcolor("#254555")
    pantalla.setup(width=width, height=height)
    pantalla.colormode(255)
    pantalla.screensize(X, Y)
    pantalla.delay(0)

    # Tortuga
    turtle = Turtle()
    turtle.pensize(2)
    turtle.hideturtle()
    turtle.speed(0)
    turtle.pu()
    turtle.goto(-X/2, Y/2)
    turtle.pd()
    turtle.pencolor("#212140")
    for i in range(91):
        turtle.setheading(-i)
        turtle.fd(width/2)
        turtle.bk(width/2)
    turtle.pu()
    turtle.goto(X/2, Y/2)
    turtle.pd()
    for i in range(91):
        turtle.setheading(i)
        turtle.fd(-width/2)
        turtle.bk(-width/2)

    turtle.pu()
    turtle.goto(-X/2, -Y/2)
    turtle.pd()
    for i in range(91):
        turtle.setheading(i)
        turtle.fd(width/2)
        turtle.bk(width/2)

    turtle.pu()
    turtle.goto(X/2, -Y/2)
    turtle.pd()
    for i in range(91):
        turtle.setheading(-i)
        turtle.fd(-width/2)
        turtle.bk(-width/2)
    turtle.pu()
    turtle.home()
    turtle.pd()
    for i in range(round(width/2)):
        turtle.pencolor("#cfbb00")
        turtle.setheading(-i)
        turtle.fd(90)
        turtle.bk(90)

    turtle.pu()
    turtle.goto(-10, 45)
    turtle.color("#001020")
    turtle.pd()
    turtle.begin_fill()
    turtle.circle(10)
    turtle.end_fill()

    pantalla.exitonclick()


_turtle()


#9


Hola a todos aquí les dejo una calculadora sin funcionalidad.
Espero les guste o puede que no


Código (python) [Seleccionar]

from tkinter import Tk
from tkinter import ttk
from math import floor


class App(ttk.Frame):
    def __init__(self, master):
        super().__init__(master)
        self.pack()
        # Variables
        self.screen = None
        # Metodos de clase
        self.style_widgets()
        self.create_widgets()

    # Estilos de los componentes del Frame
    def style_widgets(self):
        # estilos generales
        ttk.Style().configure("TEntry", foreground="#00000a9")
        ttk.Style().configure("TButton", width=10, padding=(
            15, 10), relief=ttk.tkinter.FLAT)
        ttk.Style().configure("E.TButton", background="#709234")
        ttk.Style().configure("OP.TButton", background="#cccccc")

    def create_widgets(self):
        self.screen = ttk.Entry(self)
        self.screen.config(justify=ttk.tkinter.RIGHT)
        self.screen.grid(row=1, column=1, ipady=20,
                         columnspan=4, sticky="NSWE")

        # Crear botones
        dic_buttons = {}  # diccionario de botones
        for i in range(1, 13):
            dic_buttons[f"btn{i}"] = ttk.Button(self, text=f"{i}")

        dic_buttons.update([("btnmul", ttk.Button(self, text="x")),
                            ("btndif", ttk.Button(self, text="-")),
                            ("btnplus", ttk.Button(self, text="+")),
                            ("btnmod", ttk.Button(self, text="/"))])

        dic_buttons["btn9"].grid(row=2, column=1)
        dic_buttons["btn8"].grid(row=2, column=2)
        dic_buttons["btn7"].grid(row=2, column=3)
        dic_buttons["btnmul"].grid(row=2, column=4)
        dic_buttons["btn6"].grid(row=3, column=1)
        dic_buttons["btn5"].grid(row=3, column=2)
        dic_buttons["btn4"].grid(row=3, column=3)
        dic_buttons["btndif"].grid(row=3, column=4)
        dic_buttons["btn3"].grid(row=4, column=1)
        dic_buttons["btn2"].grid(row=4, column=2)
        dic_buttons["btn1"].grid(row=4, column=3)
        dic_buttons["btnplus"].grid(row=4, column=4)
        dic_buttons["btn10"].grid(row=5, column=1)
        dic_buttons["btn11"].grid(row=5, column=2)
        dic_buttons["btn12"].grid(row=5, column=3)
        dic_buttons["btnmod"].grid(row=5, column=4)

        dic_buttons["btn10"].config(text=",")
        dic_buttons["btn11"].config(text="0")
        dic_buttons["btn12"].config(text="=", style="E.TButton")

        # print(dic_buttons.keys())
        dic_buttons["btnmul"].config(style="OP.TButton")
        dic_buttons["btndif"].config(style="OP.TButton")
        dic_buttons["btnplus"].config(style="OP.TButton")
        dic_buttons["btnmod"].config(style="OP.TButton")


if __name__ == "__main__":
    root = Tk()
    root.resizable(False, False)
    root.title("ttk Example")
    app = App(root)
    app.mainloop()

#10
Hola a todos los que lean esto.
El siguiente script trata de automatizar el envió de correos, por medio del uso de dos ficheros.

1.carta.txt:
Estimado/a H #CLIENTE#
Tenemos noticias de que usted don/doña H #CLIENTE# no a abonado el importe
de la cuota mensual a que le obliga el draconiano contrato que firmó.

2.cliente.txt:
alguncorreo@gmail.com nombre apellido
alguncorreo@gmail.com nombre apellido

La idea es sustituir #CLIENTE# por el nombre y apellido del cliente, que es lo que ya he logrado hasta el momento y sustituir H(hombre) si esta presente o M(mujer) por su correspondiente identificativo Estimado/a y don/doña esta es la parte que aun no he podido hacer si me pudieran dar alguna idea de como optimizar y como finalizar este ejercicio se los agradeceria


Gracias por responder al final lo solucione usando expresiones regulares puede que no sea muy
eficiente pero lo logre hacer  ;D.
Este es el código

Código (python) [Seleccionar]

def envio_correo_personalizado():
    try:

        # variables y apertura de ficheros
        nombre = []
        mensaje = ""
        carta = open("carta.txt", "r")
        carta_copia = open("carta.txt.copia", "w")
        cliente = open("cliente.txt", "r")

        # lectura de clientes
        for _cliente in cliente:
            nombre += _cliente.rstrip().split("/")

        # Leyendo el fichero carta
        linea = carta.readline()
        while linea != "":
            mensaje += linea
            linea = carta.readline()

        # TODO Cambiando los valores del mensaje segun el genero usando expresiones regulares.
        # FIXME Buscar otra forma de hacerlo.
        mensaje = re.sub(
            r"/a|/doña|H", "", mensaje) if "H" in mensaje else re.sub(r"o/|don/|M", "", mensaje)
        mensaje = re.sub(r"#CLIENTE#", nombre[1], mensaje)
        print("Mensaje cambiado")
        print(mensaje)

        for i in mensaje:
            carta_copia.write(i)

        # cierre de ficheros
        carta.close()
        cliente.close()
        carta_copia.close()

    except IOError:
        print("Fichero no existe")