-
-
Save PatWg/0ad9b01966643dedc9227dbde5fe1a81 to your computer and use it in GitHub Desktop.
Correction Série 1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'''Exercice 1 | |
L'idée de cet exercice est de pouvoir retravailler les types de variables ainsi | |
que les opérations qui peuvent être effectuées en fonction de ces types. En | |
particulier, il s'agit de mettre en évidence le fait que les "annotations de | |
type" ne sont ajoutées qu'à titre indicatif. Cela n'influence en aucun cas le | |
type de la variable annotée. Le seul élément déterminant dans la définition du | |
type d'une variable est la valeur qui lui est assignée, c'est-à-dire la valeur | |
qui se trouve à droite du symbole d'affectation. | |
Bien que ces annotations soient optionnelles, il est utile de se poser | |
régulièrement la question du type de variables manipulées. | |
''' | |
'''Exercice 2 ''' | |
my_name: str = "Patrick" | |
# On utilise la fonction len() pour déterminer la longueur d'une chaîne de caractères. | |
length: int = len(my_name) | |
print(my_name) | |
print("Nombre de lettres dans le prénom:", length) | |
'''Exercice 3''' | |
# a) Tout en majuscule | |
print(my_name.upper()) | |
# b) Uniquement première lettre en majuscule | |
print(my_name.capitalize()) | |
# ou | |
print(my_name[0].upper() + my_name[1:].lower()) | |
# c) Tiret au milieu | |
# L'exercice 1 a montré que l'opérateur de division retourne un float | |
# Pour déterminer l'indice du milieu de la chaîne de caractères, on peut | |
# utiliser l'opérateur qui calcule le quotient de la division euclidienne. | |
# Ensuite, on voit que le slicing peut être effectué sans fournir de valeurs | |
# pour la borne inférieure ou pour la borne supérieure. Cela permet de récupérer | |
# tous les éléments depuis le début jusqu'à `mid`, ou depuis `mid` jusqu'à la | |
# fin | |
mid: int = length // 2 | |
print(my_name[:mid] + '-' + my_name[mid:]) | |
'''Exercice 4''' | |
# Code initial | |
distance = 10 | |
speed = 3 | |
duration = distance // speed | |
print("Distance à parcourir: " + str(distance) + " km") | |
print(f"Vitesse: {speed} km/h") | |
print(f"Durée du trajet: {duration} h") | |
# a) Cette question permet de mettre en avant l'utilité des f-strings dans la | |
# construction de chaînes de caractères utilisant des valeurs contenues dans des | |
# variables. | |
# b) On note que le calcul effectué n'est pas précis du fait de l'opérateur "//" | |
# c) Il faudra montrer comment ajouter un breakpoint et comment lancer le mode | |
# debug | |
# d) Il faut ici pouvoir récupérer la partie décimale de la division, puis la | |
# convertir en minutes. | |
duration_minutes = int(((distance / speed) - duration) * 60) | |
print(f"Non... vraie durée du trajet: {duration} h {duration_minutes} min") | |
# ou: | |
# On utilise une autre fonction donnée par Python qui s'appelle divmod() et qui | |
# retourne justement la partie entière et la partie décimale de la division en | |
# un seul appel de fonction. | |
duration_hours, rest = divmod(distance, speed) | |
duration_minutes = int(rest / speed * 60) | |
print(f"Non... vraie durée du trajet: {duration_hours} h {duration_minutes} min") | |
'''Exercice 5''' | |
day: int = 22 | |
month: str = "09" | |
year: int = 2023 | |
# a) Une variable de type int ne peut pas contenir de zéro avant un chiffre. | |
# b) | |
print(f"Aujourd'hui, nous sommes le {day}.{month}.{year}") | |
# c) | |
print(f"Le prochain cours d'ICC aura lieu le {day+7}.{month}.{year}") | |
# d) On ne peut plus incrémenter "bêtement" le jour ou le mois, du fait du | |
# commencement d'un nouveau mois ou d'une nouvelle année. Il s'agit de faire | |
# ressortir l'idée qu'un programme devra réaliser des instructions différentes | |
# en fonction de conditions bien formulées. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment