-
PYTHON > les variables et chaines de caracteres
- —
mathématiques et calcul
+,-,*et/, les( )peuvent être utilisées pour les regrouper.(50-5*6)/4 largeur * hauteur 900
même valeur pour plusieurs variables
x = y = z = 0
les opérateurs en présence de types d’opérandes mélangés convertissent les opérandes entiers en virgule flottante :
4 * 2.5 / 3.3 3.0303030303 7.0 / 2 3.5
convertir en virgule flottante et en entier (float(), int() et long()). Utilisez
abs(x)pour obtenir sa norme (en flottant) ou z.real pour sa partie réelle.float(a) abs(a)
En mode interactif, la dernière expression affichée est affectée à la variable
_. Quand vous voulez utiliser Python comme calculatrice, c’est plus pratique pour continuer les calculs, par exemple:tva = 17.5 / 100 prix = 3.50 prix * tva 0.6125 prix + _ 4.1125 round(_, 2) 4.11
Cette variable doit être utilisée en lecture seule par l’utilisateur. Ne lui affectez pas une valeur de façon explicite -- vous auriez alors créé une variable locale indépendante, avec le même nom, masquant la variable intégrée et son comportement magique.
Chaînes de Caractères
Les textes dans les chaînes peuvent se poursuivre sur plusieurs lignes de plusieurs façons. Les retours chariot peuvent être préfixés avec un antislash, par ex.:
salut = "Ceci est une chaîne plutot longue contenant\n\ plusieurs lignes de texte excatement comme on le ferait en C.\n\ Notez que les blancs au début de la ligne sont\ significatifs.\n" print salut Ceci est une chaîne plutot longue contenant plusieurs lignes de texte excatement comme on le ferait en C. Notez que les blancs au début de la ligne sont significatifs.
les chaînes peuvent être entourées par un triple-quotes
"""ou‘'’. Les fins de lignes n’ont pas besoin d’être préfixées lorsqu’on utilise les triple-quotes, mais elles seront incluses dans la chaîne.print """ Usage: trucmuche [OPTIONS] -h Affiche cette notice d'usage -H hôte hôte auquel il faut se connecter """ Usage: trucmuche [OPTIONS] -h Affiche cette notice d'usage -H hôte hôte auquel il faut se connecter
concaténation
concaténées (accolées) avec l’opérateur
+, et répétées avec*mot = 'Help' + 'A' 'HelpA' '<' + mot*5 + '>' '<HelpAHelpAHelpAHelpAHelpA>'
Deux chaînes de texte côte à côte sont automatiquement concaténées; la première ligne ci-dessus aurait aussi pu être écrite "mot = ‘Help'’A'"; ceci fonctionne seulement avec deux chaînes de texte litérales, pas avec des expressions quelconques de type chaîne:
'cha' 'ine' # <- C'est bon 'chaine' string.strip('cha') + 'ine' # <- C'est bon 'chaine' string.strip('cha') 'ine' # <- C'est faux File "<stdin>", line 1 string.strip('cha') 'ine' ^ SyntaxError: invalid syntax
couper une chaîne
le premier caractère est à l’index 0. les sous-chaînes peuvent être spécifiées avec la notation de découpage (slice): deux indices séparés par deux-points.
mot[4] 'A' mot[0:2] 'He' mot[2:4] 'lp'
Les indices par défaut ; un premier index non-défini prend pour valeur par défaut zéro, un second index omis prend pour valeur par défaut la taille de la chaîne qu’on est en train de découper.
mot[:2] # Les deux premiers caractères 'He' mot[2:] # Tout sauf les deux premiers caractères 'lpA'
Les indices peuvent être des nombres négatifs, pour compter à partir de la droite:
mot[-1] # Le dernier caractère 'A' mot[-2] # L'avant dernier caractère 'p' mot[-2:] # Les deux derniers caractères 'pA' mot[:-2] # Tout sauf les deux derniers caractères 'Hel'
Les indices de découpage négatifs hors limites sont tronqués, mais n’essayez pas ceci avec des indices d’accès à des éléments uniques (sans découpage) :
mot[-100:] 'HelpA' mot[-10] # erreur Traceback (innermost last): File "<stdin>", line 1 IndexError: string index out of range
longueur d’une chaine
len('foobar') 6
CHERCHER DANS UNE CHAÎNE
str.find(str, beg=0, end=len(string))
str − This specifies the string to be searched.
beg − This is the starting index, by default its 0.
end − This is the ending index, by default its equal to the length of the string.
Return Value Index if found and -1 otherwise.
Example
str1 = "this is string example....wow!!!"; str2 = "exam"; print str1.find(str2) print str1.find(str2, 10) print str1.find(str2, 40) 15 15 -1
REMPLACER DANS UNE CHAÎNE
str.replace(old, new [, count])
count(optionnel) : nombre de fois que l’on doit remplacer old par new. (par défaut, remplace toutes les occurrences)remplacer les caractères exotiques (non ASCII) d’une chaine :
re.sub(r'[^\x00-\x7F]+',' ', text)