Aprendiendo Python, algunas dudas.

Iniciado por orocrux, 4 Enero 2015, 15:27 PM

0 Miembros y 1 Visitante están viendo este tema.

orocrux

Buenas a todos, estoy intentando aprender a programar poco a poco y decidí empezar por Python ya que leí que es un lenguaje sencillo y no necesariamente débil (Al parecer se pueden crear buenas cosas con él)

Estoy poco a poco aprendiendo, en una página que se dedica a ello, y ahora me ha surgido una duda.. En lo que estaba escribiendo este post, resolví el problema, pero aún no comprendo el por qué.




--> http://gyazo.com/1dda1397e41af13f1d0a4b4190c5a9f0 (Lo que pide el ejercicio)
---> http://gyazo.com/26a3e70622429ef5f0df549792717af8 (Mi primera idea)
---> http://gyazo.com/b2af5e8ef64db6df1fe996a2a03d0220 (Respuesta correcta)

Preguntas: ¿Para qué sirve def? ; ¿Por qué en lugar de poner " mayor_menor_igual_5(answer) " Solo tengo que poner "answer"

Y otra duda, que tengo de un apartado anterior, para qué sirve la sentencia Str() y para qué sirven las cadenas.. Según la página sirven para esto: http://gyazo.com/79b3ff310fdc4a15a687d659a77712d4

PD: ¿Cada "línea" del código, qué nombre recibe? Porque no estoy seguro de como llamarlas, y creo que las sentencias son por ejemplo: str() def print upper() lower() etc..

Salu2.

Eleкtro

#1
Cita de: orocrux en  4 Enero 2015, 15:27 PMPreguntas: ¿Para qué sirve def?

Es la palabra reservada (keyword) que define a una función de python:
Python Functions

De lo contrario el intérprete de Python no podría identificar que es "mayor_menor_igual_5" y que debería hacer ""mayor_menor_igual_5".




Cita de: orocrux en  4 Enero 2015, 15:27 PM¿Por qué en lugar de poner " mayor_menor_igual_5(answer) " Solo tengo que poner "answer"

Citar

Por que "mayor_menor_igual_5" es la función, y "answer" es la variable que contiene el valor (4, 5, 6), por lo tanto es la variable que debes usar en las condicionales (if answer > 5...),
de lo contrario lo único que haces es llamar recursívamente a la misma función en un bucle infinito provocando así un desbordamiento (Overflow) de la pila (Stack), un Stack Overflow.

Veo que eres nuevo en la programación y no se si empezar con un lenguaje orientado a objetos es lo mejor para ti, ya que no te estás enterando de mucho, te sugiero leer sobre el tipo de programación que estás utilizando (Object Oriented Programming), y leer las definiciones de los miembros comunes que componen este tipo de lenguajes (algunos los menciono abajo, sigue leyendo), debes hacer eso, practicar hasta llegar a entender esas cosas antes de seguir adentrándote en Python, por que de lo contrario, vas a aprender mal, aprenderás a usarlo sin llegar a entende rlo que haces, como lo estás haciendo en el ejemplo de las fotos.




Cita de: orocrux en  4 Enero 2015, 15:27 PMpara qué sirve la sentencia Str()

La función Str devuelve la representación String de un Object:
class str(object='')

Sirve, por ejemplo, para convertir un DataType númerico (Int), a tipo String.
Data Type Conversions




Cita de: orocrux en  4 Enero 2015, 15:27 PMpara qué sirven las cadenas.. Según la página sirven para esto: http://gyazo.com/79b3ff310fdc4a15a687d659a77712d4

Un String no es más que eso, una cadena de texto, es un DataType común en todos los lenguajes, se puede usar para especificar parámetros de tipo String, o establecer valores en variables de tipo String.

Un uso de lo más común, sería para mostrar información en la Interface:
Código (python) [Seleccionar]
Print "Welcome to my Python application"




Cita de: orocrux en  4 Enero 2015, 15:27 PMpara qué sirven las cadenas.. Según la página sirven para esto: http://gyazo.com/79b3ff310fdc4a15a687d659a77712d4
¿Cada "línea" del código, qué nombre recibe? Porque no estoy seguro de como llamarlas, y creo que las sentencias son por ejemplo: str() def print upper() lower() etc..[/quote]

Puedes llamarlas Instrucciones, para globalizar.

Pero si quieres referirte al nombre específico de una instrucción en particular, entonces debes saber que hay métodos, funciones, keywords, operadores, declaraciones, variables, objetos, constantes, classes, estructuras, lineas de comentario, etc... con el tiempo aprenderás lo que son y a diferenciarlas.

Saludos








orocrux

Cita de: Eleкtro en  4 Enero 2015, 16:10 PM



Veo que eres nuevo en la programación y no se si empezar con un lenguaje orientado a objetos es lo mejor para ti, ya que no te estás enterando de mucho, te sugiero leer sobre el tipo de programación que estás utilizando (Object Oriented Programming), y leer las definiciones de los miembros comunes que componen este tipo de lenguajes (algunos los menciono abajo, sigue leyendo), debes hacer eso, practicar hasta llegar a entender esas cosas antes de seguir adentrándote en Python, por que de lo contrario, vas a aprender mal, aprenderás a usarlo sin llegar a entende rlo que haces, como lo estás haciendo en el ejemplo de las fotos.


Muchas gracias! ¿Por donde debería comenzar a programar? Si Python no es tan buena idea, que alternativas son mejores.

Eleкtro

#3
Cita de: orocrux en  4 Enero 2015, 16:18 PMMuchas gracias! ¿Por donde debería comenzar a programar? Si Python no es tan buena idea, que alternativas son mejores.

Python es buena idea (siempre que te sientas agusto con ese lenguaje), lo que no me parece tan buena idea es practicar un lenguaje con las extensas características de la POO sin saber "lo básico" de programación (ni "lo básico", solo me estoy refiriendo al comportamiento de métodos, funciones, variables, y datatypes), por que te quedarás atascado en lo más básico como te ha sucedido llamando a una función, e ir preguntando en un foro que es y para que sirve cada cosa no me parece la mejor solución para aprender a manejar un lenguaje, aunque solo es un consejo para que intentes aprender bien, tú y tus preguntas por mi parte son bienvenidas al foro de Scripting xD.

Como he dicho, solo te recomiendo leer más acerca de la programación (en general) ...tampoco hablo de leerse un libro (que estaría bien), pero con las definiciones en la wikipedia mismo, y el manejo del lenguaje en la documentación oficial de Python (que para algo está) es suficiente.
Yo tengo mis diferencias con Python y su restrictividad, pero bueno, desde un punto de vista imparcial no recomiendo cambiar de lenguaje (al menos no por uno que no soporte la POO).

Saludos








orocrux

Cita de: Eleкtro en  4 Enero 2015, 16:51 PM
Python es buena idea (siempre que te sientas agusto con ese lenguaje), lo que no me parece tan buena idea es practicar un lenguaje con las extensas características de la POO sin saber "lo básico" de programación, por que te quedarás atascado en lo más básico como te ha sucedido llamando a una función, e ir preguntando en un foro que es y para que sirve cada cosa no me parece la mejor solución para aprender a manejar un lenguaje, aunque solo es un consejo para que intentes aprender bien, tú y tus preguntas por mi parte son bienvenidas al foro de Scripting xD.

Como he dicho, solo te recomiendo leer más acerca de la programación (en general) ...las definiciones en la wikipedia mismo, y el manejo del lenguaje en la documentación oficial de Python (que para algo está), tengo mis diferencias con Python y su restrictividad, pero bueno, desde un punto de vista imparcial no recomiendo cambiar de lenguaje (al menos no por uno que no soporte la POO).

Saludos


Perdona, es que estoy super verde.. recién empiezo en esto y no quiero esperarme a la uni para adentrarme en este mundo.

A parte de las definiciones de wikipedia y demás, debería leerme alguna otra cosa u optar por algún libro para aprender a programar?

Y si crees que hay algún lenguaje más conveniente, agradecería que me dijeses, no me importaría aprender otro, recién empecé python hace nada.

Un saludo.

Yidu

Yo te recomiendo este libro sin dudarlo. Ya que trata de algoritmos con Python. Y luego, hacia el final, explican la programación orientada a objetos. También hay un canal muy bueno. Te paso los dos enlaces:

LIBRO:

http://www.etnassoft.com/biblioteca/algoritmos-y-programacion-con-lenguaje-python/

CANAL YOUTUBE:

https://www.youtube.com/playlist?list=PLEtcGQaT56chpYflEjBWRodHJNJN8EKpO

Y enfocado a POO:

https://www.youtube.com/playlist?list=PLEtcGQaT56cj70Vl_C1qfUinyMELunL-N

Espero te sirva!