Python, les bases
Expressions arithmétiques⚓︎
Taper dans le terminal 6*7 puis la touche Enter pour voir apparaître la réponse à la grande question sur la vie, l'Univers et le reste. En mode console Python évalue donc les expressions arithmétiques entrées au clavier et affiche leur valeur dans la console. Les opérateurs utilisés dans ces expressions sont rappelés ci-dessous
A retenir !
En Python, les expressions arithmétiques utilisent les opérateurs suivants :
+: addition-: soustraction*: multiplication**: puissance, exposant/: division décimale//: quotient dans la division euclidienne%: reste dans la division euclidienne (particulièrement utile pour les tests de divisibilité)
Calculer les expressions suivantes (vous pouvez vérifier vos résultats en les entrant dans le formulaire idoine)
- Calculer \((547 \times 915) + (1789 \times 1815)\)
- Calculer \(212^{7} - 313^{3}\)
- Déterminer le reste dans la division euclidienne de 123456789 par 2024
- Donner les 5 derniers chiffres de \(2024^{30}\)
Entiers et flottants⚓︎
Le dernier exemple de l'exercice précédent semble montrer qu'il n'y a pas de limitations au nombre de chiffres des entiers en Python. En tapant 2024.0**30 dans la console, on obtient un résultat bien différent. En effet, 2024 est un entier de Python, il est du type int alors que 2024.0 est un nombre à virgule flottante de Python, il est du type float. Les représentations internes et les algorithmes de calculs utilisés sur ces deux types de nombres sont différents (ces points seront abordés dans le courant de l'année). En tapant 2024.0**100, on peut aussi constater que les nombres trop grands ne semblent pas avoir de représentation flottante (on parle de dépassement de capacité ou overflow en anglais), alors que 2024**100 ne posera aucun problème à Python.
A retenir
Python utilise deux types de nombres :
- les entiers (type
int) dont la taille n'est pas limitée. - les flottants (type
float) qui s'écrivent toujours avec le séparateur décimal.et sur lesquels des dépassements de capacité sont possibles. - ces deux types numériques partagent les mêmes opérateurs
+,-,*,/,** - On utilisera la division euclidienne (
//pour le quotient, et%pour le reste) uniquement sur les entiers positifs.
Comparaisons⚓︎
En tapant 20 > 7 dans une console Python, on obtient True, 8 < 1 donne False. Ces deux expressions sont dites booléennes, elles ne peuvent prendre que deux valeurs qui en Python sont donc True ou False. Les autres opérateurs de comparaisons sont donnés ci-dessous, on prendra bien garde au fait que le test d'égalité est == (et pas =).
Les opérateurs not (unaires), or et and (binaires) sont définies sur les expressions booléennes, tester par exemple (en essayant de prévoir le résultat en amont):
not 6!=76<5 or 12>1011!=7 and 6!=7
A retenir
Les opérateurs de comparaison sont :
<ou>: strictement inférieur et strictement supérieur<=ou>=: inférieur ou égal et supérieur ou égal==ou!=: égal et différent- L'opérateur unaire
notrenvoie la négation d'un expression booléenne (not avautTruessiavautFalse) - L'opérateur binaire
andrenvoie la conjonction de deux expression booléenne (a and bvaut True ssiaetbvalentTrue) - L'opérateur binaire
orrenvoie la disjonction de deux expression booléenne (a or bvaut True ssiaoubvalentTrue)
Ecrire une expression booléenne qui correspond au ou exclusif, entre deux valeurs booléennes a et b, c'est-à-dire qui vaut vraie si a ou b est vraie mais pas les deux à la fois.
Variables⚓︎
En tapant annee = 2024 dans la console, on crée une variable de nom (ou d'identifiant) annee et de valeur 2024. Pour attribuer cette valeur, on a utilisé le symbole =, on dit que c'est le symbole d'affectation.
Note
- Le caractère espace
n'est pas autorisé dans un nom de variable, l'usage est de le remplacer par l'underscore_. A l'exception de ce dernier, il est recommandé de ne pas utiliser de caractères spéciaux dans les noms de variables. - Les chiffres sont autorisés mais un nom de variable ne peut pas commencer par un chiffre
- Python distingue les majuscules et les minuscules dans les noms de variables, donc
testetTestsont deux noms de variables différents
Cette variable peut être utilisé dans d'autre calculs, par exemple age = annee - 2006 calculera l'age d'une personne née en 2006. Et l'année prochaine est évidemment donnée par annee_prochaine = annee + 1, on peut se passer de annee_prochaine pour écrire annee = annee + 1, cette dernière expression devant être comprise comme remplacer la valeur de annee par sa valeur plus un.
-
Créer une variable
pide valeur3.14, calculer l'aire d'un disque de rayon \(7,5\) en utilisant cette valeur depi. -
On considère le programme de calcul suivant :
- choisir un nombre entier positif
- ajouter 3 à ce nombre
- multiplier par le nombre choisi au départ
- soustraire 9
On note
ale nombre de départ, etb,cetdles nombres obtenus aux étapes suivantes, écrire les affectations permettant de calculerb,cetd.Ecrire une unique instruction d'affectation permettant de remplacer le nombre
achoisi au départ par le résultat du programme de calcul en utilisant uniquementacomme variable. -
On suppose déjà crées deux variables
xety, écrire une suite d'affectations permettant d'échanger les valeurs de ces deux variables.
Chaines de caractères⚓︎
Python manipule aussi des variables non numériques : les chaines de caractères (type str) toujours données entre guillemets simple (') ou double ("). Par exemple, mot = "Hello", ou phrase = "L'informatique, c'est fantastique". Attention, remplacer les guillemets double ", par des simples dans l'instruction précédente, serait problématique ... voyez-vous pourquoi ?
Les opérateurs suivants sont définis sur les chaines de caractères :
+qui ajoute bout à bout deux chaines de caractères, on parle d'opérateur de concaténation. Par exemple"Hello"+"world"donneHelloworld.*dont le second opérande est un entiernet qui concatènenfois la chaine donnée en argument avec elle même. Par exemple"bla"*3done"blablabla".- Les crochets
[]permettent d'accéder aux caractères d'une chaine en donnant leur position numérotée à partir de 0, par exemple, silangage = "Python", alorslangage[0]donneP. - La fonction
lenrenvoie la longueur d'une chaine de caractères, par exemplelen("Python")donne 6.
Premiers programmes⚓︎
Vous pouvez tester les programmes ci-dessous en les recopiant dans la partie supérieure du mini IDE :
Instruction print⚓︎
Le mode programme consiste à écrire une séquence d'instructions puis à la faire executer par Python. Dans ce mode, les valeurs calculées ne sont pas affichées directement, une instruction spécifique permet de demander un affichage, c'est l'instruction print. Par exemple, dans le programme suivant, seule la valeur de d sera affichée (grâce à l'instruction print de la ligne 5.)
A retenir
- En mode programme, Python exécute une séquence d'instructions
- Seuls les affichages explicitement demandés à l'aide d'instructions
printsont réalisés - Un même instruction
printpeut produire plusieurs affichages, on sépare alors les éléments à afficher par des virgules. Par exemple siavaut 10,print("La variable a vaut ",a)afficheraLa variable a vaut 10.
Instructions conditionnelles⚓︎
En Python, on peut écrire :
où<condition> est une expression booléenne de façon à exécuter le bloc <instruction> seulement lorsque <condition> s'évalue à True. On fera bien attention à la syntaxe notamment au caractère : qui suit la condition et à l'indentation (décalage vers la droite) du bloc d'instructions.
Dans l'exemple ci-dessous, si la variable x est différente de zéro, alors on définit une variable y valant 1/x.
Une instruction conditionnelle peut comporter une clause else qui indique les instructions à effectuer lorsque la condition n'est pas vérifiée :
c'est-à-dire que si <condition> s'évalue à True alors c'est <instructions1> qui est exécuté sinon c'est <instructions2>.
Par exemple :
| Python | |
|---|---|
Bon week-end ! si la variable jour vaut "Samedi" ou "Dimanche" et "Au boulot !" sinon.
Danger
La condition de la ligne 1 ci-dessous, pourrait s'écrire en français, "Si le jour est samedi ou dimanche". Ce qu'on pourrait vouloir traduire en Python par if jour=="Samedi" or "Dimanche". Cette construction bien qu'acceptée par Python n'est PAS le test désiré (et s'évalue en fait toujours à True). On fera donc attention à toujours avoir une comparaison dans les deux opérandes d'un and (ou d'un or).
- On suppose déjà définie une variable
reponseet une variablepoints, écrire une instruction conditionnelle qui afficheBonne réponselorsquereponsevaut 2 et incrémente la variablepoints. Dans le cas contrairepointsest décrémenté et on afficheErreur - On suppose déjà définies deux variables
aetb, écrire une instruction conditionnelle qui permet de définir la variablecégale au maximum entreaetb
Boucles⚓︎
Pour afficher un carré de 5 sur 5 constitué de caractères #, on pourrait écrire :
A retenir
- L'instruction
for <variable> in range(<entier>)permet de créer une variable parcourant les entiers de 0 (inclus) à<entier>(exclu) - Les instructions indentées suivantes seront exécutées pour chaque valeur prise par la variable
- La boucle
forpermet donc notamment de répéter un nombre prédéfini de fois des instructions, on dit que c'est une boucle bornée. - L'instruction
range, peut être utilisée :- avec un seul paramètre
n, la variable prend alors les valeurs entières de l'intervalle \([0;n-1]\) - avec deux paramètres
metn, la variable prend alors les valeurs entières de l'intervalle \([m;n-1]\) - avec trois paramètres
m,netsla variable prend alors les valeurs de \([m;n-1] \cap \{ m + ks; k \in \mathbb{N}\}\).
- avec un seul paramètre
Lorsqu'il n'est pas possible de connaître à l'avance le nombre de répétitions nécessaires, on utilise une boucle while qui s'exécute tant qu'une condition est vraie. Par exemple, si on suppose qu'on a placé un capital à un taux d'intérêt \(t=3 \%\), et qu'on veut savoir au bout de combien d'années ce capital aura doublé, on peut utiliser le programme suivant :
Dessiner un rectangle⚓︎
- Ecrire un programme utilisant une boucle et affichant :
- Ecrire un programme utilisant une boucle et qui affiche les 10 premiers multiples de 42.
Solution
version 1
version 2
- Ecrire un programme utilisant une boucle et qui affiche un compte à rebours de 10 à 1.
Solution
version 1
version 2
version 3 : boucle while
- La coupe du monde de football se déroule tout les quatre ans et sa première édition date de 1930. D'autre part, à cause de la seconde guerre mondiale, la compétition n'a pas eu lieu en 1942 et en 1946. Ecrire un programme Python qui liste toutes les années où la coupe du monde s'est déroulée de 1930 à nos jours. Compléter ce programme de façon à afficher le numéro de l'édition pour chaque année.
print avec plusieurs arguments
La fonction print peut prendre plusieurs arguments séparés par des virgules ,.
Dans ce cas print(chaine1, chaine 2, entier1) affichera la concaténation avec des espces entres les arguments 'chaine1' + ' ' + 'chaine2' + ' ' + str(entier1)
Solution
- Ecrire un programme Python qui utilise une boucle et qui calcule la somme des entiers impairs entre 1 et 999 (compris).
Solution
Fonctions⚓︎
La formule permettant de convertir les degrés Celsius (\(c\)) en degré Fahrenheit est (\(f\)) : \(f = \dfrac{9}{5} c +32\). Cette conversion peut-être représentée par une fonction de Python qui prend en entrée un paramètre \(c\) (les degrés Celsius) et renvoie un résultat \(f\) (les degrés Fahrenheit) :
Maintenant en tapant, par exemple celsius_en_fahrenheit(10), on effectue un appel à cette fonction, qui renvoie un résultat, ce résultat peut être mémorisé dans une variable, utilisé comme paramètre d'une autre fonction, affiché, ...
Par exemple, si on souhaite simplement afficher le nombre de degrés Fahrenheit correspondant à 100 degré Celsius, on pourrait ajouter la ligne suivante au programme précédent :
print("100 degrés celsius =",celsius_en_farenheit(100)," degrés Fahrenheit")
A retenir
- La definition d'une fonction en Python commence par le mot clé
defsuivi du nom de la fonction puis de ses arguments entre parenthèses et séparés par des virgules - Une fonction peut prendre 0, un, ou plusieurs arguments
- Les instructions qui forment le corps de la fonction sont indentés, la fin de cette indentation marque la fin du bloc d'instructions de la fonction
- Une fonction peut renvoyer un résultat à l'aide d'une instruction
return, si aucunreturnn'est indiqué elle retourne la valeurNone(rien). - Exemple : la fonction suivante, prend deux paramètres (
largeuretlongueur) et renvoie le périmètre d'un rectangle de dimensionlargeur x longueur: - Une fonction peut ne rien renvoyer et par exemple produire simplement un affichage :
- Les deux exemples précédents, montrent qu'il ne faut pas confondre
printetreturn. Dans un cas on renvoie un résultat (qui est récupéré et peut être réutilisé à l'endroit de l'appel de la fonction), dans le second on effectue simplement un affichage rien n'est renvoyé vers l'appel à la fonction. Ainsi on pourrait logiquement écrirep = perimetre(2,7)(etpaurait la valeur18, mais ne sera pas affiché) alors quex = repete('*',10)n'affectera rien àx(mais produira un affichage).
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
-
Ecrire une fonction
carrequi prend en argument une valeur numériquexet renvoie son carré.###(Dés-)Active le code après la ligne# Tests(insensible à la casse)
(Ctrl+I)Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)Entrer ou sortir du mode "plein écran"
(Esc)Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier.128013ita;dvn2Swb*cy1: f-up)_9elohxrP=s(/mgk050f0z0c0d0b0A0H0r0n0A0d0H0H0G010c0b0v010406050H0u0K0K0d0E0o040j0B0A0u0%0B0h050J0.0:0=0@0,0v040517101a0J170,0f0b0g0V0X0Z0#0X0h0L0u0d0L0z0t0v0o0c0C0~0r0C0b0L0C0A1C0C0c0*050Q0l0A0z1j0Y0!011B1D1F1D0c1L1N1J0c0E181x0V0`0H0v0d0h0#0i011P1l010s0S0z0h0d0K0z1J1+1-1=1R1^1N1{1}0*0a0r0F0E0B0v0B0H0b0}0h0r0O1)0E0E0z0n2i10200h180J1x2v1#1%1$1K0f221m0b0h1`2f1J1g1i0W1Q2F2H0h0B2L1J0v2o182t2v2Y0-1,2j2N1?2R0E0;0A1J0d1A2o0s0#030x0x0n2S0z1F2Q0B0t0p0y300*0p100d2Z2$0+2#212(1R2*2,2.2:0z2=012@2_2{2}2I30321:040i36381-2v2V0z2v2L2y0f1%2D3d0#2`0O2K1h183A2X392s3R3K3B3b2j0b0f0#2^2t3r33182/3Y3!3n0O3p2R3%0p1;260z3,3U3/2 313(3w3W2E010M0*0O0s3S3y403I010k0*0r472u491k3e0s0*0n0=2o4f3Q3c4i0#0)040I4p4h2O010h0*0D4x2t414u0q4E2$410h0l0*0s0A0B0d0c4J4r4z4u0w4p4e4F4a0B0*0t020L0c0e4Z4y2)4N044P4R4T113R4#4s014H4p0,4_484F3+013#2$3%3t053*3Z553-2|2G3q3}1:0r3@3_3o5g3:5i1J0J370r5u4!4K4a43042o0c0u0E0 512u5w4V2)4C4.4{4z4%040m0m5M5x4|0K0b0*3v5G3a5!103U3z2W103D100c3F5-2B2w0d1M3V0J3D500O0Q0S0H04. -
Ecrire une fonction
deltaqui prend trois argumentsa,betcet calcule \(b^2 - 4ac\).###(Dés-)Active le code après la ligne# Tests(insensible à la casse)
(Ctrl+I)Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)Entrer ou sortir du mode "plein écran"
(Esc)Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier.128013ita;dv,n2Swb*cy14: f-up0)_elohrP=s(/mgk050f0B0c0d0b0C0I0t0o0C0d0I0I0H010c0b0x010406050I0w0L0L0d0F0p040k0D0C0w0(0D0i050K0/0;0?0^0-0x040518111b0K180-0f0b0g0W0Y0!0$0Y0i0M0w0d0M0B0v0x0p0c0E0 0t0E0b0M0E0C1D0E0c0+050R0m0C0B1k0Z0#011C1E1G1E0c1M1O1K0c0F191y0W0{0I0x0d0i0$0j011Q1m010u0T0B0i0d0L0B1K1,1.1?1S1_1O1|1~0+0a0t0G0F0D0x0D0I0b0~0i0t0P1*0F0F0B0o2j11210i190K1y2w1$1(1%1L0f231n0b0i1{2g1K1h1j0X1R2G2I0i0D2M1K0x2p192u2w2Z0.1-2k2O1@2S0F0=0C1K0d1B2p0u0$030A0A0o2T0B1G2R0D0v0j0y0v0q0+0q110d2!2%0,2$222)1S2+2-2/2;0B2?012^2`2|2~2J31331;040j383a1.2w2W0B2w2M2z0f1(2E3f0$2{0P2L1i193C2Y3b2t3T3M3D3d2k0b0f0$2_2u3t343j3!3$3p0P3r2S3)350t270B3-3W3:30323*2w393Y2F010N0+0P0u3U3A423K010l0+0t492v4b1l3g0u462}0R4h3S3e4k0$0*040J4q4j2P010i0+0d4y2u434v0s4F2%430i0m0+0u0C0D0d0c4K4s4A4v0h4q4g4G4c4C040m4V2(4t014I4!4z2*4O044Q4S4U123T4$4-4Y4:4}4A4(0o4+4H0+4J4{3A4#4L4%4?4^4T554c4v0z505c4-0D0+0v020M0c0e5l4W4=4P4R5g594i511@4/5B3c5G423,013%2%3)3v052:5K2_3{2H3s3~1;3@1}3_5L3.2}5V3;5X1K0K390t5/5b5w1S45042p0c0w0F105G5;4,520+4*5~4;1S5o040n0n5v601@0L0b0+3x645D665p6b436e0+0r6m4c676a6i5m61044E6v5=0$6t6r4-534q0-5I0K3W3B2X113F110c3H6Q2C2x0d1N3X0K3F6I0P0R0T0I04. -
Ecrire une fonction
test79qui prend en argument un entier et renvoieTruesi cet entier est divisible par 7 et qu'il se termine par 9.###(Dés-)Active le code après la ligne# Tests(insensible à la casse)
(Ctrl+I)Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)Entrer ou sortir du mode "plein écran"
(Esc)Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier.128013it3a;dvn2.Swbcy714: f-up0)_9el%ohrP=s(/mgk050g0D0c0e0b0E0L0u0o0E0e0L0L0K010c0b0y010406050L0x0O0O0e0I0p040l0G0E0x0+0G0i050N0=0@0_0{0:0y04051b141e0N1b0:0g0b0h0Z0#0%0)0#0i0P0x0e0P0D0w0y0p0c0H120u0H0b0P0H0E1G0H0c0.050U0n0E0D1n0$0(011F1H1J1H0c1P1R1N0c0I1c1B0Z0~0L0y0e0i0)0j011T1p010v0W0D0i0e0O0D1N1/1;1_1V1|1R1 210.0a0u0J0I0G0y0G0L0b110i0u0S1-0I0I0D0o2m14240i1c0N1B2z1)1+1*1O0g261q0b0i1~2j1N1k1m0!1U2J2L0i0G2P1N0y2s1c2x2z2$0;1:2n2R1`2V0I0^0E1N0e1E2s0v0)030B0B0o2W0D1J2U0G0w0j0r0w0r0.0r140e2%2*0/2)252,1V2.2:2=2@0D2_012{2}2 312M34361@040j3b3d1;3f2x2I013k0e2;1c2?0H2^2`2|2~0S3u2V3w0w0d0.0d3B2w3e0:3F3i0)3I3K053M3O3q3Q3t2K3v350w0s0.0s3!153e1f2!142P2C0g1+2H3)013R221c431d412(3~3D054a2#2*0u0b0g0)2|2x3V383L4n4p013;3S3?3U3^380u2a0D4q3s4A324t1N0N3c3g2+1o1V0Q0.0S0v3#4i3(4S0)0m0.0u4Y2y4Q3G0i0v0.0c0D0L0c0q0C4*4l3h4#010-040M4`4,480i0.134h4+4!2S4~0.0t4`4)5a2-0n0.2K0c525h1V4 0A5f534}0G0.0w020P0c0f5s5o3*5j040n0G0~5n4m484 5e583f5P4,4o4I4s3^3y3-4w4I4a3T335W1^4G5!3=4L5(2z3c0u5;5g5L4}55040O0x0E0+0y1R0B0q5C5@5b5v040K634|5b5_572$5?6a1`660F694R5b0O0b0.625P6f6l6h0.0K686r5t6m6o040z6k3G0o4u030u4;4?0u2k4F0u4=0c0u5{5}0,1R2o1S6q2$0:5R3F5T4y0B5V363X4v6(4z304B5%6,5)204H6)5#6=3V6-3B5=6s4-4:0D2/3?0B4_6y5D01666x6e6z2-566E486i7j4}6n396D7a646u677e3e72487o04797f7b6G0.6I6W2s4?1S2p0#2o1l0b2k1D1:0I0u0r0z6P6L0C0k7!4`6#2(6%4x4r2*3V3`6.7*4J6;5-363`4F6_5+4K3@7@4N5:5=7g4T0.2s0c0x0I6d7w823*0.6T5~606Z8a7b0G4%041;0g7m6b74762L787$520N4k400D2z4d2A45142D8F0e1Q8A421l5Q0S0U0W0L04. -
Ecrire une fonction
absqui renvoie la valeur absolue du nombrexdonné en argument.###(Dés-)Active le code après la ligne# Tests(insensible à la casse)
(Ctrl+I)Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)Entrer ou sortir du mode "plein écran"
(Esc)Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier.128013it3a;dvn2S5wbcy14: f-up0)_elohxrP=s(/mgk050g0B0c0e0b0C0J0t0o0C0e0J0J0I010c0b0x010406050J0w0M0M0e0G0p040k0D0C0w0)0D0i050L0:0=0@0_0.0x040519121c0L190.0g0b0h0X0Z0#0%0Z0i0N0w0e0N0B0v0x0p0c0E100t0E0b0N0E0C1E0E0c0,050S0n0C0B1l0!0$011D1F1H1F0c1N1P1L0c0G1a1z0X0|0J0x0e0i0%0j011R1n010u0U0B0i0e0M0B1L1-1/1@1T1`1P1}1 0,0a0t0H0G0D0x0D0J0b0 0i0t0Q1+0G0G0B0o2k12220i1a0L1z2x1%1)1(1M0g241o0b0i1|2h1L1i1k0Y1S2H2J0i0D2N1L0x2q1a2v2x2!0/1.2l2P1^2T0G0?0C1L0e1C2q0u0%030A0A0o2U0B1H2S0D0v0j0j0v0q0,0q120e2#2(0-2%232*1T2,2.2:2=0B2@012_2{2}2 2K32341=040j393b1/3d2v2G013i0e2/1a2;0E2?2^2`2|0Q3s2T3u0v0d0,0d3z2u3c0.3D3g0%3G3I053K3M3o3O3r2I3t330v0r0,0r3Y133!3e2)1m3h0D2-3H3k3L3m3N3q3Q3;3S3?0l0,0l3{2$1f2Y122N2A0g1)2F3%013P201a4m1b4k4i2$4t2Z2(0t0b0g0%2`2v3T363J4E4G013/4a304K1?280B4H492~4b313?4L3Y3$400%0O0,0Q0u3Z3B3~3E0m0,0t4:2w4=4r0i0u0,0e0n0J4`4C3f4*010+040K544|570i0,0F5c4)2Q580,0s544_5j2+0n0,0u0C0D0e0c5i4D4r590z5o5d5k0D0,0v020N0c0f5E5q3h5s045u5w5y3|4;5P0%595n5W2w0.5$552l4F4X4J3?3w3+4N4X4t3R4#3v4U1~4W4P4Y5^3T5:0L3a0t655p5A574,040b4/5)67565k5f045h6e5F1^5H04020C5M5O685k0M0b0,0y5z6g1^5!545(2$3D5,5~5.343V4M6I4Q4Z4S3?3V0t4V5?3:6R6L1L6304666%6f3 5k6a2q0c0w0G116l5Y016o0v6A6*2+5g6E6`5=6J2(3T3^6N4O6P603?3^6U5|6W4R3=34743z6%6m1T6a2~0J0B6 5B5m6~5)4=6O0A6K0v4e757d6Q7f7z5{1 7C78347A7i6(657k4+0,6-6/6;2!6)3E6i6k2!6F3c124B1d4k0L4w2y4o122B7/511P2x4m5(0Q0S0U0J04.Note
Cette fonction existe déjà et s'appelle de même
abs.- Ecrire une fonction
bissextilequi renvoieTruesi l'entier donné en argument est une année bissextile. Une année est bissextile si elle est divisible par 4 mais pas par 100 ou s'il est divisible par 400.###(Dés-)Active le code après la ligne# Tests(insensible à la casse)
(Ctrl+I)Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)Entrer ou sortir du mode "plein écran"
(Esc)Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
.128013it3a;dvFnT2S5wbcy!14: f-up08)_9ekl%ohxrP=s6(/mg7050g0G0c0e0b0I0Q0w0q0I0e0Q0Q0P010c0b0A010406050Q0z0U0U0e0N0r040m0K0I0z0;0K0j050T0{0}0 110_0A04051h1a1k0T1h0_0g0b0h0)0+0-0/0+0j0V0z0e0V0G0y0A0r0c0L180w0L0b0V0L0I1M0L0c0@050!0p0I0G1t0,0.011L1N1P1N0c1V1X1T0c0N1i1H0)140Q0A0e0j0/0l011Z1v010x0$0G0j0e0U0G1T1^1`1 1#221X25270@0a0w0O0N0K0A0K0Q0b170j0w0Y1?0N0N0G0q2s1a2a0j1i0T1H2F1/1;1:1U0g2c1w0b0j242p1T1q1s0*1!2P2R0j0K2V1T0A2y1i2D2F2,0`1_2t2X202#0N0~0I1T0e1K2y0x0/030E0E0q2$0G1P2!0K0y0l0d0y0t0@0w0t1a0e2-2:0^2/2b2=1#2@2_2{2}0G2 01313335372S3a3c1}040w0l3i3k1`3m2D2O013r0e2`1i2|0L2~3032340Y3B2#3D0y0d3f0d3J2C3l0_3N3p0/3Q3S053U3W3x3Y3A2Q3C3b0y0u3f0u3,1b3.3n2;1u3q0K2^3R3t3V3v3X3z3!3~3$400n3f0n452,3/2:3O3?4f3`3y3Z364l39400R3f0R4r473:4a3=4c3s3T3u3w4z3}383%0W3f0W4I3L4t3o4L3P4N4e4P4g4R3|4k4U400C3f0C4Z2E4#492Y4(4d3@3_4h3{4j4B4:3c0F3f0F4^3M4u3;4}4O3^4Q4i4A3#4D3c0t0B0@5n5a4`4v4)4 5h525j4C3%0t3e045B5r485t4~4x514S4/3 5m3F0t3I0T3j3-4!5G5d4w4+4y4.545N3d3)5D3+5S3K2E1l2*1a2V2I0g1;2N5d4A2U1r1i2)0G2+3l5U5.4A612b0b0g0/322D5A3t686a535k6d0w2g0G6g5y553d1T5,5W4%0H0@0Y0x63664{200o3f6z6t4|0j0x0@0p0b0-0G0M0;1X6F4K4|0?040S6S5c4%0j0@1`2R0G6Y4$6U0@0v6z0w6G2?0p0@2Q0c6*6B1#6V0D6/6;1#0K0@0y020V0c0f6 6T6=6K0K146`3O6V6.465V7j5.3N6f016b2:3%3F5g7o5#6i401}6k266m7p6h5z7y6r3j0w7J6:7a1#6v040b6y7l3G703=6$0j6(796Z4|72040J7Z6+200U0b0@0u0B0B7)6{0/7$0P0P7=3O7,0@7;7S7U017h6z0_807n697D6c405)7u887w7F3c3)7A276n4T5%8c5,7K8q7L7!207O2y0c0z0N197S8s7*7N0q0@0k0N0z6)7S852.876g8a3c424P7v7E6p428j7C8f8W7H3G7K817O4B7R2,8C7?3P7W7Y8B817$7(8?7M0/7}5D7:7{5d7^7`8`8t1#8}7 8N950/838L7f8U8Q0y4o8T8e8V5%4o8Y8l5M4m3c9i3J8r8(8{018v0Z8y8A8-8)8F040i3R0Q8K4s9e9k9g4F9j9p5$9r0y4F9o7D6o5%9P9u9w9a9y0@8+906!8;0G9K3l8.3O8^9+4|8}44948D7@0@7_9@7+7-0498629x9c9L864u9f7r404W9Q9X8m9T4W9W8!5%ae9#9v8)0@8w9Ba08E8G8I9/7k99679Nac3c4=afal9T4=ak9laI8$8qaq04369J7f5da747a9aB8PaD0y57aGaL5la#1~6l9R7x56aN9v9;5d9z8x8zau0/0H9F9H0%ay4_9MaZ1`5A5oa%9Y9T5na+7Ba-8g3db63J8Ma5aaaCb4405B6e9kb8a)boaKbr5A5C3,9x0q5C030w0h0G0N2q1J0l0w0v0w0A150(348y0cb03maX2tabbm5Obpbd6p5Qbb8kag9qbs7t6s9x7O6xaT4%6D7TbV4v6J046L6N6P23b=6,6Wc12?9-bT81aV3La=6!6?7P0j6_b_aU0@6~9{8/7$747678cl4vcd0p7d0Ic46|6-84b289a!0t8c2|8Ubvbn8ia,b*9Sbs8o7I9$9|9(04asa_crcic3ch9,046%9.a`019?cX4%9_c)92c)97cx9bcjc/b@1`0gc)6V6Xc!6Hc6c/0@8_9D9x8}5na4ca8@0@0s93d69%c=c,7#b@4cc)6#c$7Xc(dj20c+dgcS9_8 ds719~df9:81diaA8/6}cA800T655/605;5}1a0c5@dR2L2G0e1WdO0T5=850Y0!0$0Q04. - Ecrire une fonction
-
Ecrire une fonction
last_carqui prend en argument une chaine de caractères et renvoie son dernier caractère.###(Dés-)Active le code après la ligne# Tests(insensible à la casse)
(Ctrl+I)Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)Entrer ou sortir du mode "plein écran"
(Esc)Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier.128013it3a;dvn2Swbcy14: f-up)_elohrP=s(/mgk050g0z0c0e0b0A0G0s0n0A0e0G0G0F010c0b0w010406050G0v0J0J0e0D0o040k0B0A0v0$0B0i050I0-0/0;0?0+0w0405160 190I160+0g0b0h0U0W0Y0!0W0i0K0v0e0K0z0u0w0o0c0C0}0s0C0b0K0C0A1B0C0c0)050P0m0A0z1i0X0Z011A1C1E1C0c1K1M1I0c0D171w0U0_0G0w0e0i0!0j011O1k010t0R0z0i0e0J0z1I1*1,1;1Q1@1M1`1|0)0a0s0E0D0B0w0B0G0b0|0i0s0N1(0D0D0z0n2h0 1 0i170I1w2u1!1$1#1J0g211l0b0i1_2e1I1f1h0V1P2E2G0i0B2K1I0w2n172s2u2X0,1+2i2M1=2Q0D0:0A1I0e1z2n0t0!030y0y0n2R0z1E2P0B0u0j0q0u0p0)0p0 0e2Y2#0*2!202%1Q2)2+2-2/0z2;012?2^2`2|2H2 311/040j36381,3a2s2D013f0e2,172.0C2:2=2@2_0N3p2Q3r0u0d0)0d3w2r390+3A3d0!3D3F053H3J3l3L3o2F3q300u0q0)0q3V10391a2V0 2K2x0g1$2C3!013M1}173~183|2Z3_3y05452W2#0s0b0g0!2@2s3Q333G4i4k013,3N3.3P3:330s250z4l3n4v2}4o1I0I373b2$1j1Q0L0)0N0t3W4d3Z4N0!0l0)0s4T2t4L3B0i0t0)1j0c2^0;4#4g3c4W010(040H4:4%430i0)0n0C0Q2G4{4V2N4@0)0r4:4!552(0m0)0G1!544h434^0x5a4|4?0B0)0u020K0c0f5n5c3e5e045g0D5i4=564^594c2t0+5J4;2i4j4D4n3:3t3(4r4D453O2~5S1:4B5W3-4G5!2u370s5-5b5j4?4P040t0B5D5M5/5F2(4 5x5:560B4Y042F5 5|3e4 513.5E4M5G584:5L2Z3A5P4t0y5R313S4q6k4u2{4w5Z6o5#1{4C6l5X6u3Q6p3w5.6G5{6d1=5=1+0Y6g6c5V6l6n3;3h6r4E6t5)313=4A6y5%4F3/6Z4I5,5.5o565=2n0c0v0D0~5`6.5}040n6O5M0 4f3{0z2u482v400 2y780e1L733}1g3a0I0N0P0R0G04. -
Ecrire une fonction
est_trianglequi prend en argument trois nombresa,betcet qui renvoieTruesi ces trois entiers peuvent être les longueurs des trois côtés d'un triangle.###(Dés-)Active le code après la ligne# Tests(insensible à la casse)
(Ctrl+I)Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)Entrer ou sortir du mode "plein écran"
(Esc)Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier.128013it3a;dv,n2S5wbcy+14: f-up)_eklohrP=s6(/mg7050g0C0c0e0b0E0K0v0p0E0e0K0K0J010c0b0z010406050K0y0O0O0e0H0q040l0F0E0y0+0F0j050N0=0@0_0{0:0z04051b141e0N1b0:0g0b0h0Z0#0%0)0#0j0P0y0e0P0C0x0z0q0c0G120v0G0b0P0G0E1G0G0c0.050U0o0E0C1n0$0(011F1H1J1H0c1P1R1N0c0H1c1B0Z0~0K0z0e0j0)0k011T1p010w0W0C0j0e0O0C1N1/1;1_1V1|1R1 210.0a0v0I0H0F0z0F0K0b110j0v0S1-0H0H0C0p2m14240j1c0N1B2z1)1+1*1O0g261q0b0j1~2j1N1k1m0!1U2J2L0j0F2P1N0z2s1c2x2z2$0;1:2n2R1`2V0H0^0E1N0e1E2s0w0)030B0B0p2W0C1J2U0F0x0k0m0x0s0.0s140e2%2*0/2)252,1V2.2:2=2@0C2_012{2}2 312M34361@040k3b3d1;3f2x2I013k0e2;1c2?0G2^2`2|2~0S3u2V3w0x0d0.0d3B2w3e0:3F3i0)3I3K053M3O3q3Q3t2K3v350x0t0.0t3!153$3g2+1o3j0F2/3J3m3N3o3P3s3S3?3U3^0m0.0m3}2$3%2*3G3+473/3r3R304d333^0L0.0L4j3 3(423*443l3L3n3p4r3=323V0Q0.0Q4A3D1f2!142P2C0g1+2H3)014s2O1l1c2Z0C2#3e3#4S4s4-250b0g0)2|2x3V384H4@4_4b4t4M3^380v2a0C504s3T4v364}3!4C2S010D0.0S0w4/2y403G0n0.0v5n4=415h0j0w0.0C0K0c0B1)0b1;0P1R5u5p4#0-040M5K5g2-0.0e5Q4m5M0.0u5u5t5R3j0o0.0w0E0F0e0c5V3h4D015N0i5!5L5;0j0.0o5/5w1`5N5Z3~3D5#5W5`5(045*5,5.635o5$0)5?5^6f3H0.0p5~3G616i665x686a5-6n5X040A6q5:5h0F0.0x020P0c0f6A5 5%5|0F0~6w5;6p6d3f6T5p4 014`2*3V3y3-0v6X3;4c533x1^57594L3@6-2z3c0v6_656B1`5j040b5m6T6{6L3*5T6K3G6D046G6I0J774#5{045}725_6C5r041;0g7e5`767j6j797b0f7d7t6r5S046m6V6j6S4k6n6)0B4{3^3X4~4^6Y515b3V3X5620587Q5a4u7T1N0N6^6`7)7k6}0.2s0c0y0H137z6|3j7s2$73780.020E7c7q5x5|811`790r847^7C5u0:7E4m7J7L363`7O6:6+6=3_6.7W8k528m8i3B7*6j6~7088757h8z017v6H7x8C7g5U7?748D7m7o8H838K7|7a8F7y7`7+897D2(7F5Y8b7I7P6Z1;3V4g8j7Y6;4e364g7V218q7S4f7$7(7)6_8X0)6~7.7:7=8W6j7g7i967A1V7v7 8G8R7f7_3e7{4#868P8a6T8c8!8e8)7K6!4w3m7J7Z6,0x4x8@7X6*8r8;9B8|048v9b910.8y9g7r9o9a7@0)8E809Q827n8C0F8N0j7p9Y7B8Z9j908D7}8U9n994.8#04627H8d4?9t8g0x4O8.9F8`364O9D8_7!3^a18u8~8 8w7-0T949n9,649.9d9X9T8L8I9#0.879*8Y8%6V0N4;4T4,4V4)140c4YaF2F2A0e1QaC0N4W8c0S0U0W0K04.Aide
- Cela revient à vérifier que les trois entiers vérifient l'inégalité triangulaire ou encore que le plus grand des trois est inférieur à la somme des deux autres
- La fonction permettant de déterminer le maximum d'une liste de nombres existe déjà et s'appelle
max.
Instruction input⚓︎
Lorsqu'un programme Python rencontre une instruction comme variable = input(), il attend la saisie d'un texte au clavier (suivie de l'appui de la touche entrée Enter) et la chaine de caractères saisie est alors affectée à la variable variable. On peut préciser le message à afficher avant la saisie en argument de input. Par exemple :
Danger
Ce qui est saisi au clavier est toujours interprété par Python comme du texte (type str), pour l'utiliser comme nombre il faudra effectuer une conversion vers le type souhaite (int ou float).
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)