Conocía C antes de conocer Python. Sin intención de ofender, pero no creo que tu conocimiento de C sea tan importante. A menos que leas muy, muy despacio, solo prepárate para aprender Python. No tomará tanto tiempo hojear el material con el que está familiarizado, y no es como si un tutorial de Python dirigido a programadores C lo convirtiera en un mejor programador de Python: podría enseñarle cosas en un orden diferente, es todo y plantea algunas cosas específicas que harías en C, pero que no deberías hacer en Python.
Las cadenas en Python en realidad son algo diferentes de las cadenas en C, y se usan de manera diferente. Recomiendo aprenderlos "desde cero", en lugar de pensar en ellos en términos de sus diferencias de las cadenas C. Por un lado, en Python 2 es mejor no usar para usar la clase de "cadena" de Python para representar cadenas: hay una clase de cadena Unicode separada y para aplicaciones prácticas de Python (casi cualquier cosa que involucre datos de usuario), lo necesita. (Python 3 corrige esto, por lo que la clase str
es una cadena Unicode). Debe establecer una buena práctica de trabajo para los datos de unicode/byte y decodificar/codificar.
Un error común al aprender un segundo lenguaje de programación, es pensar "Sé cómo programar, solo necesito traducir lo que hago en C en Python". No, tu no. Si bien es cierto que un algoritmo puede ser básicamente el mismo en diferentes idiomas, la forma natural de hacer una cosa en particular puede ser completamente diferente en diferentes idiomas. Escribirás mejor el código Python si aprendes a usar Python idiomáticamente, que si tratas de escribir Python como un programador C. Muchos de los "trucos" que usted sabe que tienen sentido en C serán inútiles o contraproducentes en Python. Por el contrario, muchas cosas que debería hacer felizmente en un programa típico de Python, como asignar y liberar mucha memoria, son cosas en C que probablemente haya aprendido a pensar dos veces. En parte porque el programa típico de C tiene diferentes restricciones del programa típico de Python, y en parte porque solo tiene que escribir más código y pensar más para conseguir ese tipo de cosas en C que en Python.
Si está aprendiendo el idioma porque necesita programar urgentemente un sistema/plataforma que tiene Python pero no tiene C, escribir programas Python que funcionen como programas C es una medida provisional razonable. Pero eso probablemente no se aplica a usted, e incluso si lo hizo, no es el objetivo final.
Una cosa que le puede interesar mirar debido a su experiencia en C, es la API de Python/C. Python es ideal para muchas cosas, pero no da como resultado el núcleo computacional más rápido posible de aplicaciones científicas [tampoco C, probablemente, pero no entremos en FORTRAN por el momento ;-)]. Entonces, si pretendes continuar con la programación científica a través de tu mudanza a Python, y tus programas suelen estar ligados a la memoria del bus de memoria y la CPU haciendo inmensas cantidades de operaciones de cálculo de números (miles de millones de operaciones), entonces te gustaría saber cómo para escapar a C si alguna vez lo necesitas. Considéralo un último recurso, sin embargo.
Usted necesita entender Python razonablemente bien antes de la API Python/C tiene mucho sentido, sin embargo.
Oh, sí, y si quieres entender OOP en general, recuerda más adelante echar un vistazo a algo como Java, Objective-C, C++ o D. Python no es solo un lenguaje OO, es una dinámica OO idioma. Puede que no te des cuenta de comparar solo C con Python, pero los tipos dinámicos vs estáticos es un problema completamente independiente de la OOP-ness de Python. Los objetos Python son como tablas hash que le permiten adjuntar nuevos campos de cualquier manera, pero los objetos en muchos otros lenguajes OO almacenan datos de una manera mucho más parecida a C struct
.
una cadena es una cadena es una cadena ... cadenas pitón pueden contener el carbón nul :) –
Paso 1. Aprender a búsqueda. Paso 2: Comience con esto: http://stackoverflow.com/questions/1590689/what-is-the-best-advanced-python-book Esta pregunta es probablemente un duplicado total. –
C (cosas realmente básicas para micros incrustados) y Python son los dos idiomas con los que trato. Recuerde perder ';' pero también poner '()' alrededor de 'if' condicionales cuando vuelva a C: P –