El texto es una cadena
Una cadena (str) es texto. Escríbela entre comillas simples o dobles: significan lo mismo, así que elige un estilo y mantenlo. Una barra invertida inicia una secuencia de escape, como \n para un salto de línea. len() cuenta los caracteres. Las cadenas son inmutables: nunca se cambia una en su sitio, se construye una nueva.
symbol = "AAPL"
note = 'bid and ask'
print(symbol, len(symbol)) # AAPL 4
print(note) # bid and askIndexación y segmentación
Cada carácter tiene una posición, contando desde 0. text[0] es el primer carácter y text[-1] el último. Un segmento text[start:stop] toma los caracteres desde start hasta stop, sin incluirlo. Deja un lado vacío para llegar hasta ese extremo.
# Indexing starts at 0; a slice stops before its end index
ticker = "AAPL.US"
print(ticker[0], ticker[-1]) # A S
print(ticker[:4], ticker[5:]) # AAPL USMétodos para limpiar y dividir texto
Los métodos son funciones asociadas a un valor y se llaman con un punto. Devuelven una cadena nueva y dejan intacta la original. strip() quita los espacios y saltos de línea alrededor del texto, upper() y lower() cambian las mayúsculas, replace(old, new) sustituye texto y split(",") corta una línea en cada coma y devuelve una lista de trozos. Los flujos de datos están llenos de líneas así.
# Clean up a raw line from a data feed
raw = " aapl,184.25,200 \n"
parts = raw.strip().split(",")
print(parts) # ['aapl', '184.25', '200']
print(parts[0].upper()) # AAPL
print(float(parts[1])) # 184.25# join is the opposite of split; in tests for a piece of text
print("-".join(["AAPL", "MSFT"])) # AAPL-MSFT
print("AAPL" in "AAPL,MSFT") # TrueLas f-strings insertan valores en el texto
Pon una f antes de la comilla de apertura y escribe cualquier expresión entre { y }: Python la evalúa e inserta el resultado como texto. Esto sustituye pegar trozos con + y convertir los números a mano. Cualquier expresión válida funciona dentro de las llaves, incluso una operación.
# f-strings put values straight into text
symbol, bid, ask = "AAPL", 184.25, 184.5
print(f"{symbol} {bid} x {ask}") # AAPL 184.25 x 184.5
print(f"{symbol} spread {ask - bid}") # AAPL spread 0.25Especificaciones de formato
Tras los dos puntos dentro de las llaves, una especificación de formato controla el aspecto del valor. .2f muestra dos decimales, , añade separadores de miles, + muestra siempre el signo, >8 alinea a la derecha en un ancho de 8 y .1% muestra una fracción como porcentaje. Se combinan: +,.2f es un importe con signo, separadores y dos decimales.
# After the colon, a format spec controls the look
price, pnl, quantity = 184.5, 1234.5, 200
print(f"{price:.2f}") # 184.50
print(f"{pnl:+,.2f}") # +1,234.50
print(f"{quantity:>8d}|") # " 200|"
print(f"{0.0123:.1%}") # 1.2%A continuación: booleanos y comparaciones, los valores True y False con los que se construye cada decisión de una regla de trading.
Lab: qué se califica
- Escribir una cotización como texto con
quote_line25 pts - Mostrar la ganancia o pérdida con signo usando
signed_pnl25 pts - Limpiar un símbolo bursátil con
normalize_symbol25 pts - Leer una línea de ejecución de un feed con
parse_fill25 pts