{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "source": [ "# Conociendo Python\n", "Este cuaderno forma parte del curso de [Iniciación a la programación con Python](https://campusvirtual.ull.es/ocw/course/view.php?id=179) del programa de Open Course Ware (OCW) de la Universidad de La Laguna.\n", "\n" ], "metadata": { "id": "-dhKWovwXoe0" } }, { "cell_type": "markdown", "source": [ "## Sintaxis de Python\n", "\n", "La sintaxis es el conjunto de reglas que determinan como se escribe el código en Python. Hay que tener en cuenta:\n", "\n", "### Comentarios\n", "Comienzan con un `#`. Por ejemplo:\n", "```python\n", "# Esto es un comentario\n", "```\n", "Podemos sacar información por pantalla utilizando la función `print()`. Por ejemplo:\n", "```python\n", "print(\"Este texto sale por pantalla al ejecutar el código\")\n", "```\n", "\n", "### Indentación\n", "Permiten definir los bloques de código y controlar la estructura y el flujo del programa. Estructuras como los bucles, condicionales o funciones lo necesitan. Normalmente se suelen utilizar 4 espacios para cada nivel. Por ejemplo:\n", "```python\n", "x=9\n", "if x>5:\n", " print(x,\"es mayor que 5\")\n", "print(\"Esta línea está fuera del condicional\")\n", "```\n", "\n", "Puedes probar este tema en la siguiente celda de código." ], "metadata": { "id": "WGhEtGWEZnue" } }, { "cell_type": "code", "source": [ "x=9 #Variable x que vale 9\n", "if x>5: #Si el dato de x es mayor que 5, se ejecuta la siguiente línea\n", " print(x,\"es mayor que 5\") #Imprime por pantalla el texto: 9 es mayor que 5\n", "print(\"Esta línea está fuera del condicional\") #El texto 'Esta línea está fuera del condicional' siempre se imprime por pantalla" ], "metadata": { "id": "osAqEJNTtzev", "outputId": "0cbc0a78-59d7-4955-e363-461186d2f821", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "9 es mayor que 5\n", "Esta línea está fuera del condicional\n" ] } ] }, { "cell_type": "markdown", "source": [ "## Tipos de datos\n", "\n", "Categorías que representan diferentes tipos de información que pueden ser manejados por Python. En concreto se verá:\n", "* Enteros, `int`: números sin parte decimal.\n", "* Flotantes, `float`: números con parte decimal.\n", "* Cadena de texto, `str`: secuencias de caracteres.\n", "* Booleano, `bool`: representa un valor binario (verdadero o falso).\n", "* None, `NoneType`: representa la ausencia de valor.\n", "\n", "Python, por defecto, asignará a nuestros datos el tipo de manera automática. Por ejemplo:\n", "\n", "```python\n", "3 #Entero\n", "3.5 #Flotante\n", "\"¡Hola, Mundo!\" #Cadena de texto\n", "True #Booleano\n", "None #None\n", "```\n", "\n", "Si queremos forzar el tipo de datos, se puede ejecutar las siguientes funciones:\n", "```python\n", "int(3) #Entero\n", "float(3.5) #Flotante\n", "str(\"¡Hola, Mundo!\") #Cadena de texto\n", "bool(1) #Booleano\n", "```\n", "\n", "Para conocer de que tipo es un dato, se puede ejecutar la función `type()`. Por ejemplo:\n", "```python\n", "type(3.5)\n", "```\n", "\n", "Estos tipos de datos podrían considerarse básicos. En siguientes temas trabajaremos con aún más tipos de datos. Puedes probar este tema en la siguiente celda de código." ], "metadata": { "id": "DGyYC5w1lGEM" } }, { "cell_type": "code", "source": [ "x=3\n", "y=3.0\n", "print(type(x)) #Saldrá por pantalla que el tipo de dato es un entero\n", "print(type(y)) #Saldrá por pantalla que el tipo de dato es un flotante\n", "y=int(y)\n", "print(type(y)) #Saldrá por pantalla que el tipo de dato es un entero\n", "y=str(y)\n", "print(type(y)) #Saldrá por pantalla que el tipo de dato es una cadena de texto" ], "metadata": { "id": "6g9n2iBEvBdD" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "## Variables\n", "Las variables son espacios de memoria en los que se almacenan datos. Se le tiene que asignar un nombre a cada una para poder acceder a ella. Para asignar un valor se utiliza el símbolo `=`. Por ejemplo:\n", "```python\n", "x=\"¡Hola, Mundo!\"\n", "y=3.0\n", "print(x) #Imprime ¡Hola, Mundo! por pantalla\n", "print(y) #Imprime el número 3.0 por pantalla\n", "```\n", "\n", "Las cadenas de texto pueden representarse tanto con comillas simples (' '), como dobles (\" \").\n", "\n", "Los nombres de las variables son sensibles a mayúsculas y no es posible utilizar espacios (tampoco el símbolo `-`), no puede comenzar por números y no puede ser una palabra reservada, como `True` o `False`." ], "metadata": { "id": "FZTWJI0eri0P" } }, { "cell_type": "markdown", "source": [ "## Operadores\n", "\n", "Permiten realizar diferentes acciones con datos, como cálculos matemáticos o manipular los propios datos. Se tratarán 4 tipos: aritméticos, de asignación, de comparación y lógicos.\n", "\n", "### Operadores aritméticos\n", "\n", "Sirven para realizar cálculos matemáticos, por ejemplo:\n", "* Suma, `+`.\n", "* Resta, `-`.\n", "* Multiplicación, `*`.\n", "* División, `/`.\n", "* Módulo (resto de una división), `%`.\n", "* Potencia, `**`.\n", "* División (parte entera), `//`.\n", "\n", "Es posible utilizar estos operadores combinando enteros con números flotantes. Por ejemplo:\n", "\n", "```python\n", "print(3+4) #Suma. El resultado es 7\n", "print(8-3.4) #Resta. El resultado es 4.6\n", "print(6*7) #Multiplicación. El resultado es 42\n", "print(32/4.7) #División. El resultado es 6.8085106...\n", "print(45%10) #Módulo. El resultado es 5\n", "print(8**2) #Potencia. El resultado es 64\n", "print(32//4.7) #División parte entera. El resultado es 6\n", "```\n", "\n", "Además de números, es posible utilizar los operadores de suma, `+`, y de multiplicación, `*` con cadenas de texto. Por ejemplo:\n", "\n", "* Concatenación, `+`: une dos cadenas de texto.\n", "* Repetición, `*`: repite la misma cadena de texto tantas veces como se especifique.\n", "\n", "```python\n", "x=\"¡Hola, \"\n", "y=\"Mundo!\"\n", "z=\"¡Adiós! \"\n", "print(x+y) #Concatenación. El resultado es '¡Hola, Mundo!'\n", "print(z*3) #Repetición. El resultado es '¡Adiós! ¡Adiós! ¡Adiós! '\n", "```\n", "\n", "### Operadores de asignación\n", "\n", "Sirven para asignar valores a las variables, siempre el valor de la derecha del operador a la variable de la izquierda. Por ejemplo:\n", "* Igual, `=`: asigna un valor.\n", "* Suma y asignación, `+=`: suma el valor de la derecha a la variable de la izquierda y asigna ese resultado a la variable de la izquierda.\n", "* Resta y asignación, `-=`: resta el valor de la derecha a la variable de la izquierda y asigna ese resultado a la variable de la izquierda.\n", "* Multiplicación y asignación, `*=`: multiplica el valor de la derecha por el de la variable de la izquierda y asigna ese resultado a la variable de la izquierda.\n", "* División y asignación, `/=`: divive el valor de la derecha por el de la variable de la izquierda y asigna ese resultado a la variable de la izquierda.\n", "* Módulo y asignación, `%=`: calcula el módulo determinado en el valor de la derecha sobre la variable de la izquierda y asigna ese resultado a la variable de la izquierda.\n", "* Potencia y asignación, `**=`: calcula la potencia del valor de la derecha sobre la variable de la izquierda y asigna ese resultado a la variable de la izquierda.\n", "* División entera y asignación, `//=`: divide (la parte entera) el valor de la derecha por el de la variable de la izquierda y asigna ese resultado a la variable de la izquierda.\n", "\n", "```python\n", "x=4\n", "x+=4\n", "print(x) #Suma. La variable x vale 8\n", "x-=3.4\n", "print(x) #Resta. La variable x vale 4.6\n", "x*=7\n", "print(x) #Multiplicación. La variable x vale 32.199999...\n", "x/=4.7\n", "print(x) #División. La variable x vale 6.851063\n", "x=13\n", "x%=10\n", "print(x) #Módulo. La variable x vale 3\n", "x**=2\n", "print(x) #Potencia. La variable x vale 9\n", "x//=4.7\n", "print(x) #División parte entera. La variable x vale 1\n", "```\n", "\n", "### Operadores de comparación\n", "\n", "Nos permiten comparar los valores de dos elementos, dando un resultado de `True` o `False`. Por ejemplo:\n", "* Igualdad, `==`: comprueba si dos valores son iguales.\n", "* Diferente, `!=`: comprueba si dos valores son diferentes.\n", "* Menor, `<`: comprueba si el valor de la izquierda es menor que el de la derecha.\n", "* Mayor, `>`: comprueba si el valor de la izquierda es mayor que el de la derecha.\n", "* Menor o igual, `<=`: comprueba si el valor de la izquierda es menor o igual que el de la derecha.\n", "* Mayor o igual, `>=`: comprueba si el valor de la izquierda es mayor o igual que el de la derecha.\n", "\n", "```python\n", "x=9\n", "y=11.2\n", "print(x==y) #Igualdad. El resultado es False\n", "print(x!=y) #Diferente. El resultado es True\n", "print(xy) #Mayor. El resultado es False\n", "print(x<=y) #Menor o igual. El resultado es True\n", "print(x>=y) #Mayor o igual. El resultado es False\n", "```\n", "\n", "### Operadores lógicos\n", "\n", "Es posible combinar o modificar expresiones booleanas utilizando operadores lógicos. Por ejemplo:\n", "* Y lógico, `and`: devuelve `True` si AMBAS expresiones son verdaderas. Si al menos una es falsa, devuelve `False`.\n", "* O lógico, `or`: devuelve `True` si al menos una de las expresiones es verdadera. Si ambas son falsas, devuelve `False`.\n", "* No lógico, `not`: devuelve el valor inverso de la expresión. Si la expresión era `True`, devuelve `False`, y viceversa.\n", "\n", "```python\n", "x=8.2\n", "y=7\n", "print(x>y and x!=y) #Y lógico. El resultado es True\n", "print(x>y and x==y) #Y lógico. El resultado es False\n", "print(x>y or x==y) #O lógico. El resultado es True\n", "print(xy:\n", " print(x,\"es mayor que\",y)\n", "\n", "#Operadores lógicos\n", "print(x