[Python] Hilo general

HeXaN

#210 Pues aunque suene a meme, te vendría bien una lectura al libro Object-oriented Design Heuristics para afianzar una buena base de programación orientada a objetos.

1 1 respuesta
hda

#210 yo hice un FP superior de programación, trabajé como programador orientado a objetos y... bueno, no era lo suficiente creativo para mí. Dejé el trabajo y empecé físicas. Cuando llegó la hora de hacer programación científica, ahh... la cosa era diferente. Implementar la ecuación del calor en malla de 5 puntos (3 espaciales, 2 temporales), runge-kutta de 4º orden, eso sí me gustó.

Qué quiero decir con esto (además de declarar mis gustos), la tarta de la programación, hasta donde yo entiendo, se divide en:

1) Software empotrado: destinado a microcontroladores, a chips y demás, como ascensores o tostadoras. O arduino mismamente (estoy por comprarme uno para jugar)
2) Software de sistemas operativos: autodefinido
3) Software de gestión: orientado a trabajar con bases de datos, un buen ejemplo es una solución para un videoclub
3.1) Software web: lo categorizo como una subclase de gestión. Aplicaciones web, ajax, etc
3.2) Software para móviles: autodefinido
4) Software científico: El destinado a algoritmos matemáticos, es el que requiere más potencia de cálculo

Creo que puedo hacer una buena aproximación indicando que el trozo de tarta destinado a 3. Software de gestión, debe ocupar como el 80% del mercado.

Lo bueno de python es que es muy versátil y se puede mover entre las diferentes categorías. De hecho, el grupo de partículas de la USC (donde estudié) lo usa para sus cálculos. En lo personal, cuando estaba de programador en Irlanda, lo usaba bajo un framework llamado django para web.

Con esto que te comento, apunta a un poco a donde quieres ir o qué te interesa, porque son enfoques diferentes.

A los compis del hilo: acepto cualquier crítica de mi categorización :)

1 respuesta
Perrofeo

#212 Por eso quiero ampliar mi formación como programador. Ahora mismo he enreado con mbed, arduino y similar en la 1 en una asignatura de electrónica, y he estado con la 4 en otra asignatura que se llama métodos computacionales, en la que básicamente implementabamos métodos numericos en... FORTRAN :psyduck: :psyduck:

Ahora he estado en la empresa con android y me ha gustado, y como veo que python ahora está de moda y se usa en tantos ambitos, por eso estoy aquí. C++ ya lo he probado y no me llama en exceso, aunque conozca su potencial, y java ya se algo con android.

1 respuesta
hda

#213 pues si tienes claro que quieres programar orientado a objetos, toma nota del libro que te indica el bueno de HeXaN #211

Sé lo que es sufrir fortran. Tuve que hacer una practica de final de curso en simulación de física de materiales y... arg. Evolución temporal aplicando termodinámica a 109 partículas con p y m, interacciones de Van der Vaals y secciones eficaces. Menos mal que sacrifiqué gráfica para meter un i7 :psyduck:

B

#210

Pues como ya he dicho alguna vez por estos lares, da igual el lenguaje lo importante es aprenderte los paradigmas de programación y entender como funcionan, es decir, que si usas una libreria pepito y haces

import pepito
x= Pepito()
resultado = x.calcular()

Que sepas que estás haciendo una instancia de pepito que se llama x y que guardas el resultado que retorna su método calcular en resultado. Lo mismo con programación estructurada, funcional y lógica. Lo bueno de python es que con este puedes aprender OOP, estructurada y cosillas de funcional.

Una vez entiendes lo básico sabrás "aprovechar recursos" y lo que comentas de bases de datos o protocolos de red es leerte un poco de que es una base de datos relacional o no relacional, entender el concepto y aplicar cuatro cosas y lo mismo con redes, estudiar OSI|TCP/IP y aplicar cuatro cosas.

El heuristics y cosas como los patrones (Ingeniería de software) deberían venir después de esas bases.

Además, doy por sentado que otra gran parte que es la algoritmia, siendo físico cualquier algoritmo será trivial de entender y aplicar a poco que leas algo sobre el.

m4andg4

por curiosidad, ¿Que editores e IDE's recomendais para python? Actualmente uso atom y nose, no me acaba de convencer.

3 respuestas
HeXaN

#216 Pycharm.

2
Turco

No lo he probado con la extesion de python, pero está el Visual Code que tiene buena pinta. La extensión para si lo estás aprendiendo mola, porque te muestra una descripción de las funciones y demás.

B

#216

emacs con python-mode + jedi + py-autopep8 y profit!

m4andg4

Gracias a todos por las respuestas, iré provandolo todo ahora que tengo tiempo, incluso emacs, siempre he tenido curiosidad por emacs y vim ya que me parece muy cómoda la terminal como centro de trabajo y siempre me ha tirado para atrás la curva de aprendizaje.

Phatality

#216 Spyder

11 días después
E

Algún CI para python? tipo junit para java o algo así xD

2 respuestas
B

#222

https://github.com/vinta/awesome-python#testing

1
mortadelegle

#222 Mi preferido es pytest, nose creo que está en maintenance mode.

boqueron

Voy a empezar con un proyecto en Python, el cual voy a comunicarme con una placa arduino y mandarle comandos por puerto serie (en resumen).

¿Que compilador me recomendais?, he leído que había unas librerías para indexarlas en el eclipse y también he leído por ahí que existe el CPython pero estoy perdido.

Pregunto para no sobrecargar el Eclipse o si existe un compilador dedicado que vaya mejor.

Gracias.

1 respuesta
Fyn4r

#225 te instalas el paquete de python 'pyserial' y en 2 líneas (literalmente) tienes la conexión serie abierta con el arduino

1 1 respuesta
boqueron

#226 Gracias, me lo apunto, pero preguntaba qué compilador recomendáis, tengo que crear también un entorno gráfico, había pensado hacerlo con el eclipse y luego si se puede y funciona bien generar el programa en Python.

Gracias.

1 respuesta
HeXaN

#227 El que trae de serie. Pycharm y a volar.

1
boqueron

OK probare, también veré a ver como esta el tema de librerías para hacer cosas gráficas.

B

en tkinter se puede poner de alguna manera para que yo en el Entry meta una funcion por ejemplo, sin(2) y muestre el resultado?

3 respuestas
Phatality

#230 En el parámetro command le pasas una lambda y listo.

1 respuesta
B

#231 what? En la funcion entry de tkinter no veo que admita eso

Kaiserlau

#230 explicate un poco mas o postea algo de codigo de lo q quieres hacer xD mirate esto http://effbot.org/tkinterbook/widget.htm

Yo he echo alguna cosilla con tkinter, importante hacer todo en poo

B

#230 Entiendo que quieres poner diferentes funciones y expresiones, como si fuera una calculadora. Puedes usar eval() que le metes un string y lo evalua como codigo de python.

import * from math

entrada = "sin(5)"
eval(entrada)

Hacer esto no es seguro porque se podria ejecutar todo tipo de codigo. Si vas a ser el unico que use el programa introduciendo datos a mano puedes dejarlo tal cual pero sino mirate esto.
http://www.diveintopython3.net/advanced-iterators.html#eval
http://lybniz2.sourceforge.net/safeeval.html

1 1 respuesta
B

#234 era eso justo lo que queria graaaaaaaaaaaaacias :D. Soy el unico que va a trastear con el asi que no hay problema

spoiler
B

Hago otra pregunta a los expertos xd. Hay alguna manera de que una funcion que se guarda en una variable se lea desde una biblioteca especifica?
Por ejemplo
S=sin(x)
T=p.s
T1=m.s
Siendo m y p como llamo a las bibliotecas.
p.sin
m.sin
Algo asi, peto obviamente no lo hace xd

2 respuestas
Kaiserlau

#236 te recomiemdo q le eches un vistazo a los imports en python

1 respuesta
B

#237 a que te refieres exactamente?

1 respuesta
Kaiserlau
#236rotulador11:

desde una biblioteca especifica?

#238 ?¿?¿¿?

1 respuesta
B

#239 a lo que me refiero es si a una variable
S=sin(x)
Se puede trabajar con ella desde dos bibliotecas distintas por ejemplo.
P.sin(x)
M.sin(x)
Hacer algo tipo eso pero con la variable que guarda la funcion.

A ver yo hago import biblioteca as p
Import biblioteca as m

1 respuesta