Le texte est une chaîne
Une chaîne (str) est du texte. Écrivez-la entre apostrophes ou guillemets : les deux sont équivalents, choisissez un style et gardez-le. Une barre oblique inverse commence une séquence d'échappement, comme \n pour un retour à la ligne. len() compte les caractères. Les chaînes sont immuables : on ne modifie jamais une chaîne sur place, on en construit une nouvelle.
symbol = "AAPL"
note = 'bid and ask'
print(symbol, len(symbol)) # AAPL 4
print(note) # bid and askIndexation et découpage
Chaque caractère a une position, comptée à partir de 0. text[0] est le premier caractère et text[-1] le dernier. Une tranche text[start:stop] prend les caractères de start jusqu'à stop exclu. Laissez un côté vide pour aller jusqu'à cette extrémité.
# 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éthodes pour nettoyer et découper du texte
Les méthodes sont des fonctions attachées à une valeur et appelées avec un point. Elles renvoient une nouvelle chaîne et laissent l'originale intacte. strip() retire les espaces et retours à la ligne autour du texte, upper() et lower() changent la casse, replace(old, new) remplace du texte, et split(",") coupe une ligne à chaque virgule en une liste de morceaux. Les flux de données regorgent de lignes comme celle-ci.
# 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") # TrueLes f-strings insèrent des valeurs dans le texte
Placez un f avant le guillemet ouvrant et écrivez n'importe quelle expression entre { et } : Python l'évalue et insère le résultat sous forme de texte. Cela remplace le collage de morceaux avec + et la conversion manuelle des nombres. Toute expression valide fonctionne dans les accolades, même un calcul.
# 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.25Spécifications de format
Après deux-points dans les accolades, une spécification de format contrôle l'aspect de la valeur. .2f affiche deux décimales, , ajoute des séparateurs de milliers, + affiche toujours le signe, >8 aligne à droite sur une largeur de 8, et .1% affiche une fraction en pourcentage. Elles se combinent : +,.2f donne un montant signé avec séparateurs et deux décimales.
# 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%À suivre : les booléens et les comparaisons, ces valeurs True et False sur lesquelles repose chaque décision d'une règle de trading.
Lab : ce qui est noté
- Écrire une cotation sous forme de texte avec
quote_line25 pts - Afficher le résultat avec son signe grâce à
signed_pnl25 pts - Nettoyer un symbole boursier avec
normalize_symbol25 pts - Lire une ligne d'exécution d'un flux avec
parse_fill25 pts