He sido desarrollador de C / C ++ durante bastante tiempo. Noto que cuando codifico python mi estilo sigue siendo C. ¿Cómo evito esto?

Lo bueno de Python es que puede codificar en varios estilos de programación y aún tener código libre de errores. Pero, esto no es muy pitón o como pitón o como se llame.

También hice lo mismo cuando comencé con Python. Solía ​​ser un desarrollador de Java, así que cuando traté de aprender Python, lo primero que miré fue “¿Cómo creo una clase en Python?”. Esto fue un error. Pero no me malinterpretes. Es importante saber cómo crear clases en Python también, pero no es el camino a seguir si desea pythoinify su programación.

Le sugiero que eche un vistazo a los diversos tipos de datos exclusivos de python. Estoy hablando de tuplas, diccionarios, listas, conjuntos y otros tipos de datos comunes. Estos son tipos de datos con los que es muy fácil trabajar si te acostumbras.

Bucles : supongamos que desea imprimir una lista de números divisibles por 3, podría codificar esto como

divisible_list = [];
para num en rango (0,100):
si num% 3 == 0:
divisible_list.extend (num);
imprimir lista_departable;

Pero esto se parece mucho a su código de estilo C.

print [num para num en el rango (0,100) si num% 3 es 0]

Esta línea hace exactamente lo mismo que las otras 5 líneas anteriores. ¿Cual prefieres? Esto trae a colación las principales ventajas de python:

  • Sintaxis breve
  • Legibilidad

Cuando digo ‘legibilidad’, quiero decir que podemos descartar operadores como == o! = Que solo los programadores entienden y usan un inglés simple y fácil de entender.

Al ser un programador nativo de C / C ++ / Java, cada vez que piensa en la lógica y comienza a codificar, inconscientemente lo hace en su mejor lenguaje. ¡Esto está bien! Puede comenzar codificando la sintaxis de C / C ++, tal como lo hace. Simplemente saque todo en la pantalla y asegúrese de que su programa funcione.

Una vez que comience a funcionar, regrese a su código e intente pythonify. Intenta que tu programa sea lo más breve posible. Google arriba CUALQUIER COSA que creas que se puede reducir.

En el ejemplo anterior, después de escribir el código detallado de 5 líneas, voy a google y busco:

¿Cómo extraigo elementos de una lista basada en una condición en Python?

Efectivamente, obtuve una solución en un artículo aquí: 9 Función de filtro de Python y ejemplos de comprensión de listas (Python List with For Loop y If Condition)

Sin embargo, le sugiero que haga clic en las respuestas de desbordamiento de la pila porque es más fácil obtener lo que necesita.

Evite la indexación de matrices tanto como sea posible. Realmente no es Python como ver a[1][2] o algo por el estilo.

Por ejemplo, digamos que tiene una lista de tuplas de (Nombre, Edad). Aquí hay un conjunto de datos de ejemplo:

people_list = [
(‘Ajay’, 21),
(‘The Cookie Monseter’, 34)
(‘Dirty Old Man’, 67),
(«Leviatán», 77)
]
# No cuestiones mis nombres.

Digamos que quieres extraer la lista de nombres de esto. Una forma de hacer esto:

lista de nombres[]
para i en rango (0, len (lista_personas)):
name_list.extend (people_list [i] [0])
imprimir nombre_lista

Esto es correcto. Pero no es muy parecido a Python. No puedo obtener de qué trata el programa porque no es tan legible. Esto se debe principalmente a esa temida notación 2D en la línea 3.

Podemos arreglar esto en parte deshaciéndonos de uno de esos índices:

nombre_lista = []
por persona en people_list:
name_list.extend (personas [0])
imprimir nombre_lista

Esto es un poco mejor. Nos deshicimos de ese len(people_list) y un índice de matriz. No podemos identificar inmediatamente a las people[0] del código anterior. Pero veremos si podemos hacerlo más legible.

nombre_lista = []
por nombre, edad en people_list:
name_list.extend (nombre)
imprimir nombre_lista

¡Ahora esto es mucho más legible! Del código anterior, podemos ver claramente lo que el programa está tratando de hacer: extraer nombres de una lista de tuplas en otra lista.

Pero este código todavía se ve detallado. Veamos qué podemos hacer al respecto:

print [nombre por nombre, edad en lista_personas]

Y viola! ¡El código ahora está pythonified!

Me gusta esto,

  • Comience con su código C / C ++ normal
  • solo sigue jugando con el código
  • sintaxis de Google y hacerlo lo más legible y conciso posible

Poco a poco, se acostumbrará a la sintaxis de Python y la forma de Python pronto será lo primero que se le ocurra, por lo que podrá omitir el paso de traducción de C / C ++ a Python. ¡Solo sigue y buena suerte! 😉

Realmente no tienes que evitarlo, muestra cuánto estabas en tu programación c. Solo necesita practicar Python y, finalmente, no enfrentará más problemas. Buena suerte