Chapitre 1

Chapitre 1

1.1 Contexte

1.
b. Chaque image de l'animation représente un type différent de programme informatique.
2.
a. Ce type d'analyse nécessite des connaissances de base en programmation.
3.
c. Comme les applications mobiles, les enceintes Wi-Fi exécutent de petits programmes qui se connectent à des serveurs.
4.
b. Ce manuel suppose que les lecteurs maîtrisent les bases de l'algèbre, sans aborder de notions trop complexes.
5.
c. La syntaxe de Python est plus concise que celle de Java.
6.
a. Python n'exige pas de point-virgule à la fin de chaque ligne. Les accolades ne sont pas non plus nécessaires.

1.2 Entrée/sortie

1.
c. Le programme hello world ne comporte qu'une seule ligne de code.
2.
c. L'option end="" supprime le caractère de saut de ligne après hello, ce qui affiche Hello world! sur la même ligne.
3.
c. Le caractère d'espacement par défaut qui sépare plusieurs éléments a été remplacé par le tiret.
4.
c. L'entrée utilisateur est stockée en mémoire et peut être référencée à l'aide de today_is.
5.
b. La fonction print() affiche "You entered:" suivi d'une espace, puis de la donnée entrée, Sophia, qui est référencée par le nom de la variable.
6.
a. L'entrée est stockée exactement comme l'utilisateur la saisit. Par conséquent, la valeur récupérée est affichée exactement telle que saisie par l'utilisateur.

1.3 Variables

1.
c. Cela produirait la chaîne de caractères de sortie, "The city where you live is Chicago" .
2.
b. Ces deux lignes de code produiraient la chaîne de caractères de sortie, "Total = 6" .
3.
c. Le caractère unique = est l'opérateur d'affectation.
4.
a. Une instruction d'affectation comporte le nom de la variable à gauche et la valeur à droite de l'instruction d'affectation.
5.
a. median est un nom descriptif pour une variable qui stocke une valeur median.
6.
b. Un nom de variable peut contenir un chiffre, mais ne peut pas commencer par un chiffre.
7.
c. Ce nom indique clairement que la valeur stockée est un code postal.
8.
a. La notation snake case sépare chaque mot par un tiret bas (underscore) et n'utilise que des lettres minuscules.

1.4 Notions de base sur les chaînes de caractères

1.
c. Une chaîne délimitée par des guillemets doubles correspondants est une chaîne valide. Notez que '7 days' est également une chaîne de caractères.
2.
c. La chaîne [email protected] est encadrée par des guillemets doubles correspondants et est affectée à la variable email. Une chaîne peut contenir des caractères tels que « @ » ou « . » en plus des lettres et des chiffres.
3.
c. La chaîne comporte des guillemets doubles correspondants. Puisqu'une apostrophe (guillemet simple) fait partie de cette chaîne, des guillemets doubles doivent être utilisés.
4.
c. Notez que les guillemets simples encadrants (') ne font pas partie de la chaîne, contrairement aux guillemets doubles (").
5.
c. La fonction len() renvoie le nombre de caractères de la chaîne. Il y a 6 caractères dans "Hi Ali" , qui sont « H », « i », « », « A », « l » et « i ».
6.
b. La longueur d'une chaîne vide est égale à 0.
7.
b. La valeur de la variable number_of_digits est 2 , et à ce titre, la sortie est "Number 12 has 2 digits." .
8.
c. Le 1 et le 0 sont entourés de guillemets, ce qui indique des chaînes valides, et le + ne l'est pas, indiquant une opération de concaténation. Ainsi, la chaîne "10" est produite. Notez que l'opérateur de concaténation n'inclut aucun caractère de séparation par défaut tel que l'espace.
9.
c. "A" et "wake" sont des chaînes valides, et le + n'est pas entouré de guillemets, ce qui indique une opération de concaténation. La chaîne "Awake" est donc produite. Notez que l'opérateur de concaténation n'inclut aucun caractère de séparation par défaut tel que l'espace.
10.
c. Notez que les espaces doivent être explicitement inclus lors de l'utilisation de l'opérateur de concaténation.
11.
c. La concaténation des deux chaînes est affectée à la variable holiday. Notez que "one-sided" affecterait la même chaîne à holiday.

1.5 Notions de base sur les nombres

1.
c. x = 1 est un entier, et lors de l'affichage du type d'une variable entière, la sortie est <class 'int'>.
2.
b. y = 2.0 est un nombre à virgule flottante.
3.
a. Toute valeur définie entre guillemets est une chaîne de caractères, quel que soit son contenu.
4.
c. La ligne 2 du code s'évalue comme suit : c = x - z = 7 - 2 = 5. La ligne 3 incrémente la variable c de 1, ce qui rend le total égal à 6.
5.
b. Le résultat de 3.5-1.5 est égal à 2.0 , qui est un nombre à virgule flottante.
6.
c. Le résultat de l'opération de division est un nombre à virgule flottante qui n'est pas arrondi vers le bas. 7/2 = 3.5.
7.
c. Le résultat de 20/2 est égal à 10.0 car l'opération de division produit un flottant.
8.
c. L'application d'un opérateur arithmétique à au moins un opérande à virgule flottante produit une valeur à virgule flottante. 2 * 1.5 = 3.0.
9.
a. 3 élevé à la puissance 2 donne 9, multiplié par 4 donne 36, plus 1 donne 37.
10.
b. Bien que l'addition ait une priorité inférieure à celle de l'exponentiation, les parenthèses forcent l'évaluation de 1 + 3 en premier.
11.
a. En Python, l'exponentiation (élévation à une puissance) a une priorité plus élevée que la négation d'une valeur. Le résultat de Python, -16, peut prêter à confusion car, en mathématiques, "-4 squared" vaut 16 .
12.
c. L'instruction utilise l'opérateur d'affectation (=), l'opérateur de négation (-) et l'opérateur d'exponentiation (**).

1.6 Messages d'erreur

1.
b. Le nom de fichier se trouve après la dernière barre oblique (/). Les autres noms, comme Desktop, font référence à des dossiers.
2.
b. La ligne 2 est mentionnée immédiatement après le nom de fichier.
3.
b. Le type d'erreur correspond toujours au premier mot de la dernière ligne du message d'erreur.
4.
a. Les trois lignes du milieu sont indentées. En Python, les lignes ne peuvent pas commencer de manière inattendue par des espaces ou des tabulations.
5.
c. Les guillemets sont manquants à la fin de l'invite de saisie.
6.
b. Le nom pour "input" est mal orthographié.

1.7 Commentaires

1.
b. Les commentaires aident à expliquer l'objectif du code afin que d'autres programmeurs comprennent son intention.
2.
a. Le caractère dièse (#) indique le début d'un commentaire.
3.
b. Mettre une espace après le # correspond à la convention standard de la communauté.
4.
c. Ce commentaire explique l'intention du code. Si le code contenait une erreur, le programmeur qui lit le commentaire pourrait la repérer plus facilement.
5.
a. Une ligne vide sépare l'entrée de la sortie.
Cela dit, insérer une ligne vide dans un programme de trois lignes est généralement superflu.
6.
c. Le symbole # permet de « commenter » la ligne sans la supprimer définitivement.
7.
a. La docstring est avant tout rédigée à l'intention des personnes qui utiliseront le programme.
8.
c. Les docstrings doivent être des chaînes valides, et non des commentaires multilignes. Les docstrings sont conservées dans la mémoire du programme, alors que les commentaires sont ignorés.
9.
b. La quantité d'informations dans cette docstring est parfaitement dosée. Dans la plupart des cas, la docstring ne devrait pas être plus longue que le code lui-même.

1.8 Pourquoi Python ?

1.
a. Le langage doit son nom aux Monty Python. Pour s'amuser, la documentation officielle fait de subtiles références aux sketches comiques des Monty Python.
2.
b. La première version de Python a été publiée en 1991, après avoir été développée à la fin des années 1980.
3.
c. Rendre Python open source dès ses débuts a permis à de nombreux programmeurs de fournir des retours.
4.
b. Pendant 20 ans, Java et C se sont disputé la première place jusqu'à ce que Python prenne la tête en 2021 !
5.
a. La courbe de Python croise celle de JavaScript au milieu de l'année 2018.
6.
b. TIOBE a commencé à suivre la popularité des langages en 2001, plusieurs années après la popularisation des moteurs de recherche web.