Usuarios de C
Python nos permite mostrar mensajes en pantalla mediante la
función: print() en la cual podemos escribir un simple
texto entre comillas dentro de los paréntesis, pero en nuestro caso,
habrá mensajes más interesantes que requieren variables o
constantes como el número PI por ejemplo. Para esto,
existe una convención al declarar variables: aunque para el lenguaje
todas son variables, las constantes no existen en Python , pero entre humanos, al leer un código ajeno, por
"educación" las variables son escritas en minúsculas, mientras que las
"CONSTANTES" son escritas en mayúsculas. En este lenguaje, para los que
conocen C, no hace falta declarar el tipo de dato de la
variable, el intérprete, lo clasifica automáticamente, lo que
no quiere decir que no existan. Además, estas no deben ser
obligatoriamente declaradas al inicio: podemos ir inventándolas a medida
que las requerimos. Sin embargo, la ejecución del código es secuencial
(de arriba hacia abajo), y no podemos pretender invocar algo que aún no
existe. Usaremos f-strings para un print más legible al indicar
las variables o CONSTANTES, es muy simple, sólo requiere agregar la
letra f antes de las comillas, esto nos permite mezclar, por así
decirlo, el texto con las variables/CONSTANTES al encerrar estas entre
llaves a medida que nuestro texto lo disponga.
Ej:
print(f"La pendiente es: {m}")
Entonces, podemos comenzar declarando algunas variables:
# Declaramos algunas variables y una CONSTANTE.
# Así indicamos comentarios de una línea que no serán ejecutados por el intérprete.
MENSAJE="Python para Mates!"
y="f(x)"
m=3.5
b=2
print(f"{MENSAJE}")
print("") # Así realizamos un salto de línea, aunque como en C podríamos usar \n
print(f"Una función lineal se expresa de la siguiente manera: {y}={m}x + {b}")
Ahora podes escribir ese trozo de código en una nueva celda de Código y ejecutarla con Ctrl+Enter Por último, debes saber que en Python los espacios si importan, 4 espacios por convención, son los que debes respetar al indentar código, en este primer ejemplo no te preocuparás por ellos.
Como dijimos que declarábamos variables, pero en realidad indicamos un valor fijo, ahora pediremos al usuario el ingreso de datos. Esto lo realizamos con la función input() que le pedirá al usuario que ingrese lo pedido mediante el string el cual es una cadena de caracteres, encerrada entre comillas. Pero a diferencia de print() lo guardaremos inmediatamente en una variable (A partir de ahora no haré diferencia entre variable y CONSTANTE por cuestiones de lectura). input() nos devuelve siempre un string, sea lo que sea que ingrese el usuario. Nosotros debemos hacer la operación de conversión (cast) al tipo de datos que realmente requerimos. En nuestro caso usaremos float()(decimal). De esta manera, podemos presentar un entero como un decimal (1.0) y a la vez, manejar decimales.
Por otro lado, iniciaremos con la teoría de bucles, los cuales se utilizan para realizar una tarea repetidas veces. Pueden ser:
if condición:. Evalúa una condición que puede ser booleana: (True o False), si una variable es menor < o mayor > a otra, si son iguales == o distintas != (Comparadores). Existen más condiciones a evaluar: ¡es cuestión de curiosidad!.while condición:. A veces también se usa la lógica inversa(operador lógico not), mientras no se dé la condición: while not condición:.
for i in range(4):. La variable i (de iterator), permitirá almacenar el valor devuelto por la función range(), que nos devuelve los valores de 0 a 3. Por lo tanto, nos permite realizar la tarea 4 veces, tras lo cual el bucle habrá terminado. Observá que ingresamos un 4, pero nos devuelve siempre 4 posiciones (0, 1, 2, 3)
for iterador in algo_iterable:, no solo usa range(). También puede iterar en otros tipos de datos como secuencias:
lista=["mate", "yerba", "azucar", 1, 3.4, 8, 8, "derivadas"]tupla=(12,"integrales").Estas, a diferencia de las listas, no se pueden modificar una vez declaradas.texto="Unos mates y el Teorema de valor medio (Lagrange)"range() que solo acepta enteros, ya descritofunciones = {"Lineal": "y=mx+b", "Cuadrática":"ax2+bx+c","Polinomica":"aximpar+bxpar+cximpar+...+d"}conjunto = {1, "uno", "phi", 99}Al realizar tareas repetitivas, normalmente las convertimos en funciones. En Python existen 2 tipos:
f = lambda x,m,b: m * x + bdef nombre(parámetros):. Nuestra función puede o no requerir parámetros, así se llaman a las variables requeridas por una función, también llamadas argumentos y las funciones pueden devolver return algo o no devolver nada, dependiendo de lo que realicen.
Ahora vamos a armar un segundo programa en el que apliquemos todo lo mencionado.
Indicaremos mediante un mensaje al usuario que ingrese la pendiente (que verificaremos con un bucle while)
y la ordenada al origen de una función lineal.
Guardaremos la ecuación en variables m y b.
También le pediremos un valor para evaluarla, el cual guardaremos en x.
Además, mostraremos en pantalla su función y el resultado de la evaluación pedida.
Como extra, le daremos los valores de los x previos,
para utilizar range() con un bucle for.
Pero como range() solo trabaja con números enteros (int), debemos castear la x:int(x).
Mediante el uso del bucle if, nos aseguraremos de que si el usuario ingresa una pendiente distinta de cero,
nos saldremos del while. Si continúa ingresando cero, le pediremos nuevamente el valor de la pendiente.
El bucle if tiene una forma reducida llamada operador ternario. En la que usamos una sola línea de código para evaluar la condición con la siguiente sintaxis:
(valor si es True) if condición else (valor si es False)
De esta manera evitamos escribir:
if condición:
hace algo
else:
no hace nada
No necesariamente debe o no hacer algo, es solo un ejemplo.
El else se utiliza cuando queremos que, si no se cumple la condición del if, suceda otra tarea o indique un mensaje.
El bucle if se puede anidar. Te podés encontrar con la siguiente sintaxis:
if ...else if ...if ...else if ...else if ...else if ...elif ...elseprint("A continuación ingrese lo solicitado para evaluar una función lineal")
while True:
m = float(input("\n¿Cuál es la pendiente de su función?: "))
if m != 0:
break
print("\nPor favor, la pendiente de una función lineal no puede ser cero!\n")
b = float(input("\n¿Cuál es la ordenada al origen?: "))
x = float(input("\nIndique que valor desea evaluar en la función: "))
# Definimos la función
def lineal(m, x, b):
return m * x + b
# Llamamos a la función y la guardamos en una variable
y = lineal(m, x, b)
# Mostramos la ecuación, usamos \t para tabular el texto.
print(f"\t\nLa función ingresada es: f(x) = {m}x + {b}\n")
print(f"\t Si evaluamos la función en f({x})={m}{x}+{b}\n")
print(f"\t Su resultado es: f({x})={y}\n")
print("")
# Le mostramos al usuario los resultados de evaluar los valores anteriores al que indicó para evaluar.
print("\n Estos son los valores de la función para los x anteriores a tu elección, desde 0 a x", (int(x) -1) if x > 0 else (int(x) + 1))
"""
En la línea anterior no usamos f-string,
presentamos el texto, y separado por la coma el valor que nos devuelve
el operador ternario,
si x es positivo (x - 1) o negativo (x + 1).
Además, vemos esta nueva sintaxis, comillas triples,
esto es un string literal usado normalmente para definir docstrings,
es decir, strings de documentación de funciones, clases o módulos.
"""
if x > 0:
for i in range(int(x)):
print(f"f({i}) = {lineal(m, i, b)}")
if x < 0:
for i in range(int(x)+1, 1):
print(f"f({i}) = {lineal(m, i, b)}")
Nuevamente podes escribir ese trozo de código en una nueva celda de Código y ejecutarla con Ctrl+Enter
Le comentaste a alguien sobre el grupo y quiere unirse!: