|
Mostrar Temas
|
Páginas: [1] 2
|
1
|
Programación / Programación C/C++ / [C] [solved] Comportamiento inesperado
|
en: 4 Abril 2022, 22:15 pm
|
Hola a todos. Estoy tratando de implementar el metodo str.center() que existe en Python pero en C y de paso estoy aprendiendo a programar en C, pero al borrar la linea que añade el carácter nulo al String resultante obtengo un resultado indeseado.
He estado dandole vueltas al asunto pero no me da el maní que tengo por cerebro, asi que acudo a ustedes en buscas de respuesta.
Muchas Gracias.#include <stdio.h> #include <string.h> char* center(int, char, char *); int main() { char* pstr = center(30, '*', "hola"); printf("Value: %s\t Address: %p\n", pstr , pstr ); return 0; } char* center(int width, char fc, char* str) { char output[width]; char* buffer = NULL; int cc = 0, n = 0; for(char* i = str; *i != '\0'; ++i) cc += 1; n = (width - cc) / 2; for(int j = 0; j < n; ++j) output[j] = fc; output[n] = '\0'; // Al borrar esta linea obtengo una salida incorrecta for(int i = strlen(output ); i < width ; ++i ) output [i ] = fc ; return (buffer = output); }
|
|
|
2
|
Programación / Scripting / [Python3] Me podrian explicar el funcionamiento.
|
en: 27 Junio 2020, 04:12 am
|
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
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]
|
|
|
3
|
Programación / Scripting / [Python3-Ayuda]
|
en: 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.
|
|
|
4
|
Programación / Scripting / [Python3-Graficador de funciones basico]
|
en: 1 Abril 2020, 06:01 am
|
Hola que tal todos este es un muy simple graficador de funciones usando el módulo turtle.
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
|
Programación / Scripting / Python
|
en: 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!
|
|
|
6
|
Programación / Scripting / [Python3 + turtle] = Dibujo de Pacman
|
en: 17 Marzo 2020, 04:41 am
|
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()
|
|
|
7
|
Programación / Scripting / [Python3-tkinter ejemplo de calculadora]
|
en: 8 Marzo 2020, 16:38 pm
|
Hola a todos aquí les dejo una calculadora sin funcionalidad. Espero les guste o puede que no
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()
|
|
|
8
|
Programación / Scripting / [Python3] Ayuda con manipulacion de ficheros
|
en: 1 Febrero 2020, 01:51 am
|
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 agradeceriaGracias por responder al final lo solucione usando expresiones regulares puede que no sea muy eficiente pero lo logre hacer . Este es el código
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")
|
|
|
10
|
Programación / Scripting / [Python3]¿Cómo lo puedo optimizar?
|
en: 14 Enero 2020, 03:34 am
|
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. 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()) [/
|
|
|
|
|
|
|