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ú

Temas - 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
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]
#4
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!
#5
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()


#6


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()

#7
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")

#8
Scripting / [Python3-Flask] Ayuda
27 Enero 2020, 02:49 AM
¿Existe alguna forma enmascarar la url en flask?


Gracias por su ayuda
#9
Básicamente se trata de una guía telefónica, la cual tiene ser construida usando diccionarios esa es la restricción, en la cual se puede realizar una búsqueda por  el nombre de la persona y luego imprimir ese nombre con su respectivo número.

PERO TODO INDICA QUE LE FALTA UNA MEJOR OPTIMIZACIÓN.


Gracias por sus respuestas.

Código (python) [Seleccionar]

    def phone_book():
        n = int(input())
        phone_book = {}  # dictionary
        for i in range(n):
            string = input().split()
            phone_book.update({string[0]: int(string[1])})
        return phone_book

    # processing
    def query(phone_book):
        i = 0
        while i < len(phone_book):
            _query = input()
            if _query in phone_book:
                print(f"{_query}={phone_book[_query]}")
            else:
                print("Not found")
            i += 1
    query(phone_book())

[/
#10
Scripting / [Python3] Ayuda contar numeros en string
29 Diciembre 2019, 18:04 PM
Hola buenas a todos, molestaba a ver si me dan alguna de idea de como solucionar este ejercicio

Debo de diseñar un programa que cuente la cantidad de numeros en una cadena, lo que he podido realizar hasta ahora es simplemente contar  la cantidad de digitos que aparecen sin importar la cifra.

Ejemplo
'un 1 dos 201 tres 3', con el codigo que realice me cuenta cinco digitos y no deberian de ser cinco sino 3.
No se si me explico
Gracias de antemano por su atención

Código (python) [Seleccionar]

#Ejercicio#165 Contar cantidad de números en una cadena
  string = input("Digita una cadena: ")
  numbers = 0
  for i in range(0,len(string)):
      if string[i].isnumeric():
          numbers+=1
   print("Cantidad de números encontrados => ",numbers)


MOD: Titulo modificado (mas descriptivo)
#11
Scripting / ¿Cómo lo puedo hacer más eficiente?
19 Diciembre 2019, 09:02 AM
Siento que sea algo extenso, si alguno me diera alguna idea de como hacerlo más eficiente se aceptan sugerencias.Gracias

Código (python) [Seleccionar]

# Ejercicio#129 Máximo común divisor

    # Lista que contendra los valores divisores == 0
    # para luego de esta lista sacar el maximo de todos.
    maximo_divisor = []

    # Pedir datos al usuario
    a = int(input("Digita el primer dato: "))
    b = int(input("Digita el segundo dato: "))
    if 0 > (a or b):
        print("Error al interpretar")
    else:
        if a < b:
            for i in range(1,a+1):
                divisor_a = a%i
                divisor_b = b%i
                # print(divisor_a, divisor_b)
                if divisor_a != 0 and divisor_b != 0:
                    print(f"El numero {i} no es divisor de {a}")
                else:
                    if divisor_a == 0 and divisor_b == 0:
                        print(f"El número {i} es divisor de {a}")
                        if divisor_a == 0:
                            maximo_divisor.append(i)               
        else:
            for i in range(1,b+1):
                divisor_a = a%i
                divisor_b = b%i
                # print(divisor_a, divisor_b)
                if divisor_a != 0 and divisor_b != 0:
                    print(f"El numero {i} no es divisor de {b}")
                else:
                    if divisor_a == 0 and divisor_b == 0:
                        print(f"El número {i} es divisor de {b}")
                        if divisor_b == 0:
                            maximo_divisor.append(i)
        print()
        print("El maxio común divisor es => {}".format(max(maximo_divisor)))
#12
Scripting / Pequeño programa en python de desglose
19 Diciembre 2019, 04:55 AM
Código (python) [Seleccionar]

    # Ejercicio#67 Desglose de un monto determinado
    monto = int(input("Digita el monto: "))
    print()

    # Billetes disponibles
    # 500, 200, 100, 50, 20, 10, 5
    # Monedas disponibles 2, 1

    b500 = monto//500
    monto %= 500
    b200 = monto//200
    monto %= 200
    b100 = monto//100
    monto %= 100
    b50 = monto//50
    monto %= 50
    b20 = monto//20
    monto %= 20
    b10 = monto//10
    monto %= 10
    b5 = monto//5
    monto %= 5
    m2 = monto//2
    monto %= 2
    m1 = monto//1
    monto %= 1
    print(f"{b500} billete de 500")
    print(f"{b200} billete de 200")
    print(f"{b100} billete de 100")
    print(f"{b50} billete de 50")
    print(f"{b20} billete de 20")
    print(f"{b10} billete de 10")
    print(f"{b5} billete de 5")
    print(f"{m2} monedas de 2")
    print(f"{m1} monedas de 1")
#13
Scripting / Duda en python3
19 Diciembre 2019, 02:22 AM
Hola buenos días o buenas tardes a todos soy nuevo en esto de estar en un foro, asi disculpen si la pregunta es tonta, ¿Porqué al utilizar estos operadores me genera salidas diferentes?.

Gracias por sus respuestas.
Código (python) [Seleccionar]

r = ('a' or 'A')
b = ('a' and 'A')
print (r, b)

# r = 'a'
# b = 'A'