Skip to content

Commit

Permalink
Third chapter.
Browse files Browse the repository at this point in the history
  • Loading branch information
phe-sto committed Oct 8, 2024
1 parent f65fed1 commit 24efb0d
Show file tree
Hide file tree
Showing 10 changed files with 3,125 additions and 882 deletions.
150 changes: 110 additions & 40 deletions conditions_boucles.ipynb → 2_base_programmation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@
"metadata": {},
"cell_type": "markdown",
"source": [
"|Opérateur| Signification |\n",
"|-|----------------------|\n",
"|==| Égale à |\n",
"|!=| Différent de |\n",
"|<| Inférieur à |\n",
"|<=| Inférieur ou égale à |\n",
"|>| Supérieur à |\n",
"|>=| Supérieur ou égale à |\n"
"| Opérateur | Signification |\n",
"|-----------|----------------------|\n",
"| == | Égale à |\n",
"| != | Différent de |\n",
"| < | Inférieur à |\n",
"| <= | Inférieur ou égale à |\n",
"| \\> | Supérieur à |\n",
"| \\>= | Supérieur ou égale à |\n"
]
},
{
Expand All @@ -57,7 +57,13 @@
{
"metadata": {},
"cell_type": "markdown",
"source": "|Opérateur|Signification|\n|-|-|\n|and|ET Logique|\n|or|OU Logique|\n|not|NON Logique|"
"source": [
"| Opérateur | Signification |\n",
"|-----------|---------------|\n",
"| and | ET Logique |\n",
"| or | OU Logique |\n",
"| not | NON Logique |"
]
},
{
"metadata": {},
Expand All @@ -82,12 +88,21 @@
{
"metadata": {},
"cell_type": "markdown",
"source": "Toutes les valeurs décimales (exprimées en base 10 càd 10 symboles) seront converties en valeurs binaires (séquence de bits donc suite de 0 et/ou 1 comme par exemple 0010 1100, ...). Ces opérateurs binaires effectuent donc des opérations bit à bit. "
"source": "Toutes les valeurs décimales (exprimées en base 10 c.-à-d. 10 symboles) seront converties en valeurs binaires (séquence de bits donc suite de 0 et/ou 1 comme par exemple 0010 1100, ...). Ces opérateurs binaires effectuent donc des opérations bit à bit. "
},
{
"metadata": {},
"cell_type": "markdown",
"source": "|Opérateur|Signification|\n|-|-|\n|&|ET Logique|\n|\\||OU Logique|\n|~|NON Logique|\n|^|OU Exclusif: XOR|\n|>>|Décalage binaire à droite|\n|<<|Décalage binaire à gauche|"
"source": [
"| Opérateur | Signification |\n",
"|-----------|---------------------------|\n",
"| & | ET Logique |\n",
"| \\| | OU Logique |\n",
"| ~ | NON Logique |\n",
"| ^ | OU Exclusif: XOR |\n",
"| \\>\\> | Décalage binaire à droite |\n",
"| << | Décalage binaire à gauche |"
]
},
{
"metadata": {},
Expand All @@ -102,7 +117,12 @@
{
"metadata": {},
"cell_type": "markdown",
"source": "|Opérateur|Signification|\n|-|-|\n|is|Est le même objet|\n|is not|N'est pas le même objet|"
"source": [
"| Opérateur | Signification |\n",
"|-----------|-------------------------|\n",
"| is | Est le même objet |\n",
"| is not | N'est pas le même objet |"
]
},
{
"metadata": {},
Expand All @@ -117,7 +137,12 @@
{
"metadata": {},
"cell_type": "markdown",
"source": "|Opérateur|Signification|\n|-|-|\n|in|Est dans l'objet|\n|not in|N'est pas dans l'objet|"
"source": [
"| Opérateur | Signification |\n",
"|-----------|------------------------|\n",
"| in | Est dans l'objet |\n",
"| not in | N'est pas dans l'objet |"
]
},
{
"metadata": {},
Expand All @@ -132,7 +157,23 @@
{
"metadata": {},
"cell_type": "markdown",
"source": "|Opérateur|Signification|Exemple|Equivalent à|\n|-|-|-|-|\n|+=|Addition et affectation|a+=b|a=a+b|\n|-=|Soustraction et affectation|a-=b|a=a-b|\n|\\*=|Multiplication et affectation|a\\*=b|a=a\\*b|\n|/=|Division et affectation|a/=b|a=a/b|\n|%=|Modulo et affectation|a%=b|a=a%b|\n|//=|Division entière et affectation|a//=b|a=a//b|\n|\\*\\*=|Exponentiation et affectation|a\\*\\*=b|a=a\\*\\*b|\n|&=|ET bit à bit et affectation|a&=b|a=a&b|\n|\\|=|OU bit à bit et affectation|a\\|=b|a=a\\|b|\n|^=|XOR et affectation|a^=b|a=a^b|\n|>>=|Décalage binaire à droite et affectation|a>>=b|a=a>>b|\n|<<=|Décalage binaire à gauche et affectation|a<<=b|a=a<<b|\n\n"
"source": [
"| Opérateur | Signification | Exemple | Equivalent à |\n",
"|-----------|------------------------------------------|---------|--------------|\n",
"| += | Addition et affectation | a+=b | a=a+b |\n",
"| -= | Soustraction et affectation | a-=b | a=a-b |\n",
"| \\*= | Multiplication et affectation | a\\*=b | a=a\\*b |\n",
"| /= | Division et affectation | a/=b | a=a/b |\n",
"| %= | Modulo et affectation | a%=b | a=a%b |\n",
"| //= | Division entière et affectation | a//=b | a=a//b |\n",
"| \\*\\*= | Exponentiation et affectation | a\\*\\*=b | a=a\\*\\*b |\n",
"| &= | ET bit à bit et affectation | a&=b | a=a&b |\n",
"| \\|= | OU bit à bit et affectation | a\\|=b | a=a\\|b |\n",
"| ^= | XOR et affectation | a^=b | a=a^b |\n",
"| >>= | Décalage binaire à droite et affectation | a>>=b | a=a>>b |\n",
"| <<= | Décalage binaire à gauche et affectation | a<<=b | a=a<<b |\n",
"\n"
]
},
{
"metadata": {},
Expand All @@ -146,17 +187,40 @@
},
{
"metadata": {
"trusted": false
"trusted": false,
"ExecuteTime": {
"end_time": "2024-10-07T21:21:42.405593Z",
"start_time": "2024-10-07T21:21:42.295301Z"
}
},
"cell_type": "code",
"source": "#Syntaxe d'écriture\nif condition1:\n instruction1\nelif condition2:\n instruction2\nelif condition3:\n instruction3\nelse:\n instruction4",
"execution_count": null,
"outputs": []
"outputs": [
{
"ename": "NameError",
"evalue": "name 'condition1' is not defined",
"output_type": "error",
"traceback": [
"\u001B[0;31m---------------------------------------------------------------------------\u001B[0m",
"\u001B[0;31mNameError\u001B[0m Traceback (most recent call last)",
"Cell \u001B[0;32mIn[1], line 2\u001B[0m\n\u001B[1;32m 1\u001B[0m \u001B[38;5;66;03m#Syntaxe d'écriture\u001B[39;00m\n\u001B[0;32m----> 2\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[43mcondition1\u001B[49m:\n\u001B[1;32m 3\u001B[0m instruction1\n\u001B[1;32m 4\u001B[0m \u001B[38;5;28;01melif\u001B[39;00m condition2:\n",
"\u001B[0;31mNameError\u001B[0m: name 'condition1' is not defined"
]
}
],
"execution_count": 1
},
{
"metadata": {},
"cell_type": "markdown",
"source": "En fonction de la condition remplie, c'est une instruction précise qui sera exécutée. \n- Ainsi, si la *condition1* est True alors l'*instruction1* sera exécutée, les autres instructions ne seront pas exécutées !\n- Si la *condition1* est False, et que la *condition2* est True alors l'*instruction2* sera exécutée, les autres instructions ne seront pas exécutées !\n- etc...\n- Si aucune condition précédente n'est True, alors l'*instruction4* sera exécutée. "
"source": [
"En fonction de la condition remplie, c'est une instruction précise qui sera exécutée. \n",
"- Ainsi, si la *condition1* est True alors l'*instruction1* sera exécutée, les autres instructions ne seront pas exécutées !\n",
"- Si la *condition1* est False, et que la *condition2* est True alors l'*instruction2* sera exécutée, les autres instructions ne seront pas exécutées !\n",
"- etc...\n",
"- Si aucune condition précédente n'est True, alors l'*instruction4* sera exécutée.\n",
"C'est l'équivalent du switch/case dans d'autres langages."
]
},
{
"metadata": {},
Expand All @@ -183,15 +247,19 @@
"trusted": false
},
"cell_type": "code",
"source": "#Exemple d'utilisation d'une boucle if\nval1 = 10\nval2 = 6\nif val1 < val2:\n print(val1, \" est plus petit que \", val2)\nelif val1 > val2:\n print(val2, \" est plus petit que \", val1)\nelse:\n print(\"Les deux variables ont la même valeur: \", val1)\n ",
"execution_count": 11,
"outputs": [
{
"output_type": "stream",
"text": "6 est plus petit que 10\n",
"name": "stdout"
}
]
"source": [
"#Exemple d'utilisation d'une boucle if\n",
"val1 = 10\n",
"val2 = 6\n",
"if val1 < val2:\n",
" print(val1, \" est plus petit que \", val2)\n",
"elif val1 > val2:\n",
" print(val2, \" est plus petit que \", val1)\n",
"else:\n",
" print(\"Les deux variables ont la même valeur: \", val1)\n"
],
"outputs": [],
"execution_count": null
},
{
"metadata": {},
Expand All @@ -204,14 +272,8 @@
},
"cell_type": "code",
"source": "#Exemple d'une boucle if else sur une seule ligne\nval1 = 10\nval2 = 6\nprint(val1, \" est plus petit que \", val2) if val1 == val2 else print(\"les deux variables n'ont pas la même valeur\")",
"execution_count": 14,
"outputs": [
{
"output_type": "stream",
"text": "les deux variables n'ont pas la même valeur\n",
"name": "stdout"
}
]
"outputs": [],
"execution_count": null
},
{
"metadata": {},
Expand All @@ -227,7 +289,7 @@
"metadata": {},
"cell_type": "markdown",
"source": [
"Écrire un script Python qui vérifie si un nombre saisi par l'utilisateur est un nombre pair ou impair. \n",
"Écrire un script Python appelé `isodd.py` qui vérifie si un nombre saisi par l'utilisateur est un nombre pair ou impair. \n",
"- Attention aux commentaires\n",
"- Attention aux noms de variables. \n",
"*Faites valider votre script ainsi que son exécution.* "
Expand All @@ -242,7 +304,8 @@
"metadata": {},
"cell_type": "markdown",
"source": [
"Écrire un script Python qui vérifie si une année saisie par l'utilisateur est une année bissextile ou non. \n",
"Écrire un script Python appelé `leap_year.py` qui vérifie si une année saisie par l'utilisateur est une année bissextile ou non.\n",
"Sachant qu'une année est bissextile si elle est divisible par 4 ou 100 ou 400.\n",
"- Attention aux commentaires\n",
"- Attention aux noms de variables. \n",
"*Faites valider votre script ainsi que son exécution*. "
Expand All @@ -257,17 +320,24 @@
"metadata": {},
"cell_type": "markdown",
"source": [
"Sur différentes consoles de jeu, on peut jouer à des jeux qui permettent de calculer notre masse idéale en connaissant notre taille en fonction de l'IMC (Indice de Masse Corporelle). De même, il est également possible de calculer votre IMC en fonction de votre taille et votre masse réelle. L'IMC est calculée grâce à la formule:\n",
"Calculer notre masse idéale en connaissant notre taille en fonction de l'IMC (Indice de Masse Corporelle). De même, il est également possible de calculer votre IMC en fonction de votre taille et votre masse réelle. L'IMC est calculée grâce à la formule:\n",
"- Masse = IMC x Taille² \n",
"*Masse est exprimée en kilogrammes et la Taille en mètres*\n",
"*Masse est exprimée en kilogramme et la Taille en mètre*\n",
"\n",
"Une personne de corpulence \"normale\" a un IMC entre 18.5 et 24,9. Un IMC supérieur à 24,9 signifie que la personne est en surpoids. À l'inverse, un IMC inférieur à 18,5 la personne est en maigreur. Le schéma ci-dessous présente les différentes tranches de corpulence en fonction de la valeur de l'IMC. "
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "1. Écrire un script Python qui calcule l'intervalle de poids \"idéal\" d'un utilisateur ayant saisi au préalable sa taille.\n2. Écrire un script Python de coaching qui à partir de la taille et de la masse saisies par l'utilisateur, calcule l'IMC et affiche un conseil nutritionnel ou sportif. "
"source": [
"1. Écrire un script Python appelé `ideal_bmi.py` qui calcule l'intervalle de poids \"idéal\" d'un utilisateur ayant saisi au préalable sa taille.\n",
"2. Écrire un script Python appelé `compute_bmi.py` de coaching qui à partir de la taille et de la masse saisies par l'utilisateur, calcule l'IMC et affiche un conseil nutritionnel ou sportif. \n",
"\n",
"- Attention aux commentaires\n",
"- Attention aux noms de variables. \n",
"*Faites valider votre script ainsi que son exécution*. "
]
}
],
"metadata": {
Expand Down
Loading

0 comments on commit 24efb0d

Please sign in to comment.