Outils pour utilisateurs

Outils du site


nsi:premiere:caracteres

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
nsi:premiere:caracteres [2021/10/05 22:44] – [Le formatage] goupillwikinsi:premiere:caracteres [2023/04/09 14:34] (Version actuelle) goupillwiki
Ligne 1: Ligne 1:
 ====== Chaînes des caractères ====== ====== Chaînes des caractères ======
  
-//prérequis : [[nsi:premiere:numeration|Entiers positifs]]//+===== Le type str =====
  
-===== Encodage ===== +On crée une chaîne de caractères en utilisant ''%%"%%'' ou ''%%'%%'' indifféremment.
- +
-Les transistors, les circuits mémoires... stockent des entités binaires, des 0 et des 1. On a vu que l'on pouvait regrouper ses bits pour former des mots -- 1 octet est un mot de 8 bits. +
- +
-**Comment va-t-on stocker des caractères ?** +
- +
-==== Table ASCII ==== +
- +
-<WRAP tip>**A**merican **S**tandard **C**ode for **I**nformation **I**nterchange</WRAP> +
- +
-128 caractères, pas de caractères accentués, beaucoup de caractères de contrôle liés à la technologie de l'époque -- années 60. +
- +
-|        ^ x0    ^ x1    ^ x2    ^ x3    ^ x4    ^ x5    ^ x6    ^ x7    ^ x8    ^ x9   ^ xA    ^ xB    ^ xC   ^ xD   ^ xE   ^ xF    ^ +
-^ **0x** | //NUL// | //SOH// | //STX// | //ETX// | //EOT// | //ENQ// | //ACK// | //BEL// | //BS//  | //HT// | //LF//  | //VT//  | //FF// | //CR// | //SO// | //SI// +
-^ **1x** | //DLE// | //DC1// | //DC2// | //DC3// | //DC4// | //NAK// | //SYN// | //ETB// | //CAN// | //EM// | //SUB// | //ESC// | //FS// | //GS// | //RS// | //US// +
-^ **2x** | //SP//  | !     | "     | #     | $     | %     | &         | (     | )    | *     | +     | ,    | -    | .    | /     | +
-^ **3x** | 0     | 1     | 2     | 3     | 4     | 5     | 6     | 7     | 8     | 9    | :     | ;     | <    | =    | >    | ?     | +
-^ **4x** | @     | A     | B     | C     | D     | E     | F     | G     | H     | I    | J     | K     | L    | M    | N    | O     | +
-^ **5x** | P     | Q     | R     | S     | T     | U     | V     | W     | X     | Y    | Z     | [     | \    | ]    | %%^%%   | _     | +
-^ **6x** | %%`%%  | a     | b     | c     | d     | e     | f     | g     | h     | i    | j     | k     | l    | m    | n    | o     | +
-^ **7x** | p     | q     | r     | s     | t     | u     | v     | w     | x     | y    | z     | {     | %%|%%   | }    | ~    | //DEL// | +
- +
- +
-==== Unicode ==== +
- +
-Codage international contenant environ 140 000 caractères pour tous les alphabets. +
- +
-  * Les 128 premiers correspondent à ASCII +
-  * Les 256 premiers correspondent à ISO 8859-1 = Latin-1 -- lui-même compatible avec ASCII +
- +
-Un caractère est Unicode codé sur 4 octets. +
- +
-<WRAP tip>Le plus souvent, pour améliorer les performances, Unicode n'est pas utilisé directement. Pour les textes on utilise des adaptation, notamment **UTF-8**, permettant d'occuper moins de 4 octets par caractère. [[nsi:premiere:fichier_texte|On verra plus tard]].</WRAP> +
- +
-==== Unicode et Python ==== +
- +
-En Python, on utilise directement Unicode ce qui permet d'écrire à peu près n'importe quel caractère.+
  
 <code python> <code python>
->>> ord('c'   # renvoie le code Unicode du caractère +>>> texte = "bonjour" 
-99 +>>> autre_texte = 'au revoir
->>> ord('и'+>>> type(texte) 
-1080 +< class:str >
->>> chr(99    # opération inverse code -caractère +
-'c' +
->>> chr(1080) +
-'и'+
 </code> </code>
  
-===== Manipulations ===== +===== Itérable et indexable ======
- +
-On crée une chaîne de caractères en utilisant ''%%"%%'' ou ''%%'%%'' indifféremment. +
- +
-<code python> +
-texte "bonjour" +
-autre_texte = 'au revoir' +
-</code>+
  
 Le type d'une chaîne est ''str''. Nous avons déjà rencontré la syntaxe de la manipulation d'une chaîne, elle est identique à celle des p-uplets. Juste un exemple pour mémoire : Le type d'une chaîne est ''str''. Nous avons déjà rencontré la syntaxe de la manipulation d'une chaîne, elle est identique à celle des p-uplets. Juste un exemple pour mémoire :
Ligne 69: Ligne 22:
 >>> texte[-1] >>> texte[-1]
 'r' 'r'
 +>>> for car in texte:
 +      print(car)
 +b
 +o
 +n
 +j
 +o
 +u
 +r
 </code> </code>
  
-<WRAP important>En Python les chaînes de caractères sont **immutables**. On on essaie de modifier le contenu d'un ''str'', on aura donc une erreur :+<WRAP tip> 
 +  * Pouvoir faire ''for ... in ...'' correspond au caractère itérable d'une séquence, 
 +  * Pourvoir écrire ''texte[2]'' correspond au caractère indexable 
 +</WRAP> 
 + 
 +===== Immuable ===== 
 + 
 +<WRAP important>En Python les chaînes de caractères sont **immuables**. On on essaie de modifier le contenu d'un ''str'', on aura donc une erreur :
  
 <code python> <code python>
Ligne 82: Ligne 51:
 </WRAP> </WRAP>
  
-==== Quelques fonctions spécifiques ====+===== Quelques fonctions spécifiques =====
  
 Les fonctions pouvant être utilisées sur les chaînes de caractères sont très nombreuses et on ne va pas toutes les apprendre. Dites vous que pour toutes les manipulations ordinaires auxquelles vous pourriez penser, il existe probablement une fonction déjà faite. Les fonctions pouvant être utilisées sur les chaînes de caractères sont très nombreuses et on ne va pas toutes les apprendre. Dites vous que pour toutes les manipulations ordinaires auxquelles vous pourriez penser, il existe probablement une fonction déjà faite.
  
 <code python> <code python>
->>> texte = "  Bonjour  "+>>> texte = "  Éléphant  "
 >>> texte.upper() >>> texte.upper()
-'  BONJOUR  '+'  ÉLÉPHANT  '
 >>> texte.lower() >>> texte.lower()
-'  bonjour  ' +'  éléphant  ' 
->>> texte".lstrip() +>>> texte.lstrip() 
-'Bonjour  '+'Éléphant  '
 >>> "ananas".replace('a', 'x') >>> "ananas".replace('a', 'x')
 'xnxnxs' 'xnxnxs'
Ligne 99: Ligne 68:
 True True
 </code> </code>
-``` 
  
 <WRAP tip>Vous noterez la syntaxe particulière : on veut agir sur la chaîne ''texte'' et au lieu d'écrire quelque chose comme ''upper(texte)'', on écrit ''texte.upper()''. Ce serait trop long de l'expliquer ici. Le type ''str'' est une **classe** -- au sens donné à ce mot en programmation -- et vous l'étudierez si vous poursuivre en Terminale.</WRAP> <WRAP tip>Vous noterez la syntaxe particulière : on veut agir sur la chaîne ''texte'' et au lieu d'écrire quelque chose comme ''upper(texte)'', on écrit ''texte.upper()''. Ce serait trop long de l'expliquer ici. Le type ''str'' est une **classe** -- au sens donné à ce mot en programmation -- et vous l'étudierez si vous poursuivre en Terminale.</WRAP>
nsi/premiere/caracteres.1633466677.txt.gz · Dernière modification : de goupillwiki