Fundamentos de Python: valores, variables y expresiones

Escribe y ejecuta tus primeros programas de Python. Aprende cómo almacena Python números enteros, números decimales y texto, cómo las variables dan nombre a los valores y los actualizan, y cómo los operadores y el orden de las operaciones transforman valores en resultados. Lee datos del usuario, conviértelos al tipo adecuado, muestra una salida clara, explica tu código con comentarios y usa los mensajes de error para corregir errores.

PrincipianteUnidad 1 de 10 del curso Curso de Introducción a la programación con Python

Lo que aprenderás

  1. Ejecuta código Python en la consola interactiva y como archivos de programa guardados, sigue la ejecución de arriba abajo, lee mensajes de error para corregir errores y explica el código con comentarios.
    • Ejecuta código en la consola y como archivo de programa
      Distingue la consola interactiva de un archivo de programa guardado, ejecuta código de ambas formas y predice qué muestra cada una en la pantalla.
    • Lee mensajes de error y corrige errores habituales
      Reconoce errores de sintaxis, de ejecución y lógicos, lee una traza de excepción de abajo arriba y corrige los errores más habituales de principiantes.
    • Explica el código con comentarios
      Escribe comentarios que ayuden a entender un programa y reconoce qué texto ignora Python y cuál sigue tratando como código o datos.
  2. Reconoce las clases básicas de valores con las que trabaja Python (números enteros, números decimales, texto y valores verdadero/falso) y escribe cada una correctamente en el código.
    • Distingue entre valores y tipos
      Identifica el tipo de un valor, compruébalo con type() y explica por qué el tipo determina qué puedes hacer con un valor.
    • Escribe números enteros y decimales
      Escribe correctamente literales int y float, incluidos números muy grandes y muy pequeños, y explica por qué los resultados float a veces presentan pequeñas diferencias.
    • Escribe texto como cadenas de caracteres
      Crea cadenas con comillas simples, dobles y triples, incluye comillas y caracteres especiales en ellas y distingue el texto del código.
  3. Usa la asignación para dar nombre a los valores, elige nombres válidos y claros y sigue cómo cambian los valores de las variables durante la ejecución de un programa.
    • Asigna valores a variables
      Crea variables con sentencias de asignación, explica qué hace el signo igual en Python y usa variables en sentencias posteriores.
    • Elige nombres de variables válidos y descriptivos
      Sigue las reglas y convenciones de estilo de Python para los nombres, evita palabras reservadas y nombres incorporados, y elige nombres que indiquen qué significa un valor.
    • Actualiza variables y sigue la ejecución de un programa
      Modifica variables con asignación aumentada, intercambia dos valores correctamente y sigue un programa línea por línea con una tabla de seguimiento para predecir su salida.
  4. Construye expresiones con los operadores aritméticos y de texto de Python, predice sus resultados y tipos, y usa el orden de las operaciones y los paréntesis para calcular lo que quieres.
    • Usa los operadores aritméticos
      Calcula con +, -, *, /, //, % y **, y predice si cada resultado es un int o un float.
    • Aplica el orden de las operaciones
      Predice cómo evalúa Python una expresión con varios operadores y usa paréntesis para que calcule lo que quieres.
    • Reparte cantidades mediante la división entera con redondeo hacia abajo y el resto
      Usa // y % para dividir una cantidad en grupos completos y un sobrante, y aplícalos al tiempo, al dinero y a los dígitos.
    • Combina texto y números en expresiones
      Une y repite cadenas con + y *, y predice qué ocurre cuando una expresión mezcla enteros, números de coma flotante y cadenas.
  5. Escribe programas breves y completos que pidan datos al usuario, los conviertan al tipo adecuado, calculen con ellos y muestren resultados claros.
    • Convierte valores entre tipos
      Usa int(), float(), str() y round() para convertir o redondear un valor, predice el resultado y reconoce las conversiones que fallan.
    • Muestra la salida con print()
      Muestra texto y valores con print(), controla los espacios y los terminadores de línea con sep y end, y organiza una salida fácil de leer.
    • Lee datos de entrada y escribe un programa completo
      Pide datos al usuario con input(), conviértelos antes de calcular y combina entrada, procesamiento y salida en un programa breve que funcione.

Guía de estudio de Variables y expresiones en Python

5 capítulos

1

Ejecuta código y comprende el resultado

Un programa breve es más fácil de entender cuando sabes dónde ejecutarlo y qué esperar en la pantalla. Empieza con pruebas rápidas en la consola de Python y después guarda una secuencia de instrucciones para poder ejecutarla de nuevo. Aprende a distinguir un cálculo que queda invisible de una salida que se muestra, a leer las pistas de los mensajes de error y a dejar comentarios útiles para la próxima persona que lea tu código. Esa persona podrías ser tú una semana después.

1.1 La consola y un programa guardado

Un programa es una secuencia de instrucciones. El intérprete de Python lee el código Python y ejecuta esas instrucciones. Usa Python 3, donde una llamada como print("Hello") lleva paréntesis.

Prueba una línea en la consola

La consola interactiva, o REPL (bucle de lectura, evaluación e impresión), muestra >>> cuando está lista para recibir código Python. Escribe una sentencia después del indicador y pulsa Intro. No escribas tú el >>>.

>>> 3 + 4
7
>>> "hi"
'hi'

La consola muestra automáticamente el valor de una expresión. Pone comillas alrededor de una cadena para identificarla como texto. El indicador ... significa que una sentencia está incompleta y Python espera más. Por ejemplo, puede faltar el paréntesis de cierre de uno que se ha abierto. Escribe exit() cuando la consola esté lista para salir de ella.

La consola sirve para probar una expresión. Puede conservar un historial de comandos, pero ese historial no es un programa guardado. Pon las instrucciones que quieras volver a ejecutar juntas en un archivo de programa.

Guarda y ejecuta un archivo de programa

Un archivo de programa es un archivo de texto sin formato que contiene código y tiene la extensión .py. Usa un editor de código como IDLE, Thonny o VS Code. IDLE viene con la distribución estándar de Python. Un procesador de textos puede cambiar las comillas rectas por comillas tipográficas; estas últimas no pueden delimitar cadenas en Python.

Introduce estas líneas en el editor y guarda el archivo de programa:

print("Hello, world!")
print("Welcome to Python.")

En IDLE, elige Ejecutar → Ejecutar módulo o pulsa F5. La salida es:

Hello, world!
Welcome to Python.

Python ejecuta estas sentencias de arriba abajo. Cada print() muestra su texto y pasa a una línea nueva. Invertir el orden de las sentencias invierte el de la salida.

También puedes ejecutar un archivo de programa guardado desde una terminal. Abre la carpeta que lo contiene y después introduce el comando del intérprete seguido del nombre con el que guardaste el archivo. En macOS o Linux, el comando suele ser python3 seguido del nombre del archivo; Windows suele usar python o py. El comando de la terminal inicia el intérprete y le indica qué archivo ejecutar. Ese comando se escribe en la terminal, no después del >>> de Python. Un editor en línea puede ofrecer un botón Ejecutar.

Decide qué necesitas mostrar con print

Un archivo de programa que solo contiene 3 + 4 calcula un valor, pero no muestra nada. Escribe print(3 + 4) para mostrar 7. Del mismo modo, print("hi") muestra el texto sin las comillas que lo rodean. Las comillas pertenecen al código; marcan el principio y el final del texto.

Python distingue entre mayúsculas y minúsculas. print y Print son nombres distintos, así que Print("hi") produce un NameError a menos que se haya definido ese otro nombre. Mantén la escritura y las mayúsculas de los nombres incorporados exactamente como se muestran.

Los espacios iniciales también tienen significado. En estas secuencias sencillas de sentencias, empieza cada una en el margen izquierdo. Una sangría sobrante antes de print("hi") puede causar IndentationError: unexpected indent. Los espacios dentro del texto entre comillas son diferentes: Python los muestra como parte del mensaje.

Puntos clave

  • La consola muestra automáticamente los valores de las expresiones; un archivo de programa necesita print() para mostrarlos.
  • Guarda las instrucciones reutilizables en un archivo de programa de Python de texto sin formato.
  • Ejecuta los comandos de terminal en la terminal y las sentencias de Python en la consola o en el editor.
  • El orden de las sentencias, las mayúsculas y los espacios iniciales pueden cambiar lo que ocurre.

1.2 Usa un mensaje de error para encontrar la siguiente corrección

Un fallo en un programa es un error de programación. Detectarlo y corregirlo es depuración. Primero identifica qué clase de problema tienes: código que Python no puede leer, una operación que falla durante la ejecución o un resultado que simplemente es incorrecto.

Tres clases de problemas
ClaseQué ocurreEjemplo
Error de sintaxisPython no puede leer el código; el archivo de programa no empieza a ejecutarse.print("hi" tiene un paréntesis sin cerrar.
Error de ejecuciónLa ejecución llega a una operación que falla y se detiene allí.10 / 0 lanza ZeroDivisionError.
Error lógicoEl código se ejecuta, pero calcula un resultado incorrecto.88 + 92 / 2 no es la media de 88 y 92.

Python comprueba la sintaxis de todo el archivo de programa antes de ejecutarlo. Un error de sintaxis cerca del final impide que se ejecute incluso la primera línea. Un error de ejecución es diferente: las sentencias anteriores ya se han ejecutado y su salida permanece visible.

En la media, la división se realiza antes que la suma. Python calcula 92 / 2 como 46.0 y después suma 88 para obtener 134.0. La expresión buscada es (88 + 92) / 2, que da 90.0. No hay mensaje de error porque ambas expresiones están permitidas. Un cálculo a mano te da un resultado con el que comparar el del programa.

Lee una traza de excepción desde abajo

Supón que el código es:

name = "Ada"
print("Hello", nme)

La traza de la excepción termina con un mensaje como NameError: name 'nme' is not defined. La última línea nombra el error y explica qué ha fallado. Encima, Python muestra la ubicación, el número de línea y el código. Compara nme con el nombre al que se asignó un valor antes: name. Corregir esa escritura hace que la salida sea Hello Ada.

La ubicación indicada es donde Python detectó el problema. Si una línea parece correcta, revisa también la anterior. Una comilla o un paréntesis sin cerrar en una línea anterior puede impedir que Python interprete lo que sigue. Las versiones recientes suelen señalar directamente el paréntesis de apertura sin pareja.

Usa el tipo de error para orientar la búsqueda
  • NameError: Python no encuentra un nombre, como ocurre con pirnt, Print o una variable usada antes de asignarle un valor. Revisa la escritura, las mayúsculas y el orden de las líneas.
  • TypeError: la operación no funciona con esos tipos. "5" + 5 intenta unir texto y un número.
  • ValueError: una conversión recibe un contenido que no sirve. int("abc") recibe texto, pero ese texto no representa un entero.
  • ZeroDivisionError: un divisor es cero. Revisa el valor usado después de /, // o %.

Para un SyntaxError, comprueba que cada comilla y paréntesis de apertura tenga su cierre. print('It's late') cierra la cadena en el apóstrofo de «It's»; usa print("It's late"). El código de Python 2 como print "hi" necesita los paréntesis de Python 3: print("hi"). Vuelve a escribir las comillas tipográficas como comillas rectas. Si hay una sangría inesperada, elimina los espacios iniciales sobrantes.

Corrige un problema y después vuelve a ejecutar el programa. El primer fallo puede haber impedido que Python llegue a un segundo. Construye el programa unas pocas líneas cada vez para que cada fallo nuevo deje una zona pequeña que revisar.

Puntos clave

  • Un error de sintaxis impide que un archivo de programa empiece a ejecutarse; un error de ejecución lo detiene después de ejecutar las líneas anteriores.
  • Lee la última línea de la traza de la excepción para conocer el tipo de error y después revisa el código indicado.
  • Un programa puede ejecutarse sin fallos y aun así contener un error lógico.
  • Usa resultados esperados sencillos para comprobar los cálculos.
  • Corrige un error y vuelve a ejecutar el programa antes de cambiar más código.

1.3 Comentarios que explican el propósito

El código le dice a Python qué hacer. Un comentario le dice a una persona por qué lo hace o qué significa un valor. Python ignora los comentarios al ejecutar el programa.

Marca el comentario con claridad

Un comentario empieza con # fuera de una cadena y continúa hasta el final de esa línea. Puede ocupar su propia línea o aparecer después de una sentencia:

# Convert a temperature from Fahrenheit to Celsius.
fahrenheit = 68
celsius = (fahrenheit - 32) * 5 / 9
print(celsius)  # Show the converted temperature.

El comentario de línea completa explica el propósito del programa. El comentario en línea aparece después del código en la misma línea. PEP 8, la guía de estilo de Python, recomienda al menos dos espacios antes de un # en línea y un espacio después. Esa separación permite ver fácilmente el límite.

Una almohadilla dentro de comillas es texto normal:

print("#1 is not a comment")  # This part is a comment.

La salida es #1 is not a comment. Python lee toda la cadena entre comillas, incluida su almohadilla, como datos. Ignora el texto después del segundo # porque ese signo está fuera de las comillas.

Explica el significado, no los pasos evidentes

Compara estos comentarios:

count = count + 1  # Add 1 to count.
attempts = attempts + 1  # One more failed login.

El primer comentario repite una operación que ya se ve en el código. El segundo añade una razón para el cambio. Ahora quien lo lee sabe qué cuenta un intento. Un nombre claro como attempts también hace parte del trabajo que un nombre vago dejaría a los comentarios.

Los comentarios útiles explican una unidad, una decisión o un propósito que el código por sí solo no deja claro. Por ejemplo, tax_rate = 0.08 # 8% sales tax relaciona una tasa decimal con su significado. Si después cambias esa tasa, revisa también el comentario. Un comentario desactualizado puede llevar a quien lo lee por el camino equivocado incluso cuando el código funciona.

Impide temporalmente que se ejecute una línea

Para desactivar una sentencia mediante un comentario, pon # delante:

print("Start")
# print("Checking this step")
print("Finish")

Solo aparecen Start y Finish. Desactivar una línea mediante un comentario la mantiene disponible mientras pruebas el programa sin ella. Elimina el código antiguo desactivado cuando ya no ayude; de lo contrario, quien lo lea después tendrá que adivinar si aún hace falta.

Para una nota que abarque varias líneas, empieza cada línea con #:

# Read the temperature in degrees Fahrenheit.
# Keep the calculation in Celsius for the next step.

El texto entre comillas triples es diferente. Una línea como """Convert a temperature.""" es una expresión de cadena, no un comentario. Estas cadenas pueden servir como documentación, llamada cadena de documentación, en posiciones concretas. Usa # cuando quieras escribir un comentario normal. Una cadena que nada utiliza puede quedar invisible en un archivo de programa, lo que puede hacer que parezca un comentario aunque Python la lea como un valor.

Puntos clave

  • Un # fuera de una cadena inicia un comentario que termina al final de la línea.
  • Explica un propósito, una decisión o una unidad que el código no deje ya claros.
  • Desactivar una sentencia mediante un comentario impide que se ejecute.
  • Actualiza los comentarios cuando cambie el código.
2

Reconoce y escribe distintas clases de valores

Python trata un conteo, una medida y un fragmento de texto como clases de datos distintas. Sus tipos afectan tanto a cómo los escribes como a lo que una operación puede hacer con ellos. Aprende a reconocer un valor por su forma de escritura, a consultar su tipo y a elegir una forma útil para una tarea real. Después escribe con cuidado los números y las cadenas, incluidos los puntos decimales, las comillas y los caracteres especiales, para que Python lea los mismos datos que querías darle.

2.1 Los valores tienen tipos

Un valor es un dato, como 42, 3.5 o "Ada". Cada valor tiene un tipo, que indica a Python qué clase de dato es. Un literal es un valor escrito directamente en el código. Su forma de escritura importa: 7, 7.0 y "7" tienen tipos distintos.

Cuatro tipos básicos
TipoClase de datoEjemplos
intNúmero entero42, 0, -7
floatNúmero de coma flotante3.5, 2.0, -0.25
strCadena de caracteres o texto"Ada", 'hello', "42"
boolValor booleano verdadero/falsoTrue, False

El punto decimal hace que 2.0 sea de coma flotante aunque su valor numérico sea igual al entero 2. Las comillas hacen que "42" sea texto aunque los caracteres parezcan un número. El tipo depende del valor escrito, no del uso que una persona pueda darle.

Los literales booleanos llevan la primera letra en mayúscula y no llevan comillas. True es un booleano; "True" es una cadena. true en minúsculas es un nombre, y usarlo sin definirlo produce NameError. Una comparación puede producir un booleano: 3 < 5 se evalúa como True.

Pregunta a Python por el tipo

La función incorporada type() indica el tipo de su argumento. En la consola, estas llamadas muestran:

>>> type(7)
<class 'int'>
>>> type(7.0)
<class 'float'>
>>> type("7")
<class 'str'>
>>> type(True)
<class 'bool'>

En un archivo de programa, usa print() para ver esos resultados:

print(type(42), type("42"))

Esto muestra <class 'int'> <class 'str'>. La palabra class forma parte de la respuesta de Python; los nombres int y str identifican los tipos.

Los tipos cambian el significado de los operadores

Con números, + suma. Con dos cadenas, une texto:

print(5 + 3)
print("5" + "3")

La primera línea muestra 8. La segunda muestra 53. La segunda expresión tiene dos valores de texto, así que Python une sus caracteres. No examina los caracteres de los dígitos y decide sumarlos.

"5" + 5 lanza TypeError: un operando es texto y el otro es un entero. Comprueba los tipos cuando una operación se comporte de forma distinta a la que esperas. En particular, que aparezcan dígitos en la pantalla no demuestra que el valor almacenado sea numérico.

Elige un tipo según el significado

Usa un entero para un conteo y un número de coma flotante para una medida que pueda incluir una fracción. Mantén como texto un identificador, como un código postal de EE. UU. La cadena "02134" conserva el cero inicial; ese cero forma parte de la identidad del código, no de un cálculo. Los números de teléfono también pueden contener signos de puntuación que conviene conservar.

La consola puede mostrar 'Ada', mientras que print("Ada") muestra Ada. Ambos se refieren al mismo texto. Las comillas de la consola identifican una cadena; print() presenta los caracteres para quien los lee. Ninguna de las dos formas de mostrarlos cambia el tipo almacenado.

Puntos clave

  • La forma de escritura de un literal determina su tipo: 7, 7.0 y "7" son distintos.
  • type() indica el tipo de un valor.
  • Los operadores se basan en los tipos: sumar números y unir texto son operaciones distintas.
  • Escribe los literales booleanos como True y False, sin comillas.
  • Guarda identificadores, como los códigos postales de EE. UU., en cadenas para conservar sus caracteres.

2.2 Números, puntos decimales y precisión en coma flotante

Python tiene tipos distintos para los números enteros y los números de coma flotante. Escribirlos con claridad evita tanto errores de sintaxis como cambios menos evidentes en los datos.

Escribe los conteos como enteros

Un número entero no tiene parte fraccionaria. Escribe un int sin punto decimal, como en 42, 0 o -7. Los enteros de Python pueden crecer tanto como permita la memoria disponible, sin un límite fijo de bits. La suma, la resta y la multiplicación de enteros son exactas. Por ejemplo, 2 ** 100 da el entero exacto 1267650600228229401496703205376.

No uses comas para agrupar los miles. Escribe 1000000 o usa guiones bajos para facilitar la lectura: 1_000_000. Los guiones bajos no cambian el valor.

Un literal entero decimal distinto de cero no puede empezar con cero. Escribir 02134 es un error de sintaxis. Si esos dígitos son un identificador cuyo cero inicial importa, escribe "02134" como texto.

Escribe las cantidades fraccionarias como números de coma flotante

Un número de coma flotante usa un punto decimal o notación con exponente. 3.5, 2.0 y -0.25 son números de coma flotante. Python también acepta .5 y 5., que significan 0.5 y 5.0; escribir el cero adicional suele facilitar su lectura. Usa números de coma flotante para medidas como la temperatura o la distancia y para cálculos introductorios con precios que tengan parte fraccionaria.

El código Python usa punto decimal. La coma separa valores; nunca marca la parte fraccionaria. Por ejemplo:

x = 3.5
print(x)

muestra 3.5, mientras que x = 3,5 crea un par de valores que se muestra como (3, 5). Del mismo modo, x = 1,000 crea (1, 0), no mil. Estas sentencias pueden ejecutarse, así que la ausencia de un mensaje de error no significa que el número se haya escrito correctamente.

Usa la notación científica

La letra e significa «por diez elevado a» en un literal numérico:

LiteralValor
1.5e31500.0
2.5e-30.0025
1e31000.0

Un literal con exponente es de coma flotante incluso cuando su valor es un número entero. El signo negativo después de e hace que el exponente sea negativo, así que 2.5e-3 significa 2,5 dividido entre 1000.

Ten en cuenta la precisión limitada

Los números de coma flotante se almacenan en binario con precisión limitada, normalmente unas 15–17 cifras decimales significativas. Muchas fracciones decimales, incluida 0.1, no tienen una representación exacta en ese almacenamiento. Como resultado:

print(0.1 + 0.2)
print(round(0.1 + 0.2, 2))

muestra 0.30000000000000004 y después 0.3. La pequeña diferencia procede de las aproximaciones almacenadas. round(..., 2) redondea el resultado a dos decimales para mostrarlo; no cambia cómo se almacenan los valores de coma flotante. Mantén el cálculo original hasta el final y después redondea el resultado que se muestra.

Un signo también puede ser un operador. El menos unario cambia el signo de un valor: -7 es menos siete. En 5 - -3, el primer menos resta y el segundo forma menos tres, así que el resultado es 8. Distingue este signo del exponente negativo en un literal como 2.5e-3.

Puntos clave

  • Escribe puntos decimales en el código y usa guiones bajos, no comas, para agrupar números grandes.
  • Los enteros de Python no tienen un límite fijo de bits; la memoria disponible sí los limita.
  • Un literal que contiene un punto decimal o e es de coma flotante.
  • Muchas fracciones decimales son aproximadas en coma flotante; redondea el resultado final que se muestra.
  • El menos unario cambia el signo de un valor.

2.3 Comillas y caracteres dentro de las cadenas

Una cadena de caracteres es una secuencia de caracteres: letras, dígitos, espacios, signos de puntuación y otros símbolos. Las comillas indican a Python dónde empieza y termina esa secuencia. Los caracteres del interior son datos, aunque parezcan código Python.

Elige comillas que coincidan

Las comillas simples y las dobles crean el mismo tipo, str. Tanto 'Ada' como "Ada" contienen los mismos tres caracteres. Empieza y termina una cadena con el mismo tipo de comillas.

Elige las comillas exteriores para que resulte fácil escribir una comilla interior:

print("It's late")
print('She said "hi"')

La salida es:

It's late
She said "hi"

En print('It's late'), el apóstrofo después de It cierra la cadena antes de tiempo. Python ya no puede leer el resto de la sentencia. Usar comillas dobles exteriores mantiene el apóstrofo dentro del texto.

Usa una secuencia de escape

Una barra invertida inicia una secuencia de escape. Cada una de estas secuencias habituales representa un carácter:

Escritura en el códigoCarácter en la cadena
\nSalto de línea
\tTabulación
\\Una barra invertida
\'Comilla simple
\"Comilla doble

Por ejemplo, print("Line 1\nLine 2") muestra dos líneas. La barra invertida y la n del código representan juntas un salto de línea, no una letra n visible. Del mismo modo, print('It\'s late') muestra It's late: la comilla escapada se convierte en un carácter sin terminar la cadena.

Para mostrar una barra invertida literal seguida de una letra, escribe la barra invertida dos veces. print("A\\B") muestra A\B. La primera barra invertida indica que la siguiente debe ser un carácter.

Conserva saltos de línea o ningún carácter

Las comillas triples permiten que una cadena abarque varias líneas físicas. Los saltos de línea pasan a formar parte de su valor:

print("""Line one
Line two""")

Esto muestra Line one y Line two en líneas distintas. Las comillas simples triples también sirven. Las comillas triples siguen creando una cadena; no crean un comentario con #.

La cadena vacía, "", no tiene caracteres. Es distinta de " ", que contiene un espacio. Ese espacio puede ser difícil de ver en la salida, pero sigue formando parte de los datos.

Distingue el texto de una expresión o un nombre

Compara estas sentencias:

name = "Ada"
print("3 + 4")
print(3 + 4)
print("name")
print(name)

La salida es 3 + 4, después 7, después name y después Ada. Las comillas convierten el primer y el tercer argumento en texto literal. Sin comillas, Python evalúa un cálculo o consulta una variable.

Olvidar las comillas alrededor de un mensaje como Hello hace que Python busque un nombre. Si no se ha definido Hello, print(Hello) lanza NameError. Escribe print("Hello") cuando quieras esa palabra.

Las cadenas pueden contener caracteres de muchos idiomas y símbolos, como "café", "naïve" y "°F". También pueden aparecer dígitos junto a ellos: "Room 101" es texto en su totalidad. Un carácter de dígito entre comillas no se convierte en un entero.

Puntos clave

  • Las comillas simples y dobles crean cadenas; el tipo de apertura y de cierre debe coincidir.
  • Elige comillas exteriores o secuencias de escape que mantengan una comilla interior dentro del texto.
  • Las secuencias de escape habituales incluyen \n, \t y \\.
  • Las comillas triples conservan los saltos de línea en una cadena.
  • Una cadena vacía no contiene caracteres; un espacio es un carácter.
  • El texto entre comillas es un dato; los nombres y cálculos sin comillas se evalúan.
3

Da nombre a los valores y sigue sus cambios

Las variables permiten que un programa reutilice un valor y le dé un significado que quien lo lee pueda reconocer. Una asignación conecta un nombre con el resultado de una expresión; una asignación posterior puede cambiar esa conexión. Aprende a leer esos pasos en orden, a elegir nombres que Python acepte y a distinguir un resultado guardado de una fórmula que tendría que ejecutarse de nuevo. Las tablas de seguimiento hacen visibles estos cambios, incluidos los pasos necesarios para intercambiar dos valores correctamente.

3.1 La asignación da un nombre a un valor

Una variable es un nombre que hace referencia a un valor en la memoria. Una sentencia de asignación conecta un nombre a la izquierda de = con el valor de una expresión a la derecha.

Lee primero el lado derecho

En age = 30, Python evalúa 30 y después hace que age se refiera a ese entero. El lado izquierdo debe ser un destino válido para asignar un valor. 30 = age es un error de sintaxis: no puedes asignar un valor nuevo al literal 30.

El signo = significa «asignar». No pregunta si dos valores son iguales. La comprobación de igualdad usa ==. Leer la asignación como una dirección de trabajo permite entender sentencias como x = x + 1: usa el valor anterior de x a la derecha, calcula el valor nuevo y después asígnalo a x a la izquierda.

Considera un rectángulo:

width = 4
height = 2.5
area = width * height
print(area)

Después de la primera línea, width se refiere a 4. Después de la segunda, height se refiere a 2.5. En la tercera línea, Python consulta ambos valores actuales y evalúa 4 * 2.5, lo que produce 10.0. Asigna ese resultado a area. La última línea muestra 10.0.

La asignación por sí sola no muestra el valor. Usa el nombre en una llamada posterior a print() cuando quieras mostrarlo.

Asigna un valor antes de usar un nombre

Python sigue el orden de las sentencias. Este código falla en la primera línea:

print(total)
total = 10

En ese momento, total no tiene valor. La asignación posterior no puede proporcionar un valor a una sentencia anterior. Mueve total = 10 antes de print(total).

Una consola puede conservar nombres de pruebas anteriores. Un programa guardado debe incluir las asignaciones que necesita en su propio orden de ejecución, para que su resultado no dependa de recordar qué escribiste antes.

Reasigna un nombre existente

La reasignación hace que un nombre se refiera a un valor nuevo:

score = 10
score = 15

Ahora score es 15; el 10 anterior ya no es accesible a través de ese nombre. Para una actualización basada en el valor anterior:

x = 3
x = x + 1

La segunda línea evalúa 3 + 1 y después asigna 4 a x. No hay ninguna ecuación que resolver ni ninguna contradicción.

El tipo pertenece al valor, no de forma permanente al nombre de la variable. Python permite temp = 3 seguido de temp = "three"; después, type(temp) indica str. Mantener coherentes el significado y el tipo esperado de un nombre suele facilitar el seguimiento del programa.

Un valor copiado no crea un vínculo futuro
a = 5
b = a
a = 10
print(a, b)

Esto muestra 10 5. En b = a, ambos nombres se refieren al entero actual 5. Reasignar a cambia el valor al que se refiere a; deja b haciendo referencia a 5. Del mismo modo, almacenar width * height guarda su resultado, no una fórmula que se actualice sola cuando cambie width.

Una sentencia puede asignar valores a varios nombres. a = b = 0 da a ambos nombres el valor 0. En x, y = 1, 2, los valores se emparejan con los nombres por su posición, de modo que x es igual a 1 e y es igual a 2.

Puntos clave

  • La asignación evalúa la expresión de la derecha antes de asignar su valor al nombre de la izquierda.
  • Una variable debe tener un valor antes de que una expresión la use.
  • La reasignación cambia el valor al que se accede mediante un nombre.
  • Asignar una variable a otra no mantiene vinculadas sus asignaciones futuras.
  • Un valor tiene un tipo; el mismo nombre puede referirse después a un valor de otro tipo.

3.2 Nombres que Python acepta y las personas entienden

Un nombre debe cumplir la gramática de Python y ayudar a una persona a entender el programa. Son dos comprobaciones distintas: Python puede aceptar un nombre que aun así dificulte la lectura del código.

Sigue las reglas de los nombres

Un nombre de variable puede contener letras, dígitos y guiones bajos. No puede empezar con un dígito, contener un espacio ni usar signos de puntuación como un guion.

NombreQué ocurre
total, item_count, price2, _tempNombres válidos
2nd_placeNo válido: empieza con un dígito
first nameNo válido: contiene un espacio
first-nameSe interpreta como una resta, no como un nombre

Python también acepta letras de otros alfabetos. Las letras del alfabeto inglés son una opción habitual para los identificadores. Elijas las letras que elijas, mantén la escritura coherente: age, Age y AGE son tres nombres distintos. Asignar age = 30 no define Age.

Distingue las palabras reservadas de los nombres incorporados

Una palabra reservada está reservada para la gramática de Python. No puedes usarla como nombre de variable. Las palabras que siempre están reservadas son:

False None True and as assert async await break class
continue def del elif else except finally for from
global if import in is lambda nonlocal not or pass
raise return try while with yield

No necesitas memorizar la lista antes de escribir un programa. Por ahora, reconoce que un nombre como class no está disponible: class = 3 es un error de sintaxis. Los editores suelen mostrar las palabras reservadas con un color especial.

Los nombres de funciones incorporadas, incluidos print, input, int, str, type, sum y max, no son palabras reservadas. Python permite asignarles valores, pero esa asignación oculta la función original:

print = 5
print("hi")

La segunda línea intenta llamar al entero 5 y lanza TypeError. Elige un nombre que describa tus datos, como total, para que la función incorporada siga disponible. Reiniciar la consola elimina las sustituciones accidentales hechas durante las pruebas.

Escribe los nombres con un estilo coherente

PEP 8 recomienda snake_case para los nombres de variables: palabras en minúsculas unidas por guiones bajos, como en hourly_rate y first_name. El guion bajo mantiene unido un nombre de varias palabras sin espacios.

Una constante es un valor que quieres mantener sin cambios. Por convención, su nombre usa mayúsculas:

SALES_TAX_RATE = 0.08

Python no bloquea ese nombre. Una asignación posterior puede cambiarlo; las mayúsculas comunican una intención a quien lo lee.

Incluye el significado y las unidades

hours_worked = 38 te dice más que h = 38. Un nombre como distance_miles o temp_f también identifica la unidad, lo que reduce la posibilidad de usar millas como si fueran kilómetros o grados Fahrenheit como si fueran grados Celsius. Los nombres cortos como x e y funcionan bien para coordenadas o una fórmula breve en la que sus significados ya están claros.

Evita nombres casi idénticos como total y totl. Un error al escribirlos puede producir un NameError o usar por accidente otra variable existente. PEP 8 también desaconseja las letras sueltas l, O e I, que pueden parecer dígitos. Unas pocas letras más pueden hacer que un cálculo sea mucho más fácil de revisar.

Puntos clave

  • Empieza un nombre con una letra o un guion bajo y después usa letras, dígitos o guiones bajos.
  • Las palabras reservadas no se pueden reutilizar; los nombres incorporados sí, pero conviene mantenerlos disponibles.
  • Usa nombres descriptivos en snake_case e incluye las unidades que resulten útiles.
  • Los nombres de constantes en mayúsculas comunican una intención; no impiden la reasignación.

3.3 Actualizaciones, tablas de seguimiento e intercambios

Una actualización usa el valor actual de una variable para calcular el siguiente. Seguir cada actualización en orden te permite predecir la salida y detectar errores lógicos antes de ejecutar el programa.

Asigna un valor inicial antes de actualizarlo

count = count + 1 suma uno al conteo anterior. Ese cambio es un incremento. Una variable que mantiene una suma acumulada es un acumulador; dale un valor inicial como total = 0 antes de añadir cantidades.

La asignación aumentada combina una operación con una asignación. Con números, x += 3 tiene el mismo efecto que x = x + 3. Las formas disponibles incluyen +=, -=, *=, /=, //=, %= y **=.

score = 10
score -= 3
score **= 2
print(score)

La resta cambia score a 7. La potenciación lo cambia después a 49, que se muestra. Sin la asignación inicial, una actualización intentaría usar un nombre no definido y lanzaría NameError.

El operador elegido también afecta al tipo. Partiendo de n = 7, n /= 2 produce el número de coma flotante 3.5. Partiendo de nuevo de n = 7, n //= 2 produce el entero 3. Python no tiene un operador de incremento ++: x++ no es válido. Escribir ++x aplica dos veces el más unario y no actualiza x; usa x += 1.

Sigue una sentencia cada vez

Una tabla de seguimiento registra los valores de las variables después de cada sentencia. Escribe una columna por variable y una fila por paso:

price = 20
quantity = 3
total = price * quantity
price = 25
total += 5
print(total, price)
Sentencia recién ejecutadapricequantitytotal
price = 2020Sin asignarSin asignar
quantity = 3203Sin asignar
total = price * quantity20360
price = 2525360
total += 525365

La salida es 65 25. Cambiar price no repitió la multiplicación anterior. La variable total contenía el valor calculado 60; no era una fórmula de hoja de cálculo vinculada a price. Solo su propia actualización posterior lo cambió a 65.

Para seguir la ejecución a mano, evalúa el lado derecho usando la fila inmediatamente anterior y después actualiza el nombre al que se asigna el valor. Deja las demás columnas sin cambios. Compara la predicción con la salida real del programa.

Conserva ambos valores al intercambiarlos

Supón que a = 1 y b = 2. El intento a = b seguido de b = a da 2 2. La primera asignación hace que se pierda el acceso al valor original de a mediante ese nombre, así que la segunda línea copia de vuelta el valor nuevo.

Una variable temporal mantiene disponible el valor original:

a = 1
b = 2
temp = a
a = b
b = temp
print(a, b)

Esto muestra 2 1. También puedes escribir a, b = b, a. Python evalúa ambos valores de la derecha antes de asignarlos a cualquiera de los nombres de la izquierda, así que ambos valores originales están disponibles para el intercambio. Sigue la versión con variable temporal cuando quieras ver exactamente dónde se conserva cada valor original.

Puntos clave

  • Una asignación aumentada necesita un valor existente.
  • Usa += 1 para un incremento; ++ no actualiza una variable de Python.
  • Una tabla de seguimiento registra los valores después de cada sentencia.
  • Cambiar una variable de entrada no vuelve a calcular un resultado guardado anteriormente.
  • El operador de una actualización puede cambiar el tipo del resultado.
  • Un intercambio necesita ambos valores originales: conserva uno temporalmente o usa asignación simultánea.
4

Construye cálculos con los operadores adecuados

Una expresión combina valores para obtener un resultado. Python usa ideas aritméticas conocidas, pero debes escribir la multiplicación, las potencias y la división con los símbolos adecuados. Aprende cómo el orden de los operadores controla un cálculo, cómo la división entera con redondeo hacia abajo y el resto reparten cantidades, y cómo los tipos cambian el significado de la suma y la multiplicación. Resolver expresiones en pasos pequeños te ayuda a ver si el resultado, su tipo y su significado coinciden con tu intención.

4.1 Símbolos aritméticos y tipos de los resultados

Una expresión se evalúa para obtener un valor. Puede ser un literal, una variable o una combinación como 2 + 3. El + es un operador; los valores sobre los que actúa son sus operandos.

Elige el operador

Los operadores aritméticos de Python funcionan así:

OperaciónExpresiónResultado
Suma7 + 29
Resta7 - 25
Multiplicación7 * 214
División7 / 23.5
División entera con redondeo hacia abajo7 // 23
Resto7 % 21
Potenciación7 ** 249

Escribe la multiplicación explícitamente con *. La notación matemática como 2x no funciona como multiplicación en Python. Escribe 2 * x o 2 * (x + 1). Con x = 1, 2(x + 1) intenta llamar al entero 2 como si fuera una función y lanza TypeError.

El operador de potenciación es **, no ^. Por ejemplo, 7 ** 2 es 49, mientras que 7 ^ 2 es 5 porque el acento circunflejo realiza otra operación. Por tanto, un programa puede ejecutarse y calcular un resultado que no buscabas.

Predice tanto el tipo como el número

La división con / da un número de coma flotante con operandos enteros, incluso cuando la división es exacta: 6 / 2 es 3.0. Para obtener un conteo entero de grupos completos, usa //: 6 // 2 es 3.

Con dos operandos enteros, la suma, la resta, la multiplicación, la división entera con redondeo hacia abajo y el resto dan resultados enteros. Las potencias con exponentes enteros no negativos también: 2 ** 10 da el entero exacto 1024. Un exponente negativo cambia esto: 2 ** -1 da el número de coma flotante 0.5.

En la aritmética habitual con un entero y un número de coma flotante, el cálculo usa valores de coma flotante. 3 + 4.0 da 7.0; 7.0 // 2 da 3.0. La división entera con redondeo hacia abajo describe cómo se redondea el cociente, no garantiza que su tipo sea siempre int.

Un exponente fraccionario puede calcular una raíz de un número positivo. 4 ** 0.5 da 2.0, y 2 ** 0.5 da aproximadamente 1.4142135623730951.

Construye un cálculo con valores que tengan nombre

Un automóvil recorre 287 millas usando 10,25 galones:

miles = 287
gallons = 10.25
mpg = miles / gallons
print("Miles per gallon:", mpg)

La división calcula 28.0, así que la salida es Miles per gallon: 28.0. Los nombres identifican las cantidades, y la etiqueta mostrada identifica la unidad del resultado. Multiplicar 28.0 * 10.25 recupera las 287 millas, lo que permite comprobar la división.

Un divisor cero hace fallar /, // y %. Por ejemplo, 10 / 0 lanza ZeroDivisionError. Revisa la variable usada como divisor cuando aparezca ese error.

Los espacios alrededor de los operadores no cambian su significado: 2+3 y 2 + 3 dan 5. Los espacios alrededor de = y de la mayoría de los operadores facilitan la lectura de las partes. No pueden sustituir un operador; 2 x sigue sin significar multiplicación.

Puntos clave

  • Usa * para la multiplicación y ** para las potencias.
  • / da un número de coma flotante al dividir enteros, incluso si el cociente es exacto.
  • // con dos enteros da un entero; un operando de coma flotante da un resultado de coma flotante.
  • Un exponente entero negativo produce un resultado de coma flotante.
  • /, // y % lanzan ZeroDivisionError si el divisor es cero.

4.2 Ordena las operaciones y agrupa las fórmulas

Python no calcula una expresión simplemente desde su extremo izquierdo hasta el derecho. La precedencia establece qué operaciones se realizan primero. Los paréntesis te permiten elegir otra agrupación o aclarar la agrupación buscada.

Aplica los niveles en orden

Para los operadores presentados aquí, usa este orden:

  1. Expresiones entre paréntesis.
  2. Potencias, **.
  3. Signos unarios, como el menos de -x.
  4. Operaciones de multiplicación y división: *, /, //, %.
  5. Suma y resta: +, -.

En 3 + 4 * 2 ** 2, evalúa 2 ** 2 para obtener 4. La expresión se convierte en 3 + 4 * 4. La multiplicación da 16, y la suma da 19. Con (3 + 4) * 2 ** 2, la suma entre paréntesis es 7; la potencia es 4; el producto es 28.

Los operadores del nivel de multiplicación y división tienen la misma prioridad. Avanza de izquierda a derecha: 8 / 2 * 4 significa (8 / 2) * 4, lo que da 16.0. La multiplicación no se adelanta a la división. Del mismo modo, 100 / 10 / 5 da 2.0, y 10 - 4 - 3 da 3.

Trata con cuidado las potencias y los signos

Las potencias repetidas se agrupan de derecha a izquierda. 2 ** 3 ** 2 significa 2 ** (3 ** 2). Primero, 3 ** 2 da 9; después, 2 ** 9 da 512. Agrupar desde la izquierda daría 64, un resultado distinto.

Un signo menos inicial se aplica después de la potencia que le sigue: -2 ** 2 significa -(2 ** 2) y da -4. En (-2) ** 2, los paréntesis hacen que menos dos sea la base, así que el resultado es 4. Un menos después de ** puede pertenecer al exponente: 2 ** -1 da 0.5.

Traslada toda la agrupación de una fórmula

Una media requiere sumar ambos valores antes de dividir entre dos:

average = (88 + 92) / 2

La suma es 180, y después la división da 90.0. Sin paréntesis, 88 + 92 / 2 solo divide 92 y da 134.0.

Una barra de fracción también agrupa todo lo que tiene encima y debajo. Un numerador que contiene a + b y un denominador que contiene c + d se convierten en (a + b) / (c + d). Omitir cualquiera de los dos pares puede cambiar qué términos se dividen.

El mismo problema aparece en una conversión de temperatura:

celsius = (98.6 - 32) * 5 / 9

La resta da 66.6, la multiplicación da 333.0 y la división da 37.0. Sin la agrupación, 98.6 - 32 * 5 / 9 da 80.82222222222222.

Usa los signos de agrupación adecuados

Los paréntesis agrupan una expresión. Los corchetes y las llaves tienen otros significados en Python. Por ejemplo, [2 + 3] * 4 produce [5, 5, 5, 5], no 20.

Los paréntesis alrededor de una operación que se realizaría primero de todos modos dejan el resultado sin cambios: (2 * 3) + 1 y 2 * 3 + 1 dan 7. Los paréntesis que cambian la agrupación pueden cambiar el valor: 2 * (3 + 1) da 8. Añade agrupaciones cuando faciliten ver el significado del cálculo.

Puntos clave

  • Evalúa los paréntesis, las potencias, los signos unarios, las operaciones de multiplicación y división, y después las sumas y restas.
  • Avanza de izquierda a derecha dentro de cada nivel, salvo en las potencias, que se agrupan de derecha a izquierda.
  • Un menos inicial es distinto de una base negativa: -2 ** 2 y (-2) ** 2 son diferentes.
  • Agrupa todo el numerador y todo el denominador al trasladar una fracción al código.
  • Usa paréntesis para agrupar cálculos.

4.3 Grupos completos y el sobrante

La división entera con redondeo hacia abajo y el resto responden a dos preguntas relacionadas: cuántos grupos completos caben y qué queda después de formar esos grupos. Para cantidades enteras no negativas, esta pareja resulta útil con el tiempo, el dinero, el empaquetado y los dígitos.

Obtén el cociente y el resto juntos

17 // 5 da 3, el número de grupos completos de cinco. 17 % 5 da 2, la cantidad sobrante. Los dos resultados reconstruyen la cantidad inicial:

print((17 // 5) * 5 + 17 % 5)

La expresión da 17: tres grupos de cinco más dos. En general, para enteros y un divisor distinto de cero, (a // b) * b + a % b es igual a a. Usa esa relación para comprobar ambas respuestas.

Reparte cantidades reales

Para 135 minutos:

hours = 135 // 60
minutes = 135 % 60

Hay 2 horas completas y sobran 15 minutos. El divisor es 60 porque una hora contiene 60 minutos. Dividir con / da 2.25, que expresa horas con parte fraccionaria; no da por separado los minutos sobrantes.

La misma estructura funciona con otro tamaño de grupo:

CantidadGrupos completosSobrante
347 centavos, 100 centavos por dólar estadounidense347 // 100 da 3 dólares347 % 100 da 47 centavos
75 huevos, 12 por caja75 // 12 da 6 cajas completas75 % 12 da 3 huevos

El conteo de cajas indica el número de cajas completas. Si también necesitas un recipiente para los huevos sobrantes, esa es una pregunta distinta de cuántos grupos completos caben.

Usa el valor posicional y la paridad

Para un entero positivo, dividir entre diez separa su último dígito. 1234 % 10 da 4, y 1234 // 10 da 123. Volver a combinar 123 * 10 + 4 recupera 1234.

Para cualquier entero n, n % 2 es 0 cuando es par y 1 cuando es impar. Esto también funciona con negativos: -7 % 2 es 1. Para enteros y un divisor positivo b, el resto está entre 0 y b - 1, ambos incluidos.

Comprende la división con negativos

La división entera con redondeo hacia abajo redondea hacia menos infinito, no hacia cero. Como menos siete dividido entre dos es menos 3,5, -7 // 2 da -4. El resto es entonces 1, porque -4 * 2 + 1 es igual a -7.

Un resto distinto de cero tiene el signo del divisor. Con un divisor negativo, 7 % -2 da -1, y 7 // -2 da -4. Estos resultados siguen reconstruyendo el original: -4 * -2 + -1 es 7.

Esto difiere de convertir un cociente con int(): int(-7 / 2) da -3 porque la conversión trunca hacia cero.

Ambos operadores también aceptan números de coma flotante. 7.5 // 2 es 3.0, y 7.5 % 2 es 1.5. Comparten el nivel de precedencia de * y /, así que 5 * 3 + 17 % 5 da 17. Aquí el operador % significa resto, no porcentaje: calcula el 8 por ciento de un precio con price * 0.08 o price * 8 / 100.

Puntos clave

  • // da un cociente redondeado hacia abajo; % da el resto correspondiente.
  • Para enteros, (a // b) * b + a % b reconstruye a cuando b es distinto de cero.
  • Elige un divisor que corresponda al tamaño del grupo o a la conversión de unidades.
  • La división entera con redondeo hacia abajo redondea los cocientes negativos hacia abajo, no hacia cero.
  • Un resto distinto de cero tiene el signo del divisor.
  • El resto es distinto de un porcentaje.

4.4 Une texto, repite texto y comprueba los tipos

El símbolo de un operador es solo una parte de su significado. Python también usa los tipos de sus operandos. Los operadores + y * funcionan con cadenas, pero en ellas realizan operaciones de texto.

Une cadenas con el signo más

La concatenación une una cadena al final de otra:

print("ab" + "cd")
print("Hello" + "Ada")
print("Hello " + "Ada")

Estas líneas muestran abcd, HelloAda y Hello Ada. La concatenación no añade espacios por sí sola. El espacio del tercer resultado procede del último carácter de "Hello ".

Los caracteres de dígitos siguen la misma regla: "5" + "3" da la cadena "53". Sin comillas, 5 + 3 da el entero 8. Elige valores numéricos cuando quieras hacer aritmética y cadenas cuando quieras texto.

Repite una cadena con la multiplicación

Una cadena multiplicada por un entero repite sus caracteres. "3" * 2 da "33", mientras que 3 * 2 da 6. El número de repeticiones puede ir a cualquiera de los dos lados: 3 * "ab" da "ababab". Repetir cero veces da la cadena vacía, así que "ab" * 0 es "".

El número de repeticiones debe ser un entero. "ab" * 2.5 lanza TypeError, al igual que "ab" * "cd". En esta operación no hay un número fraccionario de copias.

Combina las operaciones en orden

La multiplicación también tiene mayor precedencia que la suma en estas expresiones:

print("-" * 4 + "Menu" + "-" * 4)

Primero, cada repetición crea "----". Después, las sumas unen las tres cadenas y producen ----Menu----. El orden de las uniones conserva el orden de sus caracteres.

Para un cálculo que pasa a formar parte de una cadena:

print("7" + str(3 * 2))

La operación aritmética interior da el entero 6. str(6) crea la cadena "6". Por último, la concatenación produce "76". No produce 13, porque el + final tiene dos cadenas como operandos.

Resuelve los tipos incompatibles de forma explícita

"Age: " + 30 lanza TypeError. Convierte el entero antes de concatenar:

print("Age: " + str(30))

Esto produce Age: 30. Como alternativa, print("Age:", 30) muestra los dos valores con un espacio entre ellos. Ese es el comportamiento de print() con argumentos separados, no una suma de texto.

Los enteros y los números de coma flotante pueden mezclarse en la aritmética habitual: 2 * 3.0 da el número de coma flotante 6.0. Python no convierte de forma similar una cadena numérica en un número durante +. Si necesitas calcular con "30", conviértela primero a un tipo numérico.

La resta no funciona con estos operandos de cadena. "10" - 3 lanza TypeError, aunque los caracteres 10 puedan representar un número. Para predecir una expresión con tipos mixtos, identifica el tipo de cada operando, evalúa las operaciones de mayor prioridad y vuelve a comprobar los tipos en la siguiente operación. Una conversión puede cambiar la regla que sigue el siguiente operador.

Puntos clave

  • Con cadenas, + une caracteres sin añadir espacios.
  • Con cadenas, * repite el texto un número entero de veces.
  • Para unir texto, convierte un número con str() o pásalo por separado a print().
  • Sigue tanto la precedencia como los tipos de los operandos al seguir una expresión con tipos mixtos.
5

Lee datos, conviértelos y muestra una salida útil

Un programa completo necesita una forma de recibir datos y comunicar un resultado. La entrada llega como texto, así que decide si el programa necesita conservar ese texto o convertirlo en un número. Realiza el cálculo con valores de los tipos adecuados y después muestra el resultado con una etiqueta clara y espacios útiles. Las conversiones, el redondeo y las opciones de print() permiten que un programa breve transforme respuestas escritas en una salida que alguien pueda entender y comprobar.

5.1 Las conversiones crean valores nuevos

La conversión de tipos crea un valor de un tipo distinto. Las funciones int(), float() y str() te permiten elegir la forma que necesita la siguiente operación.

Conserva el resultado de la conversión
x = "42"
int(x)
print(type(x))

Esto sigue mostrando <class 'str'>. La conversión creó un entero, pero ninguna asignación lo conservó. Escribe x = int(x) para que x se refiera a ese entero, o asígnalo a otro nombre cuando quieras conservar ambas formas.

Elige una conversión numérica

int() acepta una cadena que represente un número entero, con un signo opcional y espacios alrededor. int("42"), int("-12") e int(" 42 ") producen 42, -12 y 42.

Un punto decimal en una cadena impide la conversión directa a entero. int("3.5") e int("4.0") lanzan ValueError; también lo hacen int("abc") e int(""). Que 4,0 sea matemáticamente entero no convierte "4.0" en una cadena con formato de entero.

float() acepta texto decimal y notación con exponente. float("3.5") da 3.5, float("3") da 3.0, y float("1e3") da 1000.0. También convierte enteros: float(7) da 7.0. Una coma decimal falla: float("3,5") lanza ValueError.

Decide si necesitas truncar o redondear

Convertir un número de coma flotante a int elimina su parte fraccionaria hacia cero. int(3.99) da 3, e int(-3.99) da -3. No elige el entero más cercano. Para convertir texto decimal y después truncar, usa int(float("3.5")), que da 3.

round() elige el valor más cercano. round(3.7) da el entero 4; round(3.14159, 2) da el número de coma flotante 3.14. El segundo argumento establece el número de decimales.

En un punto exactamente intermedio, Python elige el vecino par: round(2.5) da 2, mientras que round(3.5) da 4. Las fracciones decimales almacenadas en coma flotante pueden no ser valores exactamente intermedios. round(2.675, 2) da 2.67 debido a su representación binaria.

ExpresiónResultadoMotivo
int(-3.5)-3Trunca hacia cero
round(-3.5)-4Entero más cercano; el empate se resuelve hacia el par
-7 // 2-4Redondea el cociente hacia abajo

Estas operaciones responden a preguntas distintas. Elige la operación que corresponda al resultado buscado, especialmente cuando pueda haber valores negativos.

Convierte a texto para unir cadenas

str(42) produce "42", y str(3.0) produce "3.0". Después de la conversión, + une sus caracteres:

print("7" + "3")
print(int("7") + int("3"))
print(str(7) + str(3))
print(float("7") + 3)

Las salidas son 73, 10, 73 y 10.0. Las conversiones determinan si el + final recibe texto o números.

Un ValueError señala un contenido inadecuado para una conversión, como int("abc"). Un TypeError señala una operación incompatible con sus operandos, como "5" + 5. Usa esa diferencia para decidir si debes revisar el texto de entrada o cambiar la operación.

Puntos clave

  • Una conversión devuelve un valor nuevo; asígnalo si necesitas conservarlo.
  • int() trunca los números de coma flotante hacia cero y exige texto de número entero para convertir una cadena directamente.
  • float() acepta texto con punto decimal y con exponente.
  • round() usa el valor más cercano y resuelve los empates exactos hacia el par.
  • str() proporciona texto para la concatenación.
  • ValueError y TypeError identifican clases de fallos distintas.

5.2 Controla lo que muestra print()

print() muestra valores para que una persona los lea. Sus argumentos son los valores o expresiones dentro de sus paréntesis. Las comas separan los argumentos; Python los evalúa antes de mostrar sus resultados.

Muestra valores con etiquetas útiles
print("Total:", 5)
print(3 + 4)
print("3 + 4")

Las líneas muestran Total: 5, 7 y 3 + 4. Una etiqueta indica a quien lee qué significa un valor. Un cálculo sin comillas se evalúa; una expresión entre comillas se muestra como texto.

Por defecto, print() pone un espacio entre argumentos y termina con un salto de línea. Convierte cada valor para mostrarlo, así que print("Total:", 5) puede mezclar texto y un entero sin un str() explícito.

Compáralo con print("Total:" + str(5)), que muestra Total:5. Aquí, + construye una cadena antes de que print() la reciba. La concatenación no aporta espacios automáticos, y solo hay un argumento que mostrar.

Establece el separador

El argumento con nombre sep establece el texto que se coloca entre los argumentos:

print("a", "b", sep="-")
print(1, 2, 3, sep=", ")
print("A", 12, sep="")

La salida es:

a-b
1, 2, 3
A12

Usa el nombre sep. Escribir print("a", "b", "-") proporciona un tercer valor, así que el resultado es a b -. Un separador vacío une directamente los argumentos mostrados; no elimina los espacios que ya están dentro de sus cadenas.

Establece el terminador

El argumento con nombre end cambia lo que sigue al último valor. Por defecto es un salto de línea. Un terminador vacío mantiene la siguiente salida en la misma línea:

print("a", end="")
print("b")

Esto muestra ab en una sola línea. Puedes incluir signos de puntuación y un salto de línea juntos:

print("Hello,", "Ada", end="!\n")

La salida es Hello, Ada! seguida de un salto de línea. sep se aplica entre los argumentos de una misma llamada; end se aplica después del último argumento de esa llamada. Controlan posiciones distintas.

Añade saltos de línea y elige la precisión mostrada

Llamar a print() sin argumentos muestra una línea vacía. Un \n dentro de una cadena crea un salto de línea en esa cadena, como en print("Line 1\nLine 2"). El texto repetido puede formar un separador: print("=" * 20) muestra veinte signos igual.

Python muestra un número de coma flotante con una forma breve que representa su valor almacenado. print(1 / 3) muestra 0.3333333333333333. Para mostrar un valor redondeado, calcúlalo primero dentro de la llamada: print(round(1 / 3, 2)) muestra 0.33.

El redondeo no garantiza un número fijo de decimales visibles. round(2.50, 2) se muestra como 2.5, porque el número de coma flotante no almacena ceros finales como una instrucción de presentación. Usa la salida exactamente como la produce Python al comprobar un programa.

Puntos clave

  • print() evalúa sus argumentos y muestra las cadenas sin las comillas que las rodean.
  • Los valores predeterminados son un espacio entre argumentos y un salto de línea al final.
  • sep cambia el espacio entre argumentos; end cambia lo que sigue al último argumento.
  • print() sin argumentos añade una línea vacía.
  • El redondeo cambia la precisión de un valor, no fija la cantidad de decimales mostrados.

5.3 Construye y prueba un programa de entrada–proceso–salida

input() muestra un mensaje de solicitud de datos, espera a que alguien escriba y pulse Intro, y después devuelve el texto escrito como una cadena sin el salto de línea de Intro. Un programa breve y completo lee los datos necesarios, los procesa y muestra un resultado.

Lee texto y convierte números
name = input("What is your name? ")
print("Hello", name)

El espacio al final del mensaje separa la respuesta escrita de la pregunta. La variable almacena texto como texto, incluso cuando el usuario escribe dígitos. Escribir 30 en input() produce "30", no el entero 30.

Elige una conversión antes de hacer operaciones aritméticas:

age = int(input("Age in whole years: "))
print("Next year:", age + 1)

El input() interior se ejecuta primero. Si el usuario escribe 30, devuelve "30"; int() lo convierte en 30; la asignación conserva el entero. Después, la suma produce 31.

Usa float(input(...)) cuando se permitan valores fraccionarios. Un mensaje debe indicar qué clase de respuesta se espera. Introducir 2.5 o thirty para una conversión con int() lanza ValueError. Introducir 98,6 para una conversión con float() también falla; el separador decimal debe ser un punto.

Omitir la conversión no siempre lanza un error. Si dos llamadas a input reciben 5 y 3, sus valores sin convertir se suman como cadenas y producen 53. Ambos operandos tienen un tipo que admite +, pero es la operación incorrecta para sumar cantidades.

Sigue un cálculo completo

El patrón entrada–proceso–salida facilita revisar las etapas principales:

# Convert a temperature from Fahrenheit to Celsius.
fahrenheit = float(input("Temperature in °F: "))
celsius = (fahrenheit - 32) * 5 / 9
print(fahrenheit, "°F is", round(celsius, 1), "°C")

Con la entrada 98.6, el programa lee el número de coma flotante 98.6. Resta 32 para obtener 66.6, multiplica por 5 para obtener 333.0 y divide entre 9 para obtener 37.0. La línea mostrada es 98.6 °F is 37.0 °C. La entrada 50 se convierte en 50.0, así que la línea es 50.0 °F is 10.0 °C.

Aquí tienes un programa con datos enteros:

total_minutes = int(input("Enter a whole number of minutes: "))
hours = total_minutes // 60
minutes = total_minutes % 60
print("Hours:", hours, "Minutes:", minutes)

La entrada 135 produce Hours: 2 Minutes: 15. Las etiquetas sirven para cero, uno y resultados mayores sin cambiar el texto. Las dos líneas de procesamiento usan el mismo total original; asignar un valor a hours no quita nada de total_minutes.

Prueba valores habituales y valores límite

Elige entradas cuyas respuestas puedas calcular a mano. En el programa de temperatura, 32 debería producir 0.0 °C y 212 debería producir 100.0 °C. Para los minutos, prueba 0, 59 y 60: comprueban el valor inicial y el paso de ninguna hora completa a una hora completa.

Prueba también un valor habitual como 135. Compara las etiquetas exactas, los espacios, los resultados numéricos y los tipos con tu predicción. Si el código se ejecuta, pero el resultado es incorrecto, sigue los valores almacenados y el orden de las operaciones. Si falla una conversión, revisa el texto escrito y el tipo que solicita tu mensaje.

Puntos clave

  • input() devuelve texto, incluso cuando el usuario escribe dígitos.
  • Convierte la entrada antes de hacer cálculos numéricos.
  • Usa mensajes de solicitud claros y etiqueta la salida.
  • Separa la lectura de datos, el cálculo y la presentación del resultado.
  • Prueba valores habituales y valores límite comparándolos con respuestas calculadas a mano.

Ejemplos de Variables y expresiones en Python

5 Lecciones Interactivas

1

Ejecuta un programa pequeño y corrígelo

13 pasos
Alterna entre la consola y un archivo de programa guardado, interpreta un fallo y explica una línea con un comentario.
  1. 1
    IntroducciónEmpieza con una predicción de la salida visible

    Un programa puede calcular un valor sin mostrarlo. Antes de ejecutar el código, predice dos cosas: qué hará Python y qué verá una persona.

    Primero compararemos una prueba en la consola con un archivo de programa guardado. Después revisaremos errores y comentarios. Ten presente la distinción entre ejecución del código y salida visible: una línea puede ejecutarse correctamente sin producir texto en la pantalla.

  2. 2
    EjemploPrueba una expresión en la consola

    Tras el indicador >>> de la consola de Python, introduce 9 * 3. Python evalúa la expresión y muestra 27 automáticamente.

    La consola proporciona el indicador; tú solo escribes la expresión. El indicador ... significa que Python espera más contenido de la misma sentencia. La consola resulta práctica para una comprobación rápida como esta, mientras que un archivo de programa guardado mantiene una secuencia lista para volver a ejecutarse.

  3. 3
    ExplicaciónHaz que un archivo de programa muestre su cálculo

    Un archivo de programa que solo contiene 9 * 3 evalúa el producto, pero no muestra nada. Para mostrarlo, escribe:

    print(9 * 3)
    print("Calculation finished")
    

    La salida es 27 y después Calculation finished en la línea siguiente. El intérprete sigue el orden de las sentencias. Ejecuta el archivo mediante el comando Ejecutar del editor o un comando de terminal; no escribas ese comando de terminal en la consola de Python.

  4. 4
    DesafíoPredice lo que se muestra realmente

    Un archivo de programa guardado contiene estas dos líneas. ¿Qué se muestra?

    11 + 5
    print("Ready to check")
    

    ---reveal---

    Solo aparece Ready to check. La primera línea calcula 16, pero no lo muestra. Si introdujeras esa primera expresión directamente en la consola interactiva, la consola mostraría su valor automáticamente. La diferencia depende de dónde se ejecuta la expresión.

  5. 5
    ExplicaciónDistingue una ejecución detenida de una respuesta incorrecta

    Un error de sintaxis significa que Python no puede leer el archivo de programa, así que la ejecución nunca empieza. Un error de ejecución ocurre después de empezar la ejecución y la detiene en la operación que falla.

    Un error lógico puede ejecutarse sin generar un mensaje. Por ejemplo, una agrupación incorrecta en una fórmula sigue produciendo un cálculo válido. Compara su resultado con un cálculo a mano en lugar de esperar a que Python identifique el error.

  6. 6
    EjemploLee primero la última línea del error

    Considera este código:

    distance = 21
    print(distnace)
    

    Una traza de excepción termina identificando NameError y el nombre no definido distnace. Lee ese mensaje final y después revisa la línea indicada que aparece encima. El nombre al que se asignó un valor antes es distance; las dos formas de escribirlo son distintas. Corrige la consulta a print(distance), que muestra 21.

  7. 7
    ConsejoElige la siguiente comprobación útil

    Deja que el tipo de error limite tu búsqueda. Para NameError, comprueba la escritura, las mayúsculas y si la variable recibió un valor antes. Para TypeError, revisa los tipos usados por la operación. Para ValueError, revisa el texto pasado a una conversión.

    Si la línea indicada parece correcta, revisa la anterior por si tiene una comilla o un paréntesis sin cerrar. Corrige un error y vuelve a ejecutar el programa para encontrar el siguiente problema al que pueda llegar.

  8. 8
    Desafío¿Se conserva el primer mensaje?

    ¿Qué se muestra antes de que este programa se detenga? No se ha asignado un valor a items.

    print("Checking")
    print(items)
    print("Finished")
    

    ---reveal---

    Se muestra Checking. La siguiente línea lanza NameError y deja la última línea sin ejecutar. Es un fallo de ejecución: Python podía leer el archivo de programa, pero no pudo consultar un valor durante la ejecución. La salida anterior permanece visible.

  9. 9
    ExplicaciónAñade el significado que necesita quien lee

    Un comentario empieza con # fuera de una cadena y continúa hasta el final de la línea. Puede explicar la razón de un valor:

    service_rate = 0.03  # 3% processing fee
    

    El comentario indica a quien lee qué representa la tasa. Python lo ignora al ejecutar la asignación. Deja al menos dos espacios antes del símbolo de un comentario en línea y un espacio después. Un nombre claro y un comentario útil se complementan.

  10. 10
    DesafíoLocaliza el límite del comentario

    ¿Qué muestra esta línea y qué palabras ignora Python?

    print("Order #16")  # Packing label
    

    ---reveal---

    Muestra Order #16. La almohadilla dentro de las comillas pertenece a la cadena. La segunda almohadilla inicia el comentario, así que Packing label se ignora. La posición de un carácter dentro o fuera de una cadena cambia cómo lo interpreta Python.

  11. 11
    ConsejoMantén el comentario correcto después de editar

    Si la comisión de procesamiento cambia del 3 por ciento al 5 por ciento, cambia tanto service_rate a 0.05 como el comentario a 5% processing fee.

    Python no te avisará de un comentario desactualizado porque los comentarios no se ejecutan. Aun así, puede confundir a quien lo lee. Para pruebas temporales, # puede desactivar una sentencia; elimina las líneas antiguas desactivadas cuando ya no ayuden a entender el programa.

  12. 12
    DesafíoCombina salida, comentarios y un fallo

    ¿Qué aparece al ejecutar este archivo de programa guardado? Supón que no se había definido ningún nombre.

    print("Status #1")  # Show the status.
    Print("Done")
    

    ---reveal---

    El comentario se ignora y se muestra Status #1. Después, Print lanza NameError porque Python distingue entre nombres con mayúsculas y minúsculas. La función incorporada es print. La primera salida válida permanece visible porque el fallo ocurre durante la ejecución.

  13. 13
    RepasoUsa la salida como evidencia

    La consola muestra los valores de las expresiones, mientras que un archivo de programa necesita una llamada explícita de salida. Un fallo de ejecución deja visible la salida anterior; un error de sintaxis impide que el archivo empiece a ejecutarse.

    Para tu próximo programa breve, escribe una salida esperada antes de ejecutarlo. Si la predicción falla, usa el tipo de error o el seguimiento de los valores para elegir la siguiente comprobación. Centra los comentarios en el significado que el código no explica ya.

2

Identifica el tipo por la forma de escribir un valor

14 pasos
Compara literales, consulta tipos y construye cadenas con los caracteres que quieres.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónLos valores de aspecto similar pueden comportarse de forma distinta
  2. 2
    EjemploExamina tres formas de los mismos dígitos
  3. 3
    ConexiónElige los datos según su propósito
  4. 4
    DesafíoDistingue el texto booleano de un booleano
  5. 5
    ExplicaciónCambia la escala de un número de coma flotante con notación exponencial
  6. 6
    Idea claveUna coma cambia los datos
  7. 7
    DesafíoEscribe un valor decimal pequeño
  8. 8
    ConsejoInterpreta las pequeñas cifras adicionales
  9. 9
    EjemploElige comillas exteriores que se adapten al mensaje
  10. 10
    ExplicaciónIncluye un salto de línea en una cadena
  11. 11
    DesafíoPredice nombres con y sin comillas
  12. 12
    Idea claveUn espacio también cuenta como dato
  13. 13
    DesafíoRelaciona la escritura con el comportamiento
  14. 14
    RepasoComprueba el valor antes de la operación
3

Sigue un valor a través de las asignaciones

14 pasos
Lee asignaciones, mejora los nombres y sigue actualizaciones e intercambios sin perder un valor anterior.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónSigue un momento cada vez
  2. 2
    EjemploPrimero evalúa y después asigna
  3. 3
    Idea claveUn resultado almacenado no conserva una fórmula
  4. 4
    DesafíoSigue una copia antes de la reasignación
  5. 5
    ConexiónElige un nombre fácil de leer
  6. 6
    EjemploMantén disponibles los nombres incorporados
  7. 7
    DesafíoCorrige un nombre sin cambiar su significado
  8. 8
    ExplicaciónActualiza a partir de un valor existente
  9. 9
    EjemploAnota solo lo que ha cambiado
  10. 10
    DesafíoObserva cómo una actualización cambia el tipo
  11. 11
    ExplicaciónConserva un original antes de sobrescribirlo
  12. 12
    ExplicaciónLee un intercambio simultáneo
  13. 13
    DesafíoCombina nombres, copias y actualizaciones
  14. 14
    RepasoSigue los valores actuales, no las intenciones
4

Evalúa expresiones operación por operación

18 pasos
Elige operaciones aritméticas y de cadenas, aplica agrupaciones y reparte cantidades en grupos completos y sobrantes.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónSigue tanto el orden como el tipo
  2. 2
    ExplicaciónRelaciona el símbolo con la operación
  3. 3
    EjemploAnota el tipo junto al cociente
  4. 4
    DesafíoElige una potencia y su resultado
  5. 5
    EjemploResuelve primero la operación de mayor prioridad
  6. 6
    Idea claveLa misma prioridad significa de izquierda a derecha
  7. 7
    ExplicaciónLas potencias se agrupan en la otra dirección
  8. 8
    DesafíoCorrige la agrupación de un cálculo
  9. 9
    EjemploReparte una cantidad en grupos completos
  10. 10
    ExplicaciónRedondear hacia abajo también se aplica por debajo de cero
  11. 11
    ConexiónUsa los dígitos como grupos de diez
  12. 12
    DesafíoObtén las dos partes del tiempo
  13. 13
    ExplicaciónEl texto usa los mismos símbolos de otra forma
  14. 14
    EjemploConstruye un borde antes de unirlo
  15. 15
    DesafíoConvierte el resultado interior en texto
  16. 16
    ConsejoLocaliza una operación incompatible
  17. 17
    DesafíoCombina resto, potencia y texto
  18. 18
    RepasoComprueba el resultado intermedio
5

Transforma los datos escritos en un resultado comprobado

15 pasos
Elige conversiones, controla la salida y construye un programa que separe la lectura, el cálculo y la presentación.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónLee, calcula y después explica el resultado
  2. 2
    ExplicaciónConserva el valor nuevo de una conversión
  3. 3
    EjemploUn número de coma flotante y un texto decimal se convierten de forma distinta
  4. 4
    DesafíoDistingue el truncamiento del redondeo
  5. 5
    ExplicaciónPasa valores separados a print
  6. 6
    EjemploCambia el separador y el terminador
  7. 7
    DesafíoPredice dos llamadas a print juntas
  8. 8
    ConsejoRedondea un valor sin garantizar texto con ceros de relleno
  9. 9
    EjemploLee una entrada de número entero
  10. 10
    EjemploCalcula dos resultados a partir del mismo total
  11. 11
    EjemploEtiqueta los valores finales
  12. 12
    DesafíoEncuentra la conversión que falta
  13. 13
    ConexiónPrueba el punto donde cambia la respuesta
  14. 14
    DesafíoCombina conversión, división y salida
  15. 15
    RepasoComprueba cada etapa por separado

Ejercicios de Variables y expresiones en Python

50 Preguntas de Práctica en 5 sets

Set 1: Lee programas breves y predice sus resultados10 Preguntas de Práctica

Pregunta 1 de 10

Un archivo de programa guardado solo contiene 18 - 6. ¿Qué aparece al ejecutarlo?
  1. Aparece el número 12.
  2. Aparece la expresión 18 - 6.
  3. No se muestra nada.
  4. Aparece un error de sintaxis.
Mostrar respuestaOcultar respuesta
Respuesta: C
Un archivo de programa evalúa una expresión por sí sola sin mostrar su resultado, así que no aparece nada. La consola interactiva mostraría 12 para la misma expresión, lo que facilita la confusión. En un archivo de programa, usa print(18 - 6) cuando el resultado deba ser visible.

Pregunta 2 de 10

Un archivo de programa contiene este código. ¿Qué salida aparece antes de que se detenga?

print("Ready")
print(missing_total)
print("Done")

No se ha asignado un valor a missing_total.

  1. Solo Ready
  2. Ready y Done
  3. Ninguna salida
  4. Solo Done
Mostrar respuestaOcultar respuesta
Respuesta: A
La primera sentencia muestra Ready. La siguiente lanza NameError, así que la ejecución nunca llega a la última llamada a print. Es un fallo de ejecución, que conserva la salida anterior; un error de sintaxis impediría que todo el archivo de programa empezara a ejecutarse.

Pregunta 3 de 10

¿Qué tipo indica type("False")?
  1. bool
  2. int
  3. float
  4. str
Mostrar respuestaOcultar respuesta
Respuesta: D
Las comillas hacen que "False" sea una cadena de cinco caracteres, así que su tipo es str. El literal booleano False no lleva comillas y tiene la primera letra en mayúscula. Una palabra que parece un booleano dentro de una cadena sigue siendo texto; Python no reinterpreta sus caracteres como código.

Pregunta 4 de 10

¿Qué expresión de Python calcula cinco elevado a la tercera potencia?
  1. 5 ^ 3
  2. 5 ** 3
  3. 5 * 3
  4. 5 + 3
Mostrar respuestaOcultar respuesta
Respuesta: B
** es el operador de potenciación de Python, así que 5 ** 3 calcula 125. El acento circunflejo ^ realiza otra operación y no significa potenciación. Multiplicar por tres sumaría cinco tres veces, mientras que una tercera potencia multiplica tres copias de cinco entre sí.

Pregunta 5 de 10

¿Qué muestra print("North\nSouth")?
  1. North\nSouth en una línea
  2. North y South en líneas separadas
  3. North South en una línea
  4. NorthnSouth en una línea
Mostrar respuestaOcultar respuesta
Respuesta: B
La secuencia de escape \n representa un salto de línea dentro de la cadena, así que South empieza en una segunda línea. Aquí Python no muestra la barra invertida y la n como dos caracteres visibles. Para conservar una barra invertida literal antes de n, la cadena del código necesitaría una barra invertida doble.

Pregunta 6 de 10

¿Qué muestra esto?

stock = 14
saved = stock
stock = 9
print(stock, saved)
  1. 9 9
  2. 14 9
  3. 14 14
  4. 9 14
Mostrar respuestaOcultar respuesta
Respuesta: D
En saved = stock, el nombre saved recibe el valor actual 14. Reasignar stock hace después que solo ese nombre se refiera a 9, así que la salida es 9 14. Obtener 9 9 supondría tratar la asignación anterior como un vínculo permanente entre los nombres, y no lo es.

Pregunta 7 de 10

¿Cuál es un nombre de variable válido en snake_case para un conteo de asientos disponibles?
  1. available_seats
  2. available-seats
  3. 2available_seats
  4. available seats
Mostrar respuestaOcultar respuesta
Respuesta: A
available_seats une palabras en minúsculas con un guion bajo y empieza con una letra. Un guion se interpreta como una resta, así que available-seats no es un único nombre de variable. Los nombres no pueden contener espacios ni tener un dígito como primer carácter.

Pregunta 8 de 10

¿Qué valor y tipo produce 24 / 6?
  1. 4, un entero
  2. 0, un entero
  3. 4.0, un número de coma flotante
  4. 0.0, un número de coma flotante
Mostrar respuestaOcultar respuesta
Respuesta: C
La división con / da un número de coma flotante para operandos enteros, así que 24 / 6 produce 4.0. Que la división sea exacta no cambia esa regla de tipos. En cambio, 24 // 6 produciría el entero 4, mientras que % obtendría el resto cero en lugar del cociente.

Pregunta 9 de 10

¿Qué valor produce 40 - 18 / 3 * 2 + 1?
  1. 29.0
  2. 38.0
  3. 15.666666666666666
  4. 28.0
Mostrar respuestaOcultar respuesta
Respuesta: A
La división y la multiplicación tienen la misma prioridad y avanzan de izquierda a derecha: 18 / 3 da 6.0, y después multiplicar por 2 da 12.0. El cálculo restante es 40 - 12.0 + 1, o 29.0. Multiplicar primero 3 * 2 crearía incorrectamente un denominador de seis.

Pregunta 10 de 10

¿Qué muestra print("Zone", 4, sep="-")?
  1. Zone 4
  2. Zone4-
  3. Zone 4 -
  4. Zone-4
Mostrar respuestaOcultar respuesta
Respuesta: D
sep="-" coloca un guion entre los dos argumentos mostrados y da Zone-4. No añade el guion después del último valor; el terminador sigue siendo el salto de línea predeterminado. Sin el argumento con nombre sep, se mantendría el espacio normal entre los argumentos.
Set 2: Trabaja con valores cambiantes y datos con tipo10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

¿Qué muestra esto?

print("Bay #7")  # Pickup point
  1. Bay
  2. Bay #7
  3. Bay #7 Pickup point
  4. Bay Pickup point
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

El identificador de una credencial es "00482" y no se usará en cálculos. ¿Qué tipo lo conserva mejor?
  1. Un número entero
  2. Un número de coma flotante
  3. Un valor booleano
  4. Una cadena de caracteres
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

¿Qué valor tiene cost al final?

units = 6
rate = 4
cost = units * rate
units = 8
  1. 24
  2. 32
  3. 8
  4. 6
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

¿Qué muestra esto?

points = 12
points -= 5
points *= 3
print(points)
  1. 7
  2. 31
  3. 21
  4. 36
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

¿Qué valor y tipo tiene el literal 6e2?
  1. 600, un entero
  2. 6.2, un número de coma flotante
  3. 600.0, un número de coma flotante
  4. 62, un entero
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

En una bandeja caben 8 panecillos. Un panadero tiene 53 panecillos. ¿Cuántas bandejas completas y panecillos sobrantes hay?
  1. 6 bandejas completas y 5 panecillos
  2. 6 bandejas completas y 6 panecillos
  3. 7 bandejas completas y 3 panecillos
  4. 5 bandejas completas y 6 panecillos
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

¿Qué muestra print("Go" * 2 + "!")?
  1. Go Go!
  2. Go!Go!
  3. Go2!
  4. GoGo!
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

¿Cuál es el resultado de int(-8.9)?
  1. -9
  2. -8
  3. 8
  4. -8.0
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

¿Qué aparece en la primera línea de salida?

print("P", "Q", sep=":", end="|")
print("R", "S", sep="-")
  1. P:Q| R-S
  2. P:Q:R-S
  3. P-Q|R:S
  4. P:Q|R-S
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un usuario escribe 7 en la primera solicitud y 4 en la segunda. ¿Qué muestra este programa?

first = input("First: ")
second = input("Second: ")
print(int(first + second) + 2)
  1. 76
  2. 13
  3. 742
  4. 11
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 3: Sigue expresiones y diagnostica errores10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

En una consola de Python recién iniciada, introduces amount = 11 y después amount + 4. ¿Qué muestra la consola para estas dos entradas?
  1. 11 para la asignación y después 15
  2. Nada para ninguna de las dos entradas
  3. 11 para la asignación y después amount + 4
  4. Nada para la asignación y después 15
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Un archivo de programa contiene este código. ¿Qué salida aparece antes del mensaje de error?

print("Loading")
value = 6
print("Value:", value
  1. Solo aparece Loading.
  2. No aparece ninguna salida.
  3. Aparecen Loading y Value: 6.
  4. Solo aparece Value: 6.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

¿Cuál es un literal correcto de Python para el entero dos millones quinientos mil?
  1. 2,500,000
  2. 2.500.000
  3. 2_500_000
  4. 2_500_000.0
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

¿Qué muestra print('He said "yes"')?
  1. He said "yes"
  2. He said yes
  3. 'He said "yes"'
  4. He said 'yes'
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Una persona que programa escribe MAX_ATTEMPTS = 5. ¿Qué comunican las mayúsculas?
  1. Python rechazará cualquier asignación posterior.
  2. La variable solo puede contener enteros.
  3. El nombre es una palabra reservada de Python.
  4. Se pretende que el valor permanezca sin cambios.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

¿Qué muestra esto?

a = 4
b = 9
a, b = b, a
a += b
print(a, b)
  1. 18 9
  2. 13 4
  3. 13 9
  4. 9 13
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

¿Qué valor produce (-3) ** 2 + 2 ** 3?
  1. 17
  2. -1
  3. 25
  4. 15
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

¿Cuáles son los valores de -17 // 5 y -17 % 5, en ese orden?
  1. -3 y -2
  2. -4 y -3
  3. -4 y 3
  4. -3 y 2
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

¿Qué ocurre cuando Python evalúa int("12.0")?
  1. Devuelve el entero 12.
  2. Lanza ValueError.
  3. Devuelve el número de coma flotante 12.0.
  4. Lanza TypeError.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un usuario escribe 84.5. El programa debe convertir grados Fahrenheit a Celsius. ¿Qué sustitución de la línea de cálculo corrige su resultado?

fahrenheit = float(input("Temperature in °F: "))
celsius = fahrenheit - 32 * 5 / 9
print(round(celsius, 1))
  1. celsius = fahrenheit - (32 * 5 / 9)
  2. celsius = (fahrenheit - 32 * 5) / 9
  3. celsius = (fahrenheit - 32) * 5 / 9
  4. celsius = fahrenheit - 32 * (5 / 9)
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 4: Elige la operación que corresponda a la tarea10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Un archivo de programa contiene las siguientes líneas. ¿Qué mensaje aparece?

# print("Check")
print("Open #2")
  1. Open #2
  2. Check y Open #2
  3. Open
  4. Check y Open
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

¿Qué valor y tipo produce 3 + 2.0?
  1. 5, un entero
  2. "32.0", una cadena
  3. 5.0, un número de coma flotante
  4. "5.0", una cadena
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Después de label = "Desk", ¿qué muestra print("label", label, sep=":")?
  1. Desk:Desk
  2. label:Desk
  3. label:label
  4. "label":"Desk"
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

¿Qué muestra esto?

base = 8
double = base * 2
copy = double
base = 10
double = base * 2
print(copy, double)
  1. 20 20
  2. 16 16
  3. 8 20
  4. 16 20
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

¿Qué valores producen int(-6.5), round(-6.5) y -13 // 2, en ese orden?
  1. -6, -6, -7
  2. -7, -6, -7
  3. -6, -7, -6
  4. -7, -7, -6
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

¿Qué valores producen 9.0 // 4 y 9 // 4, en ese orden?
  1. 2 y 2
  2. 2.25 y 2
  3. 2.0 y 2
  4. 2.0 y 2.0
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

El mismo texto válido se ejecuta como un archivo de programa desde cero y después se introduce sentencia por sentencia en una consola recién iniciada: n = 6, n * 3, print(n). ¿Qué diferencia aparece?
  1. Ambos muestran 18 y después 6; el entorno no cambia nada.
  2. El archivo muestra 18; la consola muestra 6 y después 18.
  3. El archivo muestra 6; la consola muestra 6, 18 y después 6.
  4. El archivo muestra 6; la consola muestra 18 y después 6.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

¿Por qué falla la última línea?

input = "Leah"
name = input("Name: ")
  1. La palabra input es una palabra reservada.
  2. El nombre input ahora se refiere a una cadena.
  3. Un mensaje de solicitud no puede contener dos puntos.
  4. Falta una conversión numérica alrededor de la llamada.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

¿Qué muestra print("Row", 8, "|", end="!") antes de que se detenga el cursor?
  1. Row|8!
  2. Row8|!
  3. Row 8 |!
  4. Row 8 !|
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un programa que convierte minutos en horas da el resultado esperado para la entrada 145. Después, un usuario introduce 119. ¿Qué muestra y qué cambio hace que hours cuente horas completas?

total_minutes = int(input("Whole minutes: "))
hours = round(total_minutes / 60)
minutes = total_minutes % 60
print(hours, minutes)
  1. 2 59; usa hours = total_minutes // 60.
  2. 1 59; usa hours = total_minutes // 60.
  3. 2 59; usa hours = int(total_minutes) / 60.
  4. 1 59; usa hours = total_minutes % 60.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 5: Combina seguimiento, conversiones y comprobaciones de programas10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

¿Qué muestra print("6" + str(2 + 3) * 2)?
  1. 6565
  2. 610
  3. 655
  4. 16
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Un usuario introduce 4. ¿Qué aparece, aparte del mensaje de solicitud de datos y del mensaje de error?

count = input("Count: ")
print("Received")
next_count = count + 1
print(next_count)
  1. Received y después se muestra 5.
  2. Received y después se muestra 41.
  3. Nada; ninguna sentencia puede ejecutarse.
  4. Received y después se detiene la ejecución.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Un comentario debe explicar una tasa. El código cambia de fee_rate = 0.04 # 4% service fee a fee_rate = 0.06 # 4% service fee. ¿Qué debe corregirse?
  1. Cambiar el comentario para indicar una comisión del 6 %.
  2. Conservar el comentario porque Python lo ignora.
  3. Poner el comentario entre comillas para actualizarlo.
  4. Eliminar el punto decimal de la tasa.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

¿Por qué puede mostrarse 0.1 + 0.2 como 0.30000000000000004?
  1. El operador más une los dígitos decimales como texto.
  2. Los valores binarios de coma flotante almacenados aproximan las fracciones decimales.
  3. El intérprete redondea cada suma hacia arriba en un dígito.
  4. El punto decimal separa dos valores independientes.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

¿Qué muestra esto?

rate = 6
hours = 4
pay = rate * hours
rate += 2
pay += rate
hours /= 2
print(pay, hours)
  1. 40 2.0
  2. 32 2
  3. 24 2.0
  4. 32 2.0
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

¿Qué valor produce -2 ** 3 ** 2 + 20 // 3 % 4?
  1. -62
  2. -510
  3. -506
  4. 514
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Un ajuste con signo es -23. Su cociente y su resto al dividir entre 6 deben reconstruirlo. ¿Cuáles son los dos resultados?
  1. Cociente -3, resto -5
  2. Cociente -4, resto -1
  3. Cociente -4, resto 1
  4. Cociente -3, resto 5
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

¿Qué muestra print("Code: " + str(3 * 4))?
  1. Code: 12
  2. Code: 34
  3. Code: 121212
  4. Code: 3 * 4
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

¿Qué muestra esto?

reading = "18"
float(reading)
print(reading + "2")
  1. 20.0
  2. 182
  3. 18.02
  4. 20
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Una máquina cobra 3 dólares estadounidenses por cada bloque completo de 15 minutos y 1 dólar por cada minuto sobrante. ¿Qué debe sustituir la línea de cálculo para obtener el cobro con una entrada entera?

minutes = int(input("Minutes: "))
charge = 0
print("Charge in dollars:", charge)
  1. charge = (minutes / 15) * 3 + minutes % 15
  2. charge = (minutes // 15) * 3 + minutes // 15
  3. charge = minutes // (15 * 3) + minutes % 15
  4. charge = (minutes // 15) * 3 + minutes % 15
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

¿Te atascas con una pregunta tuya? Ayuda con Tareas

Términos Clave

71 Términos Clave, cada uno con su definición

A

Acumulador
Un acumulador es una variable que mantiene una suma acumulada, parte de un valor inicial y cambia a medida que se añaden cantidades.
Inicializa total = 0 antes de usar actualizaciones como total += cost para acumular varias cantidades.
Archivo de programa
Un archivo de programa es un archivo de texto sin formato con sentencias de Python que se puede guardar, editar y ejecutar en el orden en que están escritas.
Guardar instrucciones en un archivo de programa te permite volver a ejecutar el mismo cálculo después de cambiar un valor de entrada.
Argumento
Un argumento es un valor o una expresión que se proporciona dentro de los paréntesis de una llamada a función para que la función opere con esos datos.
En print("Score:", 9), la etiqueta y el entero son argumentos separados que se muestran en ese orden.
Asignación
La asignación evalúa una expresión y hace que un nombre de destino se refiera al valor resultante, usando = con el nombre a la izquierda.
En area = width * height, la multiplicación se evalúa antes de guardar su resultado bajo area.
Asignación aumentada
La asignación aumentada combina una operación con una reasignación y usa un valor existente para calcular y almacenar su sustituto.
Con números, score += 6 suma seis a la puntuación actual y vuelve a asignar la suma al mismo nombre.
Asignación simultánea
La asignación simultánea evalúa todas las expresiones de la derecha antes de asignar sus valores a los nombres de la izquierda según su posición.
En x, y = 4, 8, el primer nombre recibe cuatro y el segundo recibe ocho en una sola sentencia.
Asociatividad
La asociatividad determina cómo se agrupan las operaciones de igual prioridad; la mayoría se agrupan de izquierda a derecha, mientras que las potencias se agrupan de derecha a izquierda.
La expresión 16 / 4 * 2 se agrupa como (16 / 4) * 2, así que el resultado es 8.0, no 2.0.

B

Booleano
Un booleano es un valor de tipo bool con uno de dos valores, True o False, escritos con mayúscula inicial y sin comillas.
La comparación 4 < 9 produce el booleano True, mientras que el texto entre comillas "True" es una cadena.

C

Cadena de caracteres
Una cadena de caracteres es una secuencia de caracteres de tipo str que contiene texto como letras, dígitos, espacios, signos de puntuación y símbolos.
El valor "Bus 09" conserva sus letras, su espacio y su identificador con cero inicial como un único valor de texto.
Cadena de documentación
Una cadena de documentación es una cadena que se usa como documentación en una posición designada del código Python; es distinta de un comentario marcado con #.
Una cadena entre comillas triples al principio de un archivo de programa puede describir el programa sin ser un comentario.
Cadena vacía
La cadena vacía es una cadena que no contiene ningún carácter, escrita como "" o ''; es distinta de una cadena que contiene un espacio.
Repetir una cadena cero veces produce texto vacío, mientras que añadir " " inserta un carácter de espacio.
Cociente
Un cociente es el resultado de una división; la división entera con redondeo hacia abajo selecciona el mayor entero que no supera el cociente exacto.
Para 22 // 5, el cociente redondeado hacia abajo es cuatro y el resto correspondiente es dos.
Comentario
Un comentario es una nota que empieza con # fuera de una cadena y termina al final de la línea; Python lo ignora al ejecutar el programa.
Una nota que explica que una tasa incluye una comisión de servicio ayuda a quien lee a entender por qué se eligió.
Comentario en línea
Un comentario en línea es un comentario situado después del código ejecutable en la misma línea, normalmente separado del código por al menos dos espacios.
En rate = 0.07 # 7% tax, la asignación se ejecuta y las palabras finales explican el significado de la tasa.
Concatenación
La concatenación une cadenas una al final de otra con +, conserva el orden de sus caracteres y no inserta espacios ni signos de puntuación adicionales.
Unir "Room " y "12" conserva el espacio que ya está dentro de la primera cadena y da "Room 12".
Consola interactiva
La consola interactiva es un entorno donde se introducen sentencias de Python una por una y se ven inmediatamente los resultados de las expresiones. También se llama REPL.
Tras el indicador >>>, introducir 14 + 2 hace que la consola muestre 16 sin una llamada a print.
Constante
Una constante es un valor que se pretende mantener sin cambios y que, por convención, recibe un nombre en mayúsculas, aunque Python permite reasignarlo.
El nombre FEE_RATE indica a quien lee que debe tratar esa tasa como fija al seguir el programa.
Conversión de tipos
La conversión de tipos crea un valor nuevo del tipo solicitado, como un entero a partir de texto numérico, sin cambiar el propio valor original.
Guarda int(text) en una variable cuando las operaciones aritméticas posteriores necesiten su valor convertido en lugar del texto.

D

Delimitador de cadena
Un delimitador de cadena es una comilla de apertura o cierre que identifica un límite de la cadena sin formar parte de su texto.
Las comillas dobles exteriores de "We're ready" permiten que el apóstrofo permanezca dentro de la cadena.
Depuración
La depuración es el proceso de detectar y corregir errores en el código mediante la revisión de mensajes, la comprobación de valores y la comparación de resultados esperados.
Leer la última línea de la traza de una excepción te ayuda a decidir qué escritura, valor u operación comprobar después.
Desactivación de código mediante comentarios
La desactivación de código mediante comentarios consiste en poner un símbolo de comentario antes de una sentencia para que no se ejecute, manteniendo disponible su texto.
Añadir # delante de una llamada temporal a print desactiva esa salida sin borrar la línea del editor.
Distinción entre mayúsculas y minúsculas
La distinción entre mayúsculas y minúsculas significa que estas letras diferencian los nombres, así que cambiar las mayúsculas puede hacer referencia a otro nombre.
Después de asignar un valor a total, escribir print(Total) falla a menos que también exista ese otro nombre con mayúscula.
División entera con redondeo hacia abajo
La división entera con redondeo hacia abajo divide dos valores numéricos y redondea el cociente hacia abajo, también hacia valores más negativos cuando el cociente es negativo.
La expresión -10 // 3 da -4, porque menos 3,333… se redondea hacia abajo, no hacia cero.

E

Entrada
La entrada son los datos proporcionados a un programa; la función incorporada input() lee una línea escrita y devuelve sus caracteres como una cadena.
Introducir 45 produce el texto "45", que necesita una conversión antes de poder usarse como un entero.
Entrada–proceso–salida
Entrada–proceso–salida es una estructura de programa que lee y convierte datos, calcula con los valores y muestra resultados con significado.
Un programa de viajes puede leer millas y galones, calcular millas por galón y después mostrar el resultado con su unidad.
Error de ejecución
Un error de ejecución es un fallo durante la ejecución que detiene el programa en la operación que falla, después de que se hayan ejecutado las sentencias anteriores.
Si una línea posterior divide entre cero, el texto mostrado por una línea anterior permanece visible en la pantalla.
Error de programación
Un error de programación es un fallo en un programa que impide el comportamiento buscado, tanto si provoca un mensaje de error como si produce un resultado incorrecto.
La falta de un par de paréntesis en el cálculo de una media puede ser un error de programación aunque el código se ejecute.
Error de sintaxis
Un error de sintaxis es un incumplimiento de la gramática de Python que impide que un archivo de programa guardado empiece a ejecutarse, como la falta de un paréntesis de cierre.
Una comilla sin cerrar cerca del final de un archivo de programa puede impedir que se ejecute incluso la primera sentencia print.
Error lógico
Un error lógico es un fallo que permite ejecutar el código, pero da un resultado que no corresponde al cálculo o al comportamiento que se pretendía programar.
Un total que omite una comisión puede ser incorrecto sin producir ninguna excepción ni advertencia de Python.
Expresión
Una expresión es código Python que se evalúa para obtener un valor, desde un literal o un nombre por sí solo hasta una combinación de varias operaciones.
En print(7 * 6), la expresión 7 * 6 se evalúa antes de mostrar su valor en la pantalla.
Expresión con tipos mixtos
Una expresión con tipos mixtos combina valores de distintos tipos, así que hay que comprobar que cada operación tenga una combinación compatible de operandos.
El cálculo 2 + 0.5 funciona numéricamente, mientras que "2" + 0.5 falla sin una conversión explícita.

F

Función incorporada
Una función incorporada es una operación a la que se puede llamar sin importar nada, como print() o input(), cuyo nombre puede quedar oculto por una asignación.
Usar un nombre de datos como item_total mantiene disponible el nombre incorporado int para las conversiones.

I

Identificador
Un identificador es un nombre usado en el código, como un nombre de variable, que debe cumplir las reglas de caracteres de Python y evitar las palabras reservadas.
El identificador seat_count2 es válido, pero un nombre que empieza con un dígito o contiene un espacio no lo es.
Incremento
Un incremento es un aumento del valor de una variable, normalmente en uno, realizado mediante una asignación que usa su valor existente.
Después de visits = 4, la actualización visits += 1 registra una visita más y hace que el conteo sea cinco.
Intérprete
Un intérprete es un programa que lee código Python y ejecuta sus instrucciones usando los valores y las operaciones que especifica el código.
En print(6 * 7), el intérprete evalúa 6 * 7 y proporciona el valor resultante a la llamada a print.

L

Literal
Un literal es un valor escrito directamente en el código fuente, cuya forma de escritura, como las comillas o un punto decimal, determina su tipo.
Los literales 12, 12.0 y "12" son un entero, un número de coma flotante y una cadena, respectivamente.

M

Menos unario
El menos unario es un operador que cambia el signo de un valor, a diferencia de la resta, que combina dos operandos para obtener una diferencia.
En 10 - -2, el segundo menos forma menos dos, así que restarlo da el valor 12.
Mensaje de solicitud de datos
Un mensaje de solicitud de datos pide al usuario que introduzca datos e idealmente identifica la clase de valor esperada y cualquier unidad de medida.
El mensaje "Whole minutes: " indica que el programa espera texto con formato de entero y deja un espacio para escribir.

N

Notación científica
La notación científica escribe un número de coma flotante usando e y una potencia de diez, lo que permite expresar de forma compacta valores numéricos muy grandes o muy pequeños.
El literal 8e-3 significa ocho dividido entre mil y representa el número de coma flotante 0.008.
Número de coma flotante
Un número de coma flotante es un número de precisión limitada que se usa para cantidades que pueden contener fracciones, como las medidas.
El literal 6.0 es un número de coma flotante aunque su valor numérico sea exactamente igual al entero seis.
Número entero
Un número entero es un valor de tipo int sin parte fraccionaria; los enteros de Python no tienen un límite fijo de bits.
Usa item_count = 24 para un conteo y escribe los literales enteros grandes con guiones bajos opcionales.

O

Operador
Un operador es un símbolo o una combinación de símbolos que realiza una operación sobre operandos, como + para la suma o ** para una potencia.
Cambiar 6 * 2 por 6 ** 2 cambia la operación de multiplicación a potenciación.
Operando
Un operando es un valor o una expresión sobre el que actúa un operador, y su tipo ayuda a determinar qué puede hacer esa operación.
En hours * rate, los valores actuales de hours y rate son los operandos de la multiplicación.

P

Palabra reservada
Una palabra reservada es una palabra que se reserva para la gramática de Python, por lo que no puede usarse como un nombre de variable normal en una asignación.
Usar class como destino de una asignación provoca un error de sintaxis antes de que el archivo de programa pueda ejecutarse.
Paréntesis
Los paréntesis son signos de agrupación redondos que hacen que una expresión encerrada actúe como una parte de un cálculo mayor o encierran los argumentos de una función.
En (10 + 6) / 4, los paréntesis aseguran que toda la suma se divida entre cuatro para dar 4.0.
Paridad
La paridad describe si un entero es par o impar, lo que puede identificarse mediante su resto al dividir entre dos.
El resultado de -5 % 2 es uno, lo que muestra que menos cinco es impar según la misma regla del resto.
Potenciación
La potenciación eleva una base a una potencia usando **; con operandos enteros y un exponente no negativo, el resultado es un entero.
La expresión 4 ** 3 multiplica tres copias de cuatro y da el resultado entero 64.
Precedencia
La precedencia es el orden de prioridad que determina qué operadores se aplican primero cuando una expresión contiene más de una clase.
En 4 + 3 * 5, la multiplicación tiene mayor precedencia que la suma, así que el resultado es diecinueve.
Programa
Un programa es una secuencia de instrucciones que indica a una computadora qué hacer, como calcular un valor y mostrar el resultado.
Un programa breve puede calcular el costo de varios elementos y después mostrar el total con una etiqueta.

R

Reasignación
La reasignación da un valor nuevo a un nombre existente y sustituye el valor al que se accede mediante ese nombre sin actualizar otros nombres.
Después de level = 2 y luego level = 5, leer level da cinco en lugar del dos anterior.
Redondeo
El redondeo selecciona el valor más cercano con una precisión elegida; round() de Python resuelve los valores exactamente intermedios hacia el vecino par.
La llamada round(6.5) da seis, mientras que round(7.5) da ocho porque ambos vecinos seleccionados son pares.
Repetición de cadenas
La repetición de cadenas usa * con una cadena y un conteo entero para crear el número solicitado de copias unidas directamente entre sí.
La expresión "ab" * 3 produce "ababab"; no se añade ningún espacio entre las copias repetidas.
Resto
El resto es el valor de % que completa una división; con enteros y un divisor positivo, es no negativo y menor que el divisor.
Con 43 elementos en grupos de 8, 43 % 8 da 3 elementos sobrantes después de cinco grupos completos.

S

Salida
La salida es la información que muestra un programa, como un número calculado y su etiqueta, para que una persona pueda leer el resultado.
La línea Distance: 18 miles proporciona tanto un valor como la unidad necesaria para interpretarlo.
Secuencia de escape
Una secuencia de escape empieza con una barra invertida y representa un carácter, como un salto de línea o una comilla que debe permanecer dentro de una cadena.
En "Up\nDown", la secuencia de escape crea un salto de línea entre las dos palabras al mostrar la cadena.
Sentencia
Una sentencia es una instrucción del código Python, como una asignación o una llamada a print, que se ejecuta como parte de un programa.
En un archivo de programa sencillo, count = 6 asigna un valor antes de que la sentencia posterior print(count) lo use.
Separador
Un separador es el texto que print() inserta entre los argumentos mostrados, controlado por el argumento con nombre sep y que, por defecto, es un espacio.
La llamada print("A", "B", sep="-") usa un guion como separador y muestra A-B en la línea de salida.
snake_case
Snake_case es un estilo de nombres que une palabras en minúsculas con guiones bajos, lo que hace válidos y legibles los nombres de variables de varias palabras.
El nombre total_seconds sigue snake_case e identifica la unidad usada en un cálculo de tiempo.

T

Tabla de seguimiento
Una tabla de seguimiento registra el valor de cada variable después de cada sentencia y hace visibles el orden y los efectos de la ejecución para comprobarlos a mano.
Una fila nueva después de price = 10 cambia la columna del precio, mientras que un total guardado anteriormente permanece sin cambios.
Terminador de línea
Un terminador de línea es el texto que se muestra después del último argumento de una llamada a print, controlado por end y que, por defecto, es un salto de línea.
Usar end="" no deja caracteres al final, así que la siguiente llamada a print continúa en la misma línea.
Tipado dinámico
El tipado dinámico permite que un nombre se refiera a valores de distintos tipos a lo largo del tiempo, porque el tipo pertenece a cada valor y no al nombre.
Python permite entry = 3 seguido de entry = "three", aunque mantener un significado coherente resulta más claro.
Tipo
Un tipo identifica qué clase de valor tiene Python y ayuda a determinar qué operaciones puede realizar con ese valor.
El tipo de "25" es str, así que sumar otra cadena une texto en lugar de sumar cantidades numéricas.
Traza de la excepción
Una traza de excepción es un informe de error que muestra dónde falló la ejecución, seguido del tipo de excepción y un mensaje que describe el fallo.
Lee primero la última línea del error y después revisa el código y la ubicación indicados justo encima.
Truncamiento
El truncamiento elimina la parte fraccionaria de un número hacia cero, como hace int() con un número de coma flotante, sin redondear al entero más cercano.
Convertir -9.8 con int() da -9, mientras que redondear el mismo valor negativo hacia abajo daría -10.
type()
La función type() indica el tipo de su argumento, lo que te permite consultar un valor almacenado o el resultado de una expresión.
Mostrar type("12") revela una cadena aunque los caracteres mostrados parezcan un número.
TypeError
TypeError es una excepción que se lanza cuando una operación o llamada recibe un tipo incompatible, como al unir una cadena con un entero.
La expresión "Count: " + 7 falla porque la concatenación requiere texto a ambos lados de +.

V

Valor
Un valor es un dato con el que trabaja Python, como un número, un texto o un resultado booleano, y todo valor tiene un tipo.
Los valores 25 y "25" parecen similares al mostrarse, pero admiten operaciones distintas en un programa.
Valor límite
Un valor límite es una entrada situada en un punto donde un resultado cambia de forma, o cerca de él, que sirve para comprobar un programa frente al comportamiento esperado.
Para repartir segundos en minutos, probar 59, 60 y 61 comprueba el límite del primer minuto completo.
ValueError
ValueError es una excepción que se lanza cuando una operación recibe un valor de un tipo aceptado cuyo contenido no se puede usar como se solicita.
La cadena "ten" es texto, pero int("ten") falla porque ese texto no representa un entero.
Variable
Una variable es un nombre que hace referencia a un valor almacenado y permite que un programa use o sustituya ese valor en sentencias posteriores.
Después de length = 6, la expresión length * 2 lee el valor actual mediante el nombre length.
Variable temporal
Una variable temporal contiene un valor que se necesita durante una secuencia breve de pasos, como conservar un valor original mientras se intercambian otros dos.
En un intercambio secuencial, temp = left conserva el valor anterior de left antes de sobrescribir left.

Sobre esta unidad

Por StudeliInformar de un error

Crea tus propios Materiales de Estudio

Convierte tus notas, diapositivas y documentos en Guías de Estudio, Preguntas de Práctica, Flashcards y 6 herramientas más.

Comenzar