Python - Encriptar de forma simple

 
Vista:
Imágen de perfil de Unknow

Encriptar de forma simple

Publicado por Unknow (1 intervención) el 27/02/2023 06:26:19
Quiero hacer un programita que pueda encriptar de alguna forma simple una cadena de texto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
caracteres_encriptados = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
encriptada = ""
#Crear usuario y clave
print(".:Bienvenido:.\nPara empezar, debe crear un usuario")
user=input("Ingrese un nombre de usuario: ")
while True:
    #Hacer que la contraseña cumpla con los requisitos
    pswr = input("Ingrese una contraseña\nCaracteres permitidos: (Aa-Zz, 0-9, /,*,-,+): ")
    longitud_clave = len(pswr) #verificar la longitud de la clave
    if longitud_clave >= 8 and longitud_clave <=10:
        print("COntraseña aceptada")
        break
    else:
        print("La contraseña debe tener una longitud entre 8 y 10 caracteres.")
#Niveles de encriptacion
encriptacionbaja = 0
encriptacionmedia = 1
encriptacionalta = 2
#pedir un nivel de encriptacion
nivelencriptacion = input("Selecciona el nivel de encriptación: 0 (Bajo), 1 (Medio), 2 (Fuertes): ")
#comprobar que el nivel es valido
if nivelencriptacion == 0 or nivelencriptacion == 1 or nivelencriptacion == 2:
    #Encriptacion
    if nivelencriptacion == encriptacionbaja:
        for c in pswr:
            if c in caracteres_encriptados:
                encriptada += c + "2"
                print( encriptada)
            else:
                encriptada += c
else:
    print("El nivel de encriptación debe ser 0 (Bajo), 1 (Medio) o 2 (Alto).")

Al final no tengo ningun resultado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Encriptar de forma simple

Publicado por masklet63 (1 intervención) el 27/02/2023 13:05:32
Cambia la linea 20 por esta:
nivelencriptacion = int(input("Selecciona el nivel de encriptación: 0 (Bajo), 1 (Medio), 2 (Fuertes): "))

Asi si funciona.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Encriptar de forma simple

Publicado por Rolando José (76 intervenciones) el 12/08/2025 05:58:31
la verdad no entiendo como aun la gente sigue usando lenguajes tipado fuerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Encriptar de forma simple

Publicado por Rolando José (76 intervenciones) el 25/05/2025 04:59:52
Esto es un fraude o que??

ese codigo lo copio de alguna parte, no sabe ni lo que hace.

Para que pide un usuario si nunca lo usa??

para que se necesita usuario?? es mas importante que pida el texto a ser encriptado.

La encriptacion mas sencilla que existe es remplazar letras en un mensaje, por ejemplo tomar las letras de una palabra como murcielago o aurelio, que tuviera todas las vocales y a cada letra asignarle un numero de 0 a 9

a=0 u=1 r=2 e=3 l=4 i=5 o=6

asi una frase tan comun como "Lorem ipsum...":
1
2
3
4
5
6
7
8
9
10
11
12
13
Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua.
Ut enim ad minim veniam,
quis nostrud exercitation
ullamco laboris nisi ut aliquip
ex ea commodo consequat.
Duis aute irure dolor in
reprehenderit in voluptate
velit esse cillum dolore
eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
queda encriptada en:
1
2
3
4
5
6
7
8
9
10
11
12
13
L623m 5ps1m d6462 s5t 0m3t,
c6ns3ct3t12 0d5p5sc5ng 345t,
s3d d6 351sm6d t3mp62 5nc5d5d1nt 1t
40b623 3t d64623 m0gn0 045q10.
Ut 3n5m 0d m5n5m v3n50m,
q15s n6st21d 3x32c5t0t56n
1440mc6 40b625s n5s5 1t 045q15p
3x 30 c6mm6d6 c6ns3q10t.
D15s 01t3 52123 d6462 5n
23p23h3nd325t 5n v641pt0t3
v345t 3ss3 c5441m d64623
31 f1g50t n1440 p0250t12.
Exc3pt312 s5nt 6cc03c0t c1p5d0t0t n6n p265d3nt, s1nt 5n c14p0 q15 6ff5c50 d3s321nt m6445t 0n5m 5d 3st 40b621m.

a primera vista se encriptaron muchas palabras que dificultan su comprension inmediata

De esa forma basica se deriva el metodo cesar, en el cual, del abecedario normal, se dezplaza cierto numero de letras el mensaje y se escriben las letras dezplazadas.
dezplazando el abeedario tan solo 5 letras, el mensaje queda irreconocible:
1
2
3
4
5
6
7
8
9
10
11
12
13
Ptwjq nuxzq itptw xny fqjy,
htrxjhyjyzw finunxhnrl jpny,
xji it jnzxqti yjqutw nrhninizry zy
pfgtwj jy itptwj qflrf fpnvzf.
Zy jrnq fi qnrnq Ajrnfq,
vznx rtxywzi jCjwhnyfyntr
zppfqht pfgtwnx rnxn zy fpnvznu
jC jf htqqtit htrxjvzfy.
Iznx fzyj nwzwj itptw nr
wjuwjmjrijwny nr Atpzuyfyj
Ajpny jxxj hnppzq itptwj
jz kzlnfy rzppf ufwnfyzw.
JChjuyjzw xnry thhfjhfy hzunifyfy rtr uwtnijry, xzry nr hzpuf vzn tkknhnf ijxjwzry qtppny frnq ni jxy pfgtwzq.

La maquina enigma que usaban los alemanes hacian 7 dezplazamientos sucesivos que se controlaban con las perillas numeradas que tenia la maquina, tanto para cifrar como para descifrar,
en este video se puede ver como funcionaba la maquina enigma y como es el cifrado cesar.
https://youtu.be/ybkkiGtJmkM?t=67

A continuacion comparto el codigo de la app demo de cifrado y descifrado cesar El boton "C=>" CIFRA y el "<=C" DESCIFA, siempre que la clave sea la misma un valor de 0 a 27
El codigo para TCL es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
proc ahora {{f "%T"}} {return [clock format [clock seconds] -format $f -timezone -0500]}
proc tmsg {{txt ""} {ty "ok"} {img "info"}} {return [tk_messageBox -message $txt -type $ty -icon $img ]}
proc prin {{txt ""} {p "\n#"}} {[eval focus] insert end $p$txt}
catch {destroy .e}
toplevel .e -bg #AAA
set ws [winfo screenwidth .]
set hs [winfo screenheight .]
wm geometry .e "1250x1000+0+0"
wm withdraw .
 
 
set demo0 {
Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua.
Ut enim ad minim veniam,
quis nostrud exercitation
ullamco laboris nisi ut aliquip
ex ea commodo consequat.
Duis aute irure dolor in
reprehenderit in voluptate
velit esse cillum dolore
eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
}
set demo1 {Padre Nuestro
Que estás en el cielo
Santificado sea tu nombre
Ven a nosotros tu reino
hagase tu voluntad
En la tierra como en el cielo
Danos hoy nuestro pan de cada dia
Perdona nuestras ofensas
como también nosotros perdonámos
a los que nos ofenden
no nos dejes caer en la tentación
y libranos del mal
AMEN}
 
set demo2 {
Muchos años después, frente al pelotón de fusilamiento,
el coronel Aureliano Buendía había de recordar aquella
tarde remota en que su padre lo llevó a conocer el hielo.
Macondo era entonces una aldea de veinte casas de barro y
cañabrava construidas a la orilla de un río de aguas diáfanas
}
 
place [label .e.l0 -text "Estado" -bg #FF0 -fg #F00 -font "arial 20"] -x 0 -y 0
place [labelframe .e.fo -text "original"] -x 0 -y 50 -width 500 -height 800
place [labelframe .e.fe -text "encripta"] -x 550 -y 50 -width 500 -height 800
place [text .e.fo.t -undo 1 -tabs 50 -font "arial 20"] -x 10 -y 10 -width 450
place [text .e.fe.t -undo 1 -tabs 50 -font "arial 20"] -x 10 -y 10 -width 450
place [label .e.lsy -text "symbolos"] -x 10 -y 950
place [entry .e.esy -textvar sym -width 90] -x 100 -y 950
place [label .e.le -text "symbolos"] -x 10 -y 900
place [entry .e.el -textvar letras -width 90] -x 120 -y 900
place [label .e.pa -text "password"] -x 10 -y 850
place [entry .e.ec -textvar "clave" -width 30] -x 120 -y 850
place [button .e.b0 -text "=>" -command {
set letras ""
set n 0
if {$clave==""} {set clave aurelio}
if {$clave==""} {tmsg "debe escribir el password para encriptar, entre mas largo mas dificil sera de desencriptar"}
foreach {l} [split $clave {}] {
	if {[string length $clave]<=9} {
		append letras "\{$l\}\ \{$n\}\ "
		incr n
	}
	if {[string length $clave]>9} {
		set t [format %c [expr $n+97]]
		append letras "\{$l\}\ \{$t\}\ "
		incr n
	}
}
.e.fe.t delete 0.0 end
.e.fe.t insert end [string map $letras [.e.fo.t get 0.0 end]]
 
}] -x 500 -y 200 -width 50
place [button .e.b1 -text "<=" -command {
set letras ""
set n 0
if {$clave==""} {set clave aurelio}
if {$clave==""} {tmsg "debe escribir el password para encriptar, mas largo mas dificil sera de desencriptar"}
foreach {l} [split $clave {}] {
	if {[string length $clave]<=9} {
		append letras "\{$n\}\ \{$l\}\ "
		incr n
	}
	if {[string length $clave]>9} {
		set t [format %c [expr $n+97]]
		append letras "\{$t\}\ \{$l\}\ "
		incr n
	}
}
.e.fo.t delete 0.0 end
.e.fo.t insert end [string map $letras [.e.fe.t get 0.0 end]]
}] -x 500 -y 600 -width 50
place [button .e.bc -text "C=>" -command {
set sym "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
set letras ""
while {$clave==""||$clave<1||$clave>27} {set clave [expr int(rand()*27)]}
set n 0
if {$clave<0 || $clave>27||$clave==""} {tmsg "el passoword debe ser un numero entre 0 y 27, de lo contrario se tomara uno randomico que debera memorizar para desencriptar el mensaje encriptado"}
foreach {l} [split $sym {}] {
append letras "\{$l\}\ \{[lindex [split $sym {}] [expr $n+$clave]]\}\ "
incr n
}
.e.fe.t delete 0.0 end
.e.fe.t insert end [string map $letras [.e.fo.t get 0.0 end]]
}] -x 500 -y 250
place [button .e.bcd -text "<=C" -command {
set sym "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
set n 0
set letras ""
foreach {l} [split $sym {}] {
append letras "\{[lindex [split $sym {}] [expr $n+$clave] ]\}\ \{$l\}\ "
incr n
}
 
.e.fo.t delete 0.0 end
.e.fo.t insert end [string map $letras [.e.fe.t get 0.0 end]]
}] -x 500 -y 650
 
focus .e.fo.t
place [button .e.bfo -text "Borra Origen" -command {.e.fo.t delete 0.0 end}] -x 1100 -y 55
place [button .e.bfe -text "Borra Encripta" -command {.e.fe.t delete 0.0 end}] -x 1100 -y 110
place [button .e.bfofe -text "Swap textos" -command {
set to [.e.fo.t get 0.0 end];set te [.e.fe.t get 0.0 end]
.e.fo.t delete 0.0 end;.e.fe.t delete 0.0 end
.e.fo.t insert end $te;.e.fe.t insert end $to}] -x 1100 -y 165
place [button .e.bd0 -text "Demo1" -command {.e.fo.t delete 0.0 end
.e.fo.t insert end $demo0}] -x 1100 -y 220
place [button .e.bd1 -text "Demo2" -command {.e.fo.t delete 0.0 end
.e.fo.t insert end $demo1}] -x 1100 -y 275
place [button .e.bd2 -text "Demo3" -command {.e.fo.t delete 0.0 end
.e.fo.t insert end $demo2}] -x 1100 -y 330

El codigo para correr en python con tkinter es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
import tkinter as tk
w=tk.Tk()
code = '''
proc ahora {{f "%T"}} {return [clock format [clock seconds] -format $f -timezone -0500]}
proc tmsg {{txt ""} {ty "ok"} {img "info"}} {return [tk_messageBox -message $txt -type $ty -icon $img ]}
proc prin {{txt ""} {p "\n#"}} {[eval focus] insert end $p$txt}
catch {destroy .e}
toplevel .e -bg #AAA
set ws [winfo screenwidth .]
set hs [winfo screenheight .]
wm geometry .e "1250x1000+0+0"
wm withdraw .
set demo0 {
Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua.
Ut enim ad minim veniam,
quis nostrud exercitation
ullamco laboris nisi ut aliquip
ex ea commodo consequat.
Duis aute irure dolor in
reprehenderit in voluptate
velit esse cillum dolore
eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
}
set demo1 {Padre Nuestro
Que estás en el cielo
Santificado sea tu nombre
Ven a nosotros tu reino
hagase tu voluntad
En la tierra como en el cielo
Danos hoy nuestro pan de cada dia
Perdona nuestras ofensas
como también nosotros perdonámos
a los que nos ofenden
no nos dejes caer en la tentación
y libranos del mal
AMEN}
set demo2 {
Muchos años después, frente al pelotón de fusilamiento,
el coronel Aureliano Buendía había de recordar aquella
tarde remota en que su padre lo llevó a conocer el hielo.
Macondo era entonces una aldea de veinte casas de barro y
cañabrava construidas a la orilla de un río de aguas diáfanas
}
place [label .e.l0 -text "Estado" -bg #FF0 -fg #F00 -font "arial 20"] -x 0 -y 0
place [labelframe .e.fo -text "original"] -x 0 -y 50 -width 500 -height 800
place [labelframe .e.fe -text "encripta"] -x 550 -y 50 -width 500 -height 800
place [text .e.fo.t -undo 1 -tabs 50 -font "arial 20"] -x 10 -y 10 -width 450
place [text .e.fe.t -undo 1 -tabs 50 -font "arial 20"] -x 10 -y 10 -width 450
place [label .e.lsy -text "symbolos"] -x 10 -y 950
place [entry .e.esy -textvar sym -width 90] -x 100 -y 950
place [label .e.le -text "symbolos"] -x 10 -y 900
place [entry .e.el -textvar letras -width 90] -x 120 -y 900
place [label .e.pa -text "password"] -x 10 -y 850
place [entry .e.ec -textvar "clave" -width 30] -x 120 -y 850
place [button .e.b0 -text "=>" -command {
set letras ""
set n 0
if {$clave==""} {set clave aurelio}
if {$clave==""} {tmsg "debe escribir el password para encriptar, entre mas largo mas dificil sera de desencriptar"}
foreach {l} [split $clave {}] {
	if {[string length $clave]<=9} {
		append letras "\{$l\}\ \{$n\}\ "
		incr n
	}
	if {[string length $clave]>9} {
		set t [format %c [expr $n+97]]
		append letras "\{$l\}\ \{$t\}\ "
		incr n
	}
}
.e.fe.t delete 0.0 end
.e.fe.t insert end [string map $letras [.e.fo.t get 0.0 end]]
}] -x 500 -y 200 -width 50
place [button .e.b1 -text "<=" -command {
set letras ""
set n 0
if {$clave==""} {set clave aurelio}
if {$clave==""} {tmsg "debe escribir el password para encriptar, mas largo mas dificil sera de desencriptar"}
foreach {l} [split $clave {}] {
	if {[string length $clave]<=9} {
		append letras "\{$n\}\ \{$l\}\ "
		incr n
	}
	if {[string length $clave]>9} {
		set t [format %c [expr $n+97]]
		append letras "\{$t\}\ \{$l\}\ "
		incr n
	}
}
.e.fo.t delete 0.0 end
.e.fo.t insert end [string map $letras [.e.fe.t get 0.0 end]]
}] -x 500 -y 600 -width 50
place [button .e.bc -text "C=>" -command {
set sym "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
set letras ""
while {$clave==""||$clave<1||$clave>27} {set clave [expr int(rand()*27)]}
set n 0
if {$clave<0 || $clave>27||$clave==""} {tmsg "el passoword debe ser un numero entre 0 y 27, de lo contrario se tomara uno randomico que debera memorizar para desencriptar el mensaje encriptado"}
foreach {l} [split $sym {}] {
append letras "\{$l\}\ \{[lindex [split $sym {}] [expr $n+$clave]]\}\ "
incr n
}
.e.fe.t delete 0.0 end
.e.fe.t insert end [string map $letras [.e.fo.t get 0.0 end]]
}] -x 500 -y 250
place [button .e.bcd -text "<=C" -command {
set sym "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
set n 0
set letras ""
foreach {l} [split $sym {}] {
append letras "\{[lindex [split $sym {}] [expr $n+$clave] ]\}\ \{$l\}\ "
incr n
}
.e.fo.t delete 0.0 end
.e.fo.t insert end [string map $letras [.e.fe.t get 0.0 end]]
}] -x 500 -y 650
focus .e.fo.t
place [button .e.bfo -text "Borra Origen" -command {.e.fo.t delete 0.0 end}] -x 1100 -y 55
place [button .e.bfe -text "Borra Encripta" -command {.e.fe.t delete 0.0 end}] -x 1100 -y 110
place [button .e.bfofe -text "Swap textos" -command {
set to [.e.fo.t get 0.0 end];set te [.e.fe.t get 0.0 end]
.e.fo.t delete 0.0 end;.e.fe.t delete 0.0 end
.e.fo.t insert end $te;.e.fe.t insert end $to}] -x 1100 -y 165
place [button .e.bd0 -text "Demo1" -command {.e.fo.t delete 0.0 end
.e.fo.t insert end $demo0}] -x 1100 -y 220
place [button .e.bd1 -text "Demo2" -command {.e.fo.t delete 0.0 end
.e.fo.t insert end $demo1}] -x 1100 -y 275
place [button .e.bd2 -text "Demo3" -command {.e.fo.t delete 0.0 end
.e.fo.t insert end $demo2}] -x 1100 -y 330
'''
w.eval(code)
w.mainloop()

De igua forma se puede incrustar el codigo de tcltk dentro de otros lenguajes que usen la misma libreria tk, como perl , ruby o lua.

cifra_descifra
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Plutarco
Val: 45
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Encriptar de forma simple

Publicado por Plutarco (31 intervenciones) el 27/06/2025 20:48:27
De inmediato se ve que es una persona que está iniciando apenas en el tema de python, sabemos que eres un sabio, pero si no apoyas a los que van empezando mejor no los confundas.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Encriptar de forma simple

Publicado por Rolando José (76 intervenciones) el 12/08/2025 02:38:40
La verdad nunca ha sido mi intencion confundir a nadie estoy en estos foros desde hace mas o menos 16 años, creo que mis primeras contribuciones a los foros de python fueron en el 2009, y si alguien confundo es por mi limitada capacidad cerebral que se afecto con un ACV que tuve en 2020, y hasta ahora estoy aprendiendo a leer escribir y caminar y menos si voluntariamente escojen un lenguaje de programacion tan dificil como lo es python, en cambio de uno tan sencillo como tcltk que en cada ocacion intento demostrar compartiendo codigo de TCLTK y no de python, que es un completo desproposito.

Para mi un lenguaje de programacion tiene la finalidad de ahorrar tiempo, que es lo unico que no se puede recuperar, por lo tanto no entiendo como una persona inteligente puede acceder a aprender un lenguaje que obliga a escribir mas lineas de codigo y no menos para hacer lo mismo que hace otro lenguaje tan sencillo como tcltk, por eso no comparto codigo de python, pero si lo hago de tcl, porque es mucho mas sencillo que python, empezando que no usa 8 tipos de variables distintas, segundo, ya no es util ni practico hacer aplicaciones sin GUI, asi sea uno web minimo, luego un lenguaje que no tiene su propio GUI, no es inteligente para desarrollar aplicaciones reales, tercero, las buena practicas de python, son muy dificiles de seguir si el mismo lenguaje dificulta la codificacion, usando tabulador como idenacion, lo cual lo hace dificil de leer porque en muy pocos IDEs el tabulador se puede ver.


Mi intencion no es confundir, todo lo contrario, mi intencion es a traves de estos foros contestar lo mas pronto posible para que los pocos usuarios que aun vienen a preguntar no tengan que esperar años por una pista que les ayude a aprender.

Si alguien piensa que su tiempo es muy valioso para estar haciendo tareas a novatos, creo que deberia no volvr a contestar foros, que busque otra fuente para alimentar su ego, entre mas tareas les contesten, mas van a aprender, creo que podriamos hacer que aprendan mas si no se comparte el codigo sino la imagen del codigo, asi por lo menos los obligamos a que lo escriban de alguna manera.

Desde 2020 sufri un ACV un ictus, que disminuyo mis capacidades cerebrales adjunto imagen que lo prueba, mi intension es que cada vez mas personas pierdan menos tiempo, viendo soluciones a sus problemas en lenguaje tcl implementado en python.

Pues desde hace unos 31 años (1994) python usa a tcltk como embebido para hacer sus aplicaciones graficas, sin darle el merito que merece.

cada vez que se ejecuta una aplicacion con tkinter, el que realmente se ejecuta es tcltk entro de un hilo de python.
como tcltk es tan minimo, puede correr dentro de python, lua, ruby, perl, embebido, mientras que los informaticos que viven de los cursos sacan pecho y dicen que es python el mejor lenguaje de programacion, tan bueno que no ha sido capaz de hacer su propio GUI.



pag2-3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Plutarco
Val: 45
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Encriptar de forma simple

Publicado por Plutarco (31 intervenciones) el 12/08/2025 18:00:58
Realmente siento mucho que hayas tenido un ACV y aunque es muy loable lo que haces, eso no significa que los demás no merezcan una oportunidad o una orientación.

A mi humilde entender, si bien TCL/TK es útil para ciertas tareas, especialmente en el ámbito de las herramientas EDA y scripting, Python es más versátil y ampliamente utilizado en una variedad de campos, incluyendo desarrollo web, ciencia de datos, aprendizaje automático y scripting genera (no digo que Tcl no sea igual de utilizado). Python es conocido por su sintaxis clara y fácil de aprender, así como por una gran cantidad de bibliotecas y frameworks disponibles.

Flet es un ejemplo claro de la versatilidad de python como GUI.

En fin, no voy a convencerte de algo de lo que tu mismo no estás convencido, más bien te invito a profundizar en python, creo yo que es muy fácil escribir código en pyrthon, no digo que el lenguaje sea fácil, eso depende de cada desarrollador, pero justamente esa es la riqueza de python, puedes escribir el código de muchas formas para obtener el mismo resultado, como todos los lenguajes, todo depende del nivel de conocimiento que tengas de la herramienta.

TCL es un lenguaje elegante, creo yo que adecuado para el 90% de las tareas gracias a su estrecha relación con C, sin embargo, yo no lo usaría a menos que haya una razón apremiante para no usar python, es decir, yo elegí python porque me gustó, me parece muy versátil, pero no estoy casado con el lenguaje.

La mayoría de los puntos planteados por ti o por mi podrían aplicarse igualmente a cualquier otro lenguaje que no sea actualmente "popular"; me viene a la mente Lisp (que es más de lo que parece y sin embargo no es popular).

El tema es que, como no conocemos TLC tan bien como python, simplemente por eso no lo usamos, sin embargo, aplica igual en sentido inverso para ti, tal vez si le dieras la oportunidad a python, probablemente le encuentres lo bello al lenguaje y entonces tengas 2 opciones y uses la más adecuada dependiendo de la tarea.

Para usar python o TLC se necesita tiempo, esfuerzo e inversión personal para sacarle el máximo provecho, pero cuando lo logras, obtienes una generosa recompensa. Entonces empiezas a ver las ganancias de productividad; luego empiezas a superar tus expectativas y, finalmente, empiezas a preguntarte por qué usarías otra cosa.

Pero eso no significa que tengamos la razón absoluta y todos deban cambiarse a lo que nosotros por decisión propia hemos decidido adoptar como el mejor lenguaje para resolver nuestras tareas.

Como última reflexión: Si hoy tuviera que emprender una nueva aventura, sin dudarlo elegiría Tcl como mi idioma predeterminado, pero para eso necesitaría que python ya no me ofreciera nada nuevo, y eso, la verdad, no ha sucedido aún.

Un abrazo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Encriptar de forma simple

Publicado por Rolando José (76 intervenciones) el 12/08/2025 19:13:13
gracias por sentirlo, pero desde mi experiencia es lo mejor que le puede pasar a uno cuando esta uno estancado como programador, tiene uno mucho tiempo libre para volver a aprender todo, y en mi caso aunque perdi la memoria, no hay tal cosa, el cerebro al parecer tambien tiene una FAT, y lo que pierde es la FAT Tabla de particion, los recuerdos se van recupeerando a medida que el cerebro tiene tiempo para reorganizarse.

En mi vida anterior, desperdicie tiempo tratando de aprender lo de moda, aprender python es una perdida de tiempo y dinero si no tienes un proyecto propio para hacer, es un lenguaje muy elegante, pero no sirve para hacer todo como lo venden, al decir verdad no hay ninguna libreria de python hecha eneramente en python. la mayoria de librerias estan hechas en C o C++, algo que nadie lo dice porque se les daña el negocio de la venta de cursos de programacion, que es basicamente a lo que podeos recurrir los programadores cuando fracasamos.

Descubri tcl y me sorprendio saber que ha estado funcionando por debajo de python desde 1994, nunca lo dejaron surgir, por miedo ha que la gente hiciera software poderoso como se desarrollo con tcltk, como tkinter, o SQLite, que empezaron siendo librerias de tcl escritas en tcl.

Deberiamos enseñar TCL/TK y luego python y finalmente C o C++

con tcltk ya de porsi enseñamos a hacer apps con GUI para python, lua, ruby, perl java y c y c++
como tcltk es completamente lenguaje script, es completamente multiplataforma pues depende tanto del evaluador como JS depende del navegador.

Quizas un poco menos, porque los evaluadores de tcltk permiten hacer servidores, cosa que no permiten los navegadores por miedo a perder el monopolio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Plutarco
Val: 45
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Encriptar de forma simple

Publicado por Plutarco (31 intervenciones) el 12/08/2025 20:21:13
Como lo dije anteriormente, no voy a tratar de convencerte de algo de lo que ya de por si no estás convencido e insistes en atacar solo porque así es lo que piensas.

Tampoco puedes generalizar que un programador fracasado es aquel que da cursos de programación.

Creo que la mayoría que usamos python sabemos que las librerías fueron hechas en C o C++ (por algo las hacen para python), pero no entremos en debate, gracias por enseñarnos a hacer apps con GUI como tu dices, gracias por TKinter.

Algunos seguiremos usando python, otros como tu usarán Tcl, otros C# o Visual Basic .net aunque los defensores de C# digan que es mejor.

Cada quien habla como le va en la feria.

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Plutarco
Val: 45
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Encriptar de forma simple

Publicado por Plutarco (31 intervenciones) el 27/06/2025 20:45:03
Hola mi estimado "desconocido"

Todo está bien, solo acuerdate que en el input lo que recibes es un string, entonces en nivelencriptacion recibes una cadena no un número, solo conviertelo a entero y ya te manda un resultado.

nivelencriptacion = int(nivelencriptacion)

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar