DMarlon Studio

Lección 4 · 4 de 20

Cadenas y f-strings · Python

Trabaje con texto en Python: unir y repetir cadenas, contar letras con len(), leer posiciones y dar formato con f-strings.

Python · Cadenas y f-strings en DMarlon Studio: el código del ejemplo y su salida en la terminal

Una cadena (str) es texto entre comillas, simples o dobles: "Ada" y 'Lovelace' valen lo mismo. Con + se unen (first + " " + last da Ada Lovelace) y con * se repiten: "=" * 20 dibuja una raya de veinte signos.

len() cuenta los caracteres, espacios incluidos: Ada Lovelace tiene 12. Cada carácter tiene una posición que empieza en 0: first[0] es A, y las posiciones negativas cuentan desde el final, así que last[-1] es la última letra, e.

Un número no se puede unir a un texto con +: Python daría un error. Hay que convertirlo antes con str(score), como en la primera frase de la nota.

Es más cómodo usar una f-string: una cadena con f delante en la que los valores van entre llaves, f"{first} scored {score} points.". Dentro de las llaves cabe cualquier cálculo, como {score + 5}.

Tras dos puntos se indica el formato: {average:.2f} deja dos decimales (87.46); {first:>8} ocupa 8 huecos alineado a la derecha y {last:<10}, 10 huecos a la izquierda. Los corchetes de la salida dejan ver esos espacios.

Código · main.py

# Strings are text between quotes, single or double.first = "Ada"last = 'Lovelace'# + joins strings and * repeats them.full = first + " " + lastprint(full)print("=" * 20)# len() counts the characters.print("Characters in the name:", len(full))# Each character has a position, starting at 0.print("Initials:", first[0] + last[0])print("Last letter:", last[-1])# str() turns a number into text so it can be joined.score = 92print(first + " scored " + str(score) + " points.")# An f-string puts values straight into the text with { }.print(f"{first} scored {score} points.")print(f"Next year she wants {score + 5}.")# After a colon you can format: decimals, width, alignment.average = 87.456print(f"Class average: {average:.2f}")print(f"[{first:>8}] [{last:<10}]")

Salida · python3 main.py

Ada Lovelace
====================
Characters in the name: 12
Initials: AL
Last letter: e
Ada scored 92 points.
Ada scored 92 points.
Next year she wants 97.
Class average: 87.46
[     Ada] [Lovelace  ]

Para recordar

  • + une cadenas y * las repite.
  • len() cuenta caracteres; texto[0] es el primero y texto[-1], el último.
  • str() convierte un número en texto.
  • En una f-string los valores van entre { }.
  • :.2f da dos decimales; :>8 y :<8 alinean en 8 huecos.

Ejercicio

Escriba su nombre y apellido en las variables, y muestre una línea con sus iniciales y otra con la longitud del nombre completo, centrada en 30 huecos con :^30.