TEST TP N°1¶
Exercice 1¶
Ecrire un code python natif (sans importer de module) qui permet de calculer la somme des 2 premiers termes $(s_{12} = u_1 + u_2)$ de la suite suivante : $$ u_k = \dfrac{39^{2k+1}}{136^{2k} + 2559^{k}} $$ Le résultat doit être affiché au format flottant avec 5 chiffres significatifs en utilisant trois commandes différentes qui donneront le même affichage.
k = 1
sk = (39**(2*k+1)) / (136**(2*k) + 2259**(k))
k = 2
sk += (39**(2*k+1)) / (136**(2*k) + 2259**(k))
#k = 3
#sk += (39**(2*k+1)) / (136**(2*k) + 2259**(k))
print('sk = {:.5f}'.format(sk) )
print(f'{sk = :.5f}')
print('sk = %.5f' %(sk))
sk = 3.11792 sk = 3.11792 sk = 3.11792
Exercice 2¶
text = """Ne suis pas ce dont tu n'as connaissance ;
l'ouïe, la vue et la conscience, tout cela ;
certes, relève de la responsabilité."""
2.a :¶
Relever au moins deux commentaires concernant l'écriture de la commande suivante de création d'une chaîne de caractères (\texttt{str}).
Réponse:
- utilisation des triples guillemets (""")
- présence des apostrophes (') qui ne posent pas de pb avec les """
2.b¶
Relever et commenter la différence entre les deux affichages ci-dessous. Utiliser le spécificateur de format adéquat pour obtenir un même affichage avec les deux commandes.
print(f'{text = }')
# produit un affichage non formaté en valeur :
# avec les guillemets et le caractère d'échappement associé au retour
# à la ligne (\n)
text = "Ne suis pas ce dont tu n'as connaissance ;\nl'ouïe, la vue et la conscience, tout cela ;\ncertes, relève de la responsabilité."
print('text =', text)
# produit un affichage formaté en contenu :
# les guillemets ne sont pas affichés
# et les \n sont interprétés en sauts de ligne
text = Ne suis pas ce dont tu n'as connaissance ; l'ouïe, la vue et la conscience, tout cela ; certes, relève de la responsabilité.
# avec un spécificateur de format pour obtenir le même affichage
print(f'{text = :s}')
# sont acceptés les deux commandes :
print('txt = {:s}' .format(text))
print('txt = %s' %(text))
text = Ne suis pas ce dont tu n'as connaissance ; l'ouïe, la vue et la conscience, tout cela ; certes, relève de la responsabilité. txt = Ne suis pas ce dont tu n'as connaissance ; l'ouïe, la vue et la conscience, tout cela ; certes, relève de la responsabilité. txt = Ne suis pas ce dont tu n'as connaissance ; l'ouïe, la vue et la conscience, tout cela ; certes, relève de la responsabilité.
2.c¶
Proposer une autre écriture de la chaîne avec double guillemets ("...") en utilisant
une concaténation de lignes et de sauts de lignes.
Le code doit ressembler à ce-ci :
text = " . . . . . . . . . . . . " # ligne 1
text += " . . . " # saut de ligne
text += " . . . . . . . . . . . . " # ligne 2
text += " . . . " # saut de ligne
text += " . . . . . . . . . . . . " # ligne 3
text = "Ne suis pas ce dont tu n'as connaissance ;" # ligne 1
text += "\n" # saut de ligne
text += "l'ouïe, la vue et la conscience," # ligne 2
text += "\n" # saut de ligne
text += "certes, tout cela, relève de la responsabilité" # ligne 3
print(text)
Ne suis pas ce dont tu n'as connaissance ; l'ouïe, la vue et la conscience, certes, tout cela, relève de la responsabilité
2.d¶
Séparer le texte text en 3 lignes avec une seule commande, puis vérifier leurs contenus et leurs longueurs avec les 3 commandes print fournies.
l1, l2, l3 = . . . . . . . . . . . . . . . . . . . . .
print(f'{l1 = :s} : {len(l1)}')
print(f'{l2 = :s} : {len(l2)}')
print(f'{l3 = :s} : {len(l3)}')
# Séparation de text en 3 lignes
l1, l2, l3 = text.splitlines() # est la commande la plus naturelle
# autre façon (question bonus):
l1, sep, l2 = text.partition('\n') # une 1ere
l2, sep, l3 = l2.partition('\n') # une 3ème
print(f'{l1 = :s} : {len(l1)}')
print(f'{l2 = :s} : {len(l2)}')
print(f'{l3 = :s} : {len(l3)}')
l1 = Ne suis pas ce dont tu n'as connaissance ; : 42 l2 = l'ouïe, la vue et la conscience, : 32 l3 = certes, tout cela, relève de la responsabilité : 46
2.e¶
Commenter et expliquer le résultat de cette commande print
print(len(l1) + len(l2) + len(l3), len(text))
120 122
Commentaire : len(text) donne deux caractères en plus, il compte les deux \n
2.f¶
Ecire une commande (une seule) qui permet de remplacer dans la chaîne text :
connaissance par science et la conscience par le coeur.
text2 = text.replace('connaissance' ,'science').replace('la conscience','le coeur')
print(text2)
Ne suis pas ce dont tu n'as science ; l'ouïe, la vue et le coeur, certes, tout cela, relève de la responsabilité
Questions supplémentaires¶
# QS : On s'intéresse maintenant aux deux mots
c1 = 'connaissance'
c2 = 'conscience'
# QS-1 : Trouver leurs positions dans les lignes l1 et l2
p1 = l1.index(c1)
p2 = l2.index(c2)
print(f'{p1 = } , {p2 = }')
p1 = 28 , p2 = 21
#QS-2 Afficher ces deux mots en toutes lettres majuscules
print('c1 en majuscules :', c1.upper())
print('c2 en majuscules :', c2.upper())
c1 en majuscules : CONNAISSANCE c2 en majuscules : CONSCIENCE
# QS-3 remplacer ces deux mots en majuscule dans les lignes l1 et l2
print(l1.replace(c1,c1.upper()))
print(l2.replace(c2,c2.upper()))
Ne suis pas ce dont tu n'as CONNAISSANCE ; l'ouïe, la vue et la CONSCIENCE,
# QS-4 : Recomposer le text avec les lignes l1, l2 et l3
text3 = l1 + '\n' + l2 + '\n' + l3
print(text3)
Ne suis pas ce dont tu n'as connaissance ; l'ouïe, la vue et la conscience, certes, tout cela, relève de la responsabilité
Aucun commentaire:
Enregistrer un commentaire