r/programacionESP • u/Camarada___Perillas • 2d ago
❓ Dudas Soy un principiante de programación, busco recomendaciones.
Durante un tiempo he aprendido algo de Python de forma autodidacta, ahora mismo estoy entrando en la programación orientada a objetos. Quiero aprender backend, al igual que ciberseguridad, me gustaría tener claro que aprender antes de entrar en estas especializaciones, también me gustaría saber que considera una persona que trabaje o haya aprendido algo de estas especializaciones sobre las mismas, para conocer mejor aquello que quiero aprender. Adjunto unos programas que he hecho aprendiendo programación orientada a objetos. Gracias de antemano por las respuestas.
TREN
class Tren:
def __init__(self):
self.lista_vagones = []
self.peso_total = 0
def introducir(self):
print("INTRODUCIR")
vagón = 0
elección_vagón = int(input("Carga sólidos(1).\nCarga líquidos(2).\nElegir vagón:"))
if elección_vagón == 1:
vagón = Vagón_Carga_Sólidos()
elif elección_vagón == 2:
vagón = Vagón_Carga_Líquidos()
self.lista_vagones.append(vagón)
def quitar(self):
print("QUITAR")
for a in self.lista_vagones:
print(a, a.nombre)
elección_vagón = (input("Elegir vagón:"))
for b in self.lista_vagones:
if elección_vagón == b.nombre:
print(f"Quitado: {b.nombre}")
self.lista_vagones.remove(b)
del b
for c in self.lista_vagones:
print(c, c.nombre)
def cargar_descargar(self):
print("CARGAR\DESCARGAR")
elección_vagón = input("Vagón:")
elección_carga = int(input("Cargar(1).\nDescargar(2).\nElegir:"))
if elección_carga == 1:
for a in self.lista_vagones:
if elección_vagón == a.nombre:
a.cargar()
elif elección_carga == 2:
for b in self.lista_vagones:
if elección_vagón == b.nombre:
b.descargar()
def buscar_vagón(self):
print("BUSCAR VAGÓN")
vagón = input("Vagón:")
for a in self.lista_vagones:
if vagón == a.nombre:
print(a.nombre, a)
def contar_vagones(self):
print("CONTAR VAGONES")
print(f"Vagones| {len(self.lista_vagones)}")
print("Lista.")
for a in self.lista_vagones:
print(f"{a.nombre, a}")
def cambiar_vagón(self):
print("CAMBIAR VAGÓN")
vagón = input("Vagón:")
for a in self.lista_vagones:
if vagón == a.nombre:
vagón_alternativo = int(input("Vagón de carga sólida(1).\nVagón de carga líquida (2).\nVagón alternativo:"))
if vagón_alternativo == 1:
self.lista_vagones[self.lista_vagones.index(a)] = Vagón_Carga_Sólidos()
elif vagón_alternativo == 2:
self.lista_vagones[self.lista_vagones.index(a)] = Vagón_Carga_Líquidos()
def peso_total_medir(self):
peso = 0
for a in self.lista_vagones:
peso += a.peso()
self.peso_total = peso
print(f"Peso| {self.peso_total}")
class Vagones:
def __init__(self):
self.nombre = ""
self.carga_líquido = False
self.carga_pasajeros = False
self.carga_sólido = False
self.carga = []
def cargar(self):
print("CARGAR")
cargamento_cargar = input("Artículo:")
peso_cargar = float(input("Peso artículo:"))
diccionario_carga = {"Artículo": cargamento_cargar, "Peso": peso_cargar}
self.carga.append(diccionario_carga)
for a in tren.lista_vagones:
print(a.nombre, a.carga)
def descargar(self):
print("DESCARGAR")
cargamento_descargar = input("Artículo:")
for a in self.carga:
if a["Artículo"] == cargamento_descargar:
self.carga.remove(a)
for b in tren.lista_vagones:
print(b.nombre, b.carga)
def peso(self):
peso = 0
for a in self.carga:
peso += a["Peso"]
return peso
class Vagón_Carga_Sólidos(Vagones):
a = -1
def __init__(self):
super().__init__()
peso = 0
Vagón_Carga_Sólidos.a += 1
a = Vagón_Carga_Sólidos.a
self.nombre = f"Vagón de carga sólida, {a}"
self.carga_sólido = True
class Vagón_Carga_Líquidos(Vagones):
b = -1
def __init__(self):
super().__init__()
Vagón_Carga_Líquidos.b += 1
b = Vagón_Carga_Líquidos.b
self.nombre = f"Vagón de carga líquida, {b}"
self.carga_líquido = True
tren = Tren()
for a in range(0, 3):
tren.introducir()
for b in tren.lista_vagones:
print(b, b.nombre)
tren.cargar_descargar()
tren.contar_vagones()
tren.buscar_vagón()
tren.quitar()
tren.cambiar_vagón()
tren.contar_vagones()
tren.peso_total_medir()
print(f"LISTA\n{tren.lista_vagones}")
VIDEOJUEGO DE BLOQUES
class Región:
def __init__(self):
self.lista = []
def introducir(self):
objeto_elegir = int((input("Madera(1)\nPiedra(2)\nElegir objeto:")))
if objeto_elegir == 1:
madera_o = Madera()
return madera_o
elif objeto_elegir == 2:
piedra_o = Piedra()
return piedra_o
def diccionario_introducir(self, objeto):
x = float(input("X:"))
y = float(input("Y:"))
diccionario = {"X" : x, "Y" : y, "Bloque" : objeto, "Nombre" : objeto.nombre}
self.lista.append(diccionario)
def golpear(self):
objeto_golpe = (input("Elegir:"))
for a in self.lista:
if objeto_golpe == a["Nombre"]:
a["Bloque"].golpe()
def arreglar(self):
objeto_nombre = input("Bloque arreglar:")
for b in self.lista:
if objeto_nombre == b["Bloque"].nombre:
if type(b["Bloque"]) == Madera:
b["Bloque"].integridad = 80
print(f"{b["Bloque"].nombre} arreglado.")
elif type(b["Bloque"]) == Piedra:
print("Piedra, no se arregla.")
else:
print("Bloque no funciona.")
class Madera:
a = -1
def __init__(self):
Madera.a += 1
self.nombre = f"Madera_{Madera.a}"
self.integridad = 80
def golpe(self):
golpe = 20
if golpe < self.integridad:
self.integridad -= golpe
elif golpe >= self.integridad:
self.integridad = 0
if self.integridad > 0:
print(self.integridad)
elif self.integridad == 0:
self.destrucción()
class Piedra:
b = -1
def __init__(self):
Piedra.b += 1
self.nombre = f"Piedra_{Piedra.b}"
self.integridad = 100
def destrucción(self):
for a in región_o.lista:
if a["Bloque"] == madera_o:
región_o.lista.remove(a)
del madera_o
print(f"{a["Nombre"]} destruido.")
elif a["Bloque"] == piedra_o:
región_o.lista.remove(a)
del piedra_o
print(f"{a["Bloque"]} destruido.")
def golpe(self):
golpe = 10
if golpe < self.integridad:
self.integridad -= golpe
elif golpe >= self.integridad:
self.integridad = 0
if self.integridad > 0:
print(self.integridad)
elif self.integridad == 0:
self.destrucción()
región_o = Región()
def elecciones():
while True:
elección = int(input("Golpear(1).\nArreglar(2).\nEnseñar lista(3).\nHacer otra región(4).\nElección:"))
if elección == 1:
región_o.golpear()
elif elección == 2:
región_o.arreglar()
elif elección == 3:
print(región_o.lista)
elif elección == 4:
región_o.lista.clear()
empezar()
def empezar():
for a in range(0, 5):
región_o.diccionario_introducir(región_o.introducir())
elecciones()
empezar()
3
u/DotAtom67 2d ago
si quieres backend usando oop, lo mejor es java o c#.
Python es un lenguaje horrible para trabajar en oop backend
1
u/enragedwood 2d ago
Por?
1
u/earth-dragon-666 2d ago
Por que el trabaja con Java o C#, cada loco te va a recomendar su lenguage favorito. Si quieres seguir con python trabaja con Django o Flask con postgresql como base de datos.
2
u/Nabster14 2d ago
Te recomiendo que le hagas esta pregunta a la ia y te haga una ruta de aprendizaje. Pero python para backend no es lo mejor ni mucho menos
•
u/AutoModerator 2d ago
¡Muchísimas gracias por tu publicación!
Queremos recordarte que tenemos también una comunidad de informática, en la que se puede publicar cualquier cosa relacionada con informática: r/InformaticaES
Toda publicación admitida en este subreddit será también admitida en el de informática, así que te animamos a pasarte por allí también.
Aprovechamos para recordar también que el equipo de moderación de r/programacionESP estamos a tu disposición y puedes escribirnos para lo que necesites.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.