Texto é uma string
Uma string (str) é texto. Escreva-a entre aspas simples ou duplas: as duas significam o mesmo, então escolha um estilo e mantenha-o. Uma barra invertida inicia uma sequência de escape, como \n para uma nova linha. len() conta os caracteres. Strings são imutáveis: você nunca altera uma no lugar, você cria uma nova.
symbol = "AAPL"
note = 'bid and ask'
print(symbol, len(symbol)) # AAPL 4
print(note) # bid and askIndexação e fatiamento
Cada caractere tem uma posição, contada a partir de 0. text[0] é o primeiro caractere e text[-1] o último. Uma fatia text[start:stop] pega os caracteres de start até stop, sem incluí-lo. Deixe um lado vazio para ir até aquela ponta.
# 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 limpar e dividir texto
Métodos são funções ligadas a um valor e chamadas com um ponto. Eles devolvem uma string nova e deixam a original intacta. strip() remove espaços e quebras de linha ao redor do texto, upper() e lower() mudam a caixa, replace(old, new) troca texto, e split(",") corta uma linha em cada vírgula numa lista de pedaços. Feeds de dados estão cheios de linhas assim.
# 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") # Truef-strings colocam valores no texto
Coloque um f antes das aspas de abertura e escreva qualquer expressão entre { e }: o Python a avalia e insere o resultado como texto. Isso substitui colar pedaços com + e converter números à mão. Qualquer expressão válida funciona dentro das chaves, até uma conta.
# 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.25Especificações de formato
Depois dos dois-pontos dentro das chaves, uma especificação de formato controla a aparência do valor. .2f mostra duas casas decimais, , adiciona separadores de milhares, + mostra sempre o sinal, >8 alinha à direita numa largura de 8 e .1% mostra uma fração como porcentagem. Elas se combinam: +,.2f é um valor com sinal, separadores e duas casas decimais.
# 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 seguir: booleanos e comparações, os valores True e False com os quais toda decisão de uma regra de trading é construída.
Lab: o que é avaliado
- Escrever uma cotação como texto com
quote_line25 pts - Mostrar lucro e prejuízo com sinal usando
signed_pnl25 pts - Limpar um código de ativo com
normalize_symbol25 pts - Ler uma linha de execução de um feed com
parse_fill25 pts