Aller au contenu principal

Corrigé - Atelier 1 - Types

Essayez de faire l'atelier avant de consulter ce corrigé.

Numéro 1​

ExpressionValeurType / Erreur
-18.0-18.0float
123123int
-10-10int
007—SyntaxError : les zéros non significatifs sont interdits pour un entier décimal
3.0123.012float
.50.5float
0.1230.123float
22int
3.3.0float
3,442(3, 442)tuple ou erreur pour l'instant
vrai—NameError: il faut l'écrire en anglais True
TrueTruebool
true—NameError: en Python ça prend la majuscule True
FalseFalsebool
'Allo'Allostr
"'"'str
"il fait "CHAUD""—SyntaxError : les guillemets doubles imbriqués ne sont pas échappés

Section optionnelle :

ExpressionValeurType
1_048_3231048323int - le _ est un séparateur visuel, ignoré par Python
1.23E-241.23e-24float - notation scientifique
0b1015int - écrit en binaire
0x1A5421int - écrit en hexadécimal

Numéro 2​

Texte 1 :​

  • produit (str) = "café"
  • prix (float) = 3.50

Texte 2 :​

  • montant (float) = 50.0
  • pctPourboire (float) = 0.05
  • total (float) = calculé à partir des deux valeurs précédentes

Texte 3 :​

  • saveur (str) = "chocolat"
  • couleurGlacage (str) = "rose"
  • ecriture (bool) = False

ecriture pourrait aussi être un str avec la valeur vide "" ce qui permet d'avoir l'écriture à ajouter s'il y a lieu

Texte 4 :​

  • processeur (str) = "i9"
  • ramGo (int) = 16
  • stockageTo (int) = 1

ramGo et stockageTo pourraient aussi être des float si on veut permettre des valeurs comme 1.5 To. On pourrait aussi séparer la variable en deux, par exemple ram et ramUnite pour avoir ram = 16 et ramUnite = "Go". Même chose pour le stockage.

Texte 5 :​

  • nom (str) = "Philippe Girard"
  • DA (str) = "1234567"
  • programme (str) = "informatique"

Le nom pourrait être séparé en deux variables, par exemple prenom et nomFamille. Le DA peut sembler être un int, mais un DA peut commencer par un zéro ce qui n'est pas permis.

Texte 6 :​

  • distanceKm (int) = 100
  • autoMarque (str) = "Nissan"
  • autoModele (str) = "Versa"
  • coutEssence (float) = 42.32
  • panne (bool) = False

On pourrait combiner autoMarque et autoModele en une seule variable auto de type str, mais ça rendrait plus difficile l'accès à la marque ou au modèle séparément.

Texte 7 :​

  • poidsKg (float) = 2.3
  • adresse (str) = "452 rue des Érables"
  • numeroSuivi (str) = "004829"
  • endommage (bool) = True
  • dureeJours (int) = 3

On pourrait séparer l'adresse en plusieurs variables, par exemple numeroCivique, rue, ville, province, codePostal.

Numéro 3​

NomValide (Python)Valide (normes)Commentaire
2eNoteNonNoncommence par un chiffre
mon-ageNonNonle tiret est interprété comme une soustraction
forNonNonmot réservé
classeOuiOuivalide et clair, ce n'est pas un mot réservé (contrairement à class)
numéroDeCompteOuiNonl'accent est refusé selon nos conventions
mon ageNonNonl'espace sépare le nom en deux comme si on avait deux variables
nomCompletOuiOui
pOuiNonpas clair, on ne sait pas ce que la variable représente
TrueNonNonmot réservé
intOuiOuifonctionne, mais peut confondre avec le type int
_ageOuiOui
age2024OuiOui
mon.ageNonNonpoint non permis
NomDeFamilleOuiNonnotation Pascal au lieu de notation chameau
donneeOui???peut être vague selon le contexte
printOuiOuimais cache la fonction native print() (que nous n'avons pas encore vues)

Numéro 4​

  • nom: str — correct
  • 2eMembre: str — Invalide en Python : un identificateur ne peut pas commencer par un chiffre, corriger en numeroMembre
  • prixAbonnement: str — Mauvais type : 89.99$ est un prix, donc float pour pouvoir faire des calculs
  • carteVIP: str — Mauvais type : avoir une carte VIP ou non est un bool, pas str
  • Entraineur: str — Ne respecte pas les normes : l'identificateur devrait être en notation chameau, donc entraineur
  • nb_visites: int — Ne respecte pas les normes : l'identificateur devrait être en notation chameau, donc nbVisites