Bertrand Benjamin
89f821b53f
All checks were successful
continuous-integration/drone/push Build is passing
422 lines
9.5 KiB
Plaintext
422 lines
9.5 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Python et suites"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Python comme une calculatrice: introduction à Python\n",
|
|
"\n",
|
|
"Dans les encadrés, il y a du code écrit dans le language python. Pour faire **exécuter** le code, il vous faudra cliquer dessus puis appuyer sur `shift+entrer` de votre clavier. Le résultat du programme s'affichera alors en dessous."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- Exécuter le programme ci dessous. Que fait-il?"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"print(\"Bonjour\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"`print(...)` est la fonction python qui fera afficher ce qu'il y a entre parenthèses.\n",
|
|
"\n",
|
|
"- Dans l'encadré ci-dessous, écrire une programme python pour qu'il affiche votre nom. Attention aux détails!!"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"En plus de savoir afficher des mots, Python peut être utilisé comme calculatrice.\n",
|
|
"\n",
|
|
"- Exécuter le programme ci-dessous. Que fait-il?"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"print(2+2)\n",
|
|
"print(4*3)\n",
|
|
"print(2+3*5 - (5/2))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- Utiliser l'encadré ci-dessous pour calculer u(10) quand u est une suite arithmétique de raison r=4 et de premier terme u(0)=1."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- Même questions pour calculer v(6) quand v est une suite géométrique de raison q=1.2 et de premier terme u(0)=10."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Python comme une calculatrice avec mémoire: Variables\n",
|
|
"\n",
|
|
"Il serait pratique dans le calcul des suites que Python se souvienne du résultat précédent pour faire le calcul d'après.\n",
|
|
"\n",
|
|
"Pour faire cela, on utilise des **variables** en programmation.\n",
|
|
"\n",
|
|
"- Exécuter le programme suivant et expliquer ce qui se passe à chaque ligne"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"a = 1\n",
|
|
"b = 2\n",
|
|
"print(a+b)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- Exécuter le programme suivant et expliquer ce qui se passe à chaque ligne"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"u = 1\n",
|
|
"print(u)\n",
|
|
"u = u + 2\n",
|
|
"print(u)\n",
|
|
"u = u + 2\n",
|
|
"print(u)\n",
|
|
"u = u + 2\n",
|
|
"print(u)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- En vous inspirant de ce qui a été fait au dessus, calculer u(4) quand u est une suite arithmétique de raison r = -1 et de premier terme u(0) = 10"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- Calculer v(15) quand u est une suite géométrique de raison q = 0.8 et de premier terme u(0) = 100"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Pour la nouvelle année, Bob décide d'arrêter de fumer. Pour le moment, il fume 80 cigarettes par semaine. Il souhaite réduire sa consommation de 6 cigarettes par semaine.\n",
|
|
"\n",
|
|
"- Modéliser la situation avec une suite en précisant la nature, la raison et le premier terme.\n",
|
|
"- Combien de cigarettes va-t-il fumer après 5 semaines?"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- Combien de semaines lui faudra-t-il pour complètement arréter?"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Répéter les même calculs: les boucles for\n",
|
|
"\n",
|
|
"On remarque que l'on se répète beaucoup pour faire les calculs. Pour éviter cela, on peut utiliser des **boucles** en python. \n",
|
|
"\n",
|
|
"Pour le moment nous n'étudierons que les boucles **for**.\n",
|
|
"\n",
|
|
"Voila comment économiser des lignes de programmes."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"u = 1\n",
|
|
"print(u)\n",
|
|
"\n",
|
|
"u = u + 2\n",
|
|
"print(u)\n",
|
|
"\n",
|
|
"u = u + 2\n",
|
|
"print(u)\n",
|
|
"\n",
|
|
"u = u + 2\n",
|
|
"print(u)\n",
|
|
"\n",
|
|
"u = u + 2\n",
|
|
"print(u)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"On remarque d'après les deux premières lignes, les lignes suivantes se répètent 4 fois. Le programme précédent peut alors se réécrire"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"u = 1\n",
|
|
"print(u)\n",
|
|
"\n",
|
|
"for i in range(4):\n",
|
|
" u = u + 2\n",
|
|
" print(u)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- Décrire chaque ligne du programme précédent."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- Calculer v(5) puis v(100) quand u est une suite géométrique de raison q = 0.7 et de premier terme u(0) = 100"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"On place 100€ à la banque. Le banquier nous explique que les intérets vont faire augmenter cette somme de 2% par an.\n",
|
|
"\n",
|
|
"- Par combien va être multiplié cette quantité d'argent chaque année?\n",
|
|
"- Modéliser cette situation avec une suite en précisant la nature, la raison et le premier terme.\n",
|
|
"- Calculer le solde de ce compte après 10ans"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- Combien d'année devra-t-on attendre avant que ce solde ne depasse 1000€?"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Répeter jusqu'à ce que: boucle while\n",
|
|
"\n",
|
|
"Comme dans la questions précédente, il est interessant de répeter une action **jusqu'à ce que** quelque chose soit validé (dans la question c'était dépasser 1000€). Pour cela, il existe un deuxième type de boucle: **while** (tant que).\n",
|
|
"\n",
|
|
"Par exemple, on peut répondre à la question précédente avec le programme suivant:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"117\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"u = 100\n",
|
|
"annee = 0\n",
|
|
"while u < 1000:\n",
|
|
" annee = annee + 1\n",
|
|
" u = u * 1.02\n",
|
|
"print(annee)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- Décrire chaque ligne du programme précédent."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Un transporteur a acheté en 2006 un véhicule de 9tonnes au prix de 50200€. Compte tenu de l'utilisation, le véhicule perd 20% de sa valeur chaque année.\n",
|
|
"\n",
|
|
"- Calculer la valeur du véhicule en 2007, 2008."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- Modéliser la valeur du véhicule par une suite dont vous préciserez la nature, la raison et le premier terme.\n",
|
|
"- Quelle sera la valeur du véhicule en 2012?"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- Dans combien d'année, la valeur sera inférieur à 1000€?"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.8.5"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 4
|
|
}
|