_ Python3 _

[python3]

## **** WARNING: edit the python3.html file at your own risk ****
## modified: 12/2022
## owner: public:public
## version: 0.1


Python es un lenguaje interpretado, lo que significa que el código en sí no se compila en código de máquina como el código C. En su lugar, es interpretado por el programa Python y se ejecutan las instrucciones en los scripts.

Python es un lenguaje de alto nivel, lo que significa que los scripts que producimos se simplifican para nuestra comodidad, de modo que no tenemos que preocuparnos por la gestión de la memoria, las llamadas al sistema, etc.

Python es un lenguaje multiparadigma de propósito general que es una forma elegante de decir "puedes usarlo para la mayoría de las cosas con facilidad" y "no importa si prefieres un estilo u otro".

## Ejecutando el código

Hay muchas formas de ejecutar un programa escrito en Python. Dos de los métodos más utilizados son ejecutar el código desde un archivo .py y ejecutarlo directamente dentro de Python IDLE (Integrated Development and Learning Environment). Veremos cómo ejecutar el código en ambos métodos. La forma basada en archivos es útil cuando se desarrolla un script real y la forma IDLE es muy útil para probar rápidamente algo pequeño.

## Método 1 - IDLE

Escribe python3 en la terminal y veras algo así:

Python 3.9.0 (default, Oct 27 2020, 14:15:17)
[GCC 10.1.1 20120120] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Ya una vez adentro del interprete podemos empezar a entender como funciona esto.

>>> 4 + 3
7
>>> doo = 3 * 5
>>> doo
15
>>> doo + 4
19
>>> print('Hello Human!')
Hello Human!
>>> exit(0)

## Método 2 - fichero.py

Editamos el fichero con el comando: nano bienvenido.py

__bienvenido.py________
saludo = "hola "
persona = "amigo"
print(saludo + persona)
_______________________

Ejecutamos el programa con el comando python3 bienvenido.py en la terminal.

## Método 2.1 - SHEBANG

Otro método se basa en agregar (#!/usr/bin/env python3) en la primera línea de un script de Python. En los sistemas operativos basados en Unix, marcar esto con un signo de almohadilla y un signo de exclamación hace que se ejecute el siguiente comando junto con todos los argumentos especificados cuando se llama al programa.
Podemos otorgar derechos de ejecución al script de Python y ejecutarlo directamente sin ingresar python de la siguiente manera:

otorgar permisos: chmod +x bienvenido.py
ejecutar script: ./bienvenido.py

## intro Variables

Las matemáticas y la programación tienen algunas cosas en común: ambas usan variables y bastante constantes, y ambas tienen funciones. En Python, una variable es nuestra forma de almacenar un valor de algún tipo en la memoria. Por ejemplo, un número, algún texto o los bytes de una imagen. Al igual que en matemáticas, las variables tienen un nombre que inventamos, pero los nombres deben ser descriptivos en Python. A continuación se muestran algunos ejemplos:

Variables = Dato

consejos = "estar tranquilo"
resultado = 42
potencia = 6 * 7
verdadero = True
algoFalso = False
ninguno = None
#readme = Esto es un comentario.

## Variables simples

- CADENA DE TEXTO [strings]
La primera variable, "consejos", es una cadena. Las cadenas en Python se pueden especificar usando "comillas dobles" y 'comillas simples'.

- ENTEROS [integers]
Después de la variable "consejos" vienen dos números, o números enteros, el primero de los cuales es un número. La segunda variable numérica, "potencia" , también es un número, pero no hasta el tiempo de ejecución. Durante el tiempo de ejecución, la ecuación 6 * 7 se evalúa como 42, que luego se almacena como la variable.

- FLOTANTES/REALES [floats]
Los denominados reales o flotantes son los números con decimales, es decir el 3.2, 4.2, 10.2, etc. De la misma manera que los números enteros, los numeros reales pueden almacenarse tanto positivos como negativos.

- BOOLEANOS [booleans]
Después de las variables numéricas vienen dos variables booleanas, "verdadero" y "algoFalso". Un valor booleano es un valor de verdad y puede ser Verdadero o Falso.
Inmediatamente después viene la variable "ninguno", que se establece en None. La utilidad de este valor es, entre otras cosas, que nos permite definir variables en el código pero no darles un valor concreto todavía. También nos permite crear un flujo de programa más significativo y decidir pasar algunos datos o ninguno, por ejemplo, en caso de errores.

## Bucles y Condicionales

Es tiempo de las sentencias condicionales (if y else) y varios tipos de bucles (for y while). A continuación, se muestra un ejemplo de cómo se ve un bloque de código if/else.

__ejemplo1.py______
happy = int(input("Ingrese su nivel de felicidad del 1 al 10: "))
if happy == 1:
print("Feliz como una lombriz! ")
elif happy == 2:
print("Estoy en un nivel 2 de felicidad! ")
else:
print("No estoy feliz...:( ")
__________________


Luego de entender la lógica de las operaciones condicionales, revisaremos un script utilizando bucle While

__ejemplo2.py_______
counter = 0
while counter < 5:
print(f'Hello #{counter}')
counter = counter + 1
____________________


Un ciclo while es un ciclo que ejecutará su contenido (el "bloque") siempre que la condición definida sea Verdadera. Esto significa que while True se ejecutará para siempre, y while False nunca se ejecutará. Si intentamos ejecutar el ejemplo anterior, se llamará a print cinco veces e imprimirá el contenido de la función.

## Listas, Tuplas y Diccionarios

Más conocido como las colecciones, estas tres tienen la característica de almacenar algunos de las "Variables simples" y/o colecciones.

Listas: coleccion mutable de datos, se identifican con corchetes:
var_lis = ["lab", 154, [True, 'room3']]

Tuplas: colección inmutable de datos, se identifican con parentesis:
var_tup = ('net', 154)

Diccionarios: almacena un valor y una llave, se identifica con corchetes:
var_dic = {"net":154, "lab":154}

## Funciones

Las funciones nos permiten definir bloques de código que realizan un rango de acciones, producen un rango de valores y, opcionalmente, devuelven uno o más de estos valores. Como en matemáticas, donde f(x) es una función f de x y produce el mismo resultado cuando se le da la misma entrada. Por ejemplo, f(x) = x + 1 es una función f de x que devuelve x + 1. Por lo tanto, f(2) sería 3, porque f(2) = 2 + 1, que es 3.

__ejemplo.py______
def f(x):
return 2 * x + 5
__________________

Hagamos una invitación de cumpleaños

__cartaCumpl.py______
def carta_simple(madre, padre, hijo, profe, evento):
texto = f''' Querida {madre} y {padre}.
Yo {profe} los invito al evento {evento}, correspondiendo al curso de su {hijo} el día de mañana.
Agradecemos su participación,
Profesor TIC, Lab154.'''

print(texto)
carta_simple(madre='Gabriela', padre='Juan', hijo='Alejandro', profe='Armando', evento='Aniversario 200 años')
_____________________

## Clases

Las Clases definen un objeto, agregando propiedades para ser diferenciados a otro objetos. Hagamos una estructura básica:

__basiCLass.py_______
class Foo():
def __enter__(self):
print("Enter...")

def __exit__(self, type, value, traceback):
print("...and exit.")
_____________________