[go: up one dir, main page]

0% ont trouvé ce document utile (0 vote)
17 vues40 pages

2.1 - Python-Intro

Transféré par

danielvale1009
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
17 vues40 pages

2.1 - Python-Intro

Transféré par

danielvale1009
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 40

1 - Introduction

Python pour sciences économiques

Adrian Holzer
Exercice 1 - Papier
Calculez votre marge en CHF. Votre investissement initial était de CHF 10'450.
Avec ce montant vous aviez acheté 1.10 Bitcoin et USD 3200. Aujourd'hui le
cours du Bitcoin est de CHF 8057.62 et celui du dollar est de CHF 0.97.

Bonus: Quelle aurait été la marge si vous aviez initialement réussi à acheter 1.3
Bitcoin, ou 2 ou 3.5 ou 5?

Papier, crayon, calculette, 3 minutes


Exercice 1 - Papier Corrigé
Calculez votre marge en CHF. Votre investissement initial était de CHF 10'450.
Avec ce montant vous aviez acheté 1.10 Bitcoin et USD 3200. Aujourd'hui le
cours du Bitcoin est de CHF 8057.62 et celui du dollar est de CHF 0.97.
1517.38
Bonus: Quelle aurait été la marge si vous aviez initialement réussi à acheter 1.3
Bitcoin, ou 2 ou 3.5 ou 5? 1.3: 3128, 2: 8769, 3.5: 20855, 5: 32942
Préambule
Python offre deux fonctions pratiques pour permettre aux utilisateurs d'interagir
avec le code (entrée, sortie). Pour les sorties, une fonction print("message")
qui permet d'afficher un message sur le terminal. Pour les entrée, une fonction
input("message") qui permet d'entrer une valeur.

1 input("Entrer un mot")
2 print("Bonjour")
3 print(input("Entrer un mot"))
4
5
6
7
8
9
Premiers pas
Tapez le code ci-dessous et ensuite pressez Ctrl + Enter.
x = 343
y = 45984
z = x + y
print(z)

1 x = 343
2 y = 45984
3 z = x * y
4 print(z)
5
6
7
8
9
Variables
Une variable est un conteneur pour stocker des valeurs. Une variable est crée au
moment ou on lui assigne une valeur en utilisant un =. Le nom d'une variable doit
commencer par une lettre ou un _ et doivent contenir que des caractères alpha
numériques. Les noms de variables sont sensibles aux majuscules. Il est possible
de créer plusieurs variables sur une ligne.

1 x = 1 #ceci est un commentaire qui n'est pas exécuté


2 y, z = 2,3
3 print(x,y,z) #print est une fonction pratique
4 #print(x,y,z) on peut mettre en commentaire du code
5 """
6 Ceci est un
7 commentaire de
8 plusieurs lignes
9 """
Type
Python n’est pas un langage typé. C’est à dire le type d’une variable ne doit pas
être défini à l’avance.
Utilisez la commande type(x) pour découvrir le type d’une variable x.

1 x = 343
2 y = "bonjour"
3 z = input("entrer un chiffre")
3 print(type(x), type(y), type(z))
Type error
Plusieurs types d'erreurs peuvent empêcher le déroulement sans accroc de votre
code. Entre autres, les erreurs de type, syntaxe, de nom, ou de sémantique.
Essayer d’additionner deux variables de type int, deux variable de type str ou
une variable de chaque type.

1 x = 343
2 y = "bonjour"
3 z = x + y
4 print(z)
Name & Syntax error
Lorsque la syntaxe est incorrecte, une SyntaxError est levée. Par exemple si la
fonction print est appelée sans parenthèse. Une NameError est levée lorsque
une variable ou une fonction qui n'a pas été définie est utilisée. Utilisez les
conventions d'écriture de code. En particulier, utilisez
des_minuscules_avec_separtion_entre_mots pour les variables

1 my_name = y
2 z = my_name
3
4
5
6
7
8
9
Problème 1 - Python
Calculez votre marge en CHF. Votre investissement initial il y a un an était de
CHF 10'450. Avec ce montant vous aviez acheté 1.10 Bitcoin et USD 3200.
Aujourd'hui le cours du Bitcoin est de CHF 8057.62 et celui du dollar est de CHF
0.97. Bonus: Quelle aurait été la marge si vous aviez réussi à acheter 1.3 Bitcoin,
ou 2 ou 3.5 ou 5 il y a une année? Et la marge en %? 5 minutes
Problème 1 - Python Corrigé
Calculez votre marge en CHF. Votre investissement initial il y a un an était de
CHF 10'450. Avec ce montant vous aviez acheté 1.10 Bitcoin et USD 3200.
Aujourd'hui le cours du Bitcoin est de CHF 8057.62 et celui du dollar est de CHF
0.97. Bonus: Quelle aurait été la marge si vous aviez réussi à acheter 1.3 Bitcoin,
ou 2 ou 3.5 ou 5 il y a une année? Et la marge en %? 5 minutes

1 initial = 10450
2 nb_bitcoin = 1.1
3 nb_usd = 3200
4 cours_bitcoin = 8057.62
5 cours_usd = 0.97
6 marge = (nb_bitcoin * cours_bitcoin + nb_usd * cours_usd) - initial
7 print(marge)
8
9
Problème 2 - Papier
Vous avez 1.10 Bitcoin en poche que vous avez acheté pour 6200.-. Vous
recevez le cours du jour et vous aimeriez répondre "j'achète" si le cours est
inférieur au cours d'achat, "je vends", si le cours permet de faire une marge de
10%, et "j'attends" sinon. Les cours reçus sont 5600, 6200, 6700, 7000

Bonus: Quand vous vendez et que vous faites une marge supérieur à CHF
1000.-, vous voudriez aussi indiquer que vous achetez du dollar "j'achète USD".

Papier, crayon, calculette, 3 minutes


If
L’instruction if a trois partie: (1) la condition suivi (2) du bloc de code exécuté si
la condition est vraie, suivi par (3) le bloc de code exécuté sinon (else). Le mot
clé elif permet d'ajouter une condition.

1 a=int(input("entrez un nombre"))
2 if a==2:
3 print("c'est deux")
4 elif a<3:
5 print("c'est plus petit que 3")
6 else:
7 print("c'est plus grand")
8 print("fin")
Conditions
Les opérateurs pour tester des conditions sont:
== pour tester l’égalité
!=, >=, <= pour tester la différence
and, or, not

1 isGreat=True
2 x=3
3 y=2
4 print(x==3 and y>2 and not False)
Indentation
En Python, les bloc de codes sont delimités par leur indentation. Essayez de
changer l’indentation pour que ce code soit juste

1 note=4
2 if note>=4:
3 print("Bravo, vous avez réussi")
4 else:
5 print("Zut, vous avez échoué")
6 print("Ce n'est pas grave")
7 print("merci d'avoir participé")
If en une ligne
L’instruction if peut aussi être écrite en une ligne dans certains cas:

1 n = int(input("entrer un nombre"))
2 print( "deux!" if n == 2 else "pas deux!")
Problème 2 - Python
Vous avez 1.10 Bitcoin en poche que vous avez acheté pour 6200.-. Vous
recevez le cours du jour et vous aimeriez répondre "j'achète" si le cours est
inférieur au cours d'achat, "je vends", si le cours permet de faire une marge de
10%, et "j'attends" sinon. Les cours reçus sont 5600, 6200, 6700, 7000
Bonus: Quand vous vendez et que vous faites une marge supérieur à CHF
1000.-, vous voudriez aussi indiquer que vous achetez du dollar "j'achète USD".
Problème 2 - Python Corrigé
Vous avez 1.10 Bitcoin en poche que vous avez acheté pour 6200.-. Vous
recevez le cours du jour et vous aimeriez répondre "j'achète" si le cours est
inférieur au cours d'achat, "je vends", si le cours permet de faire une marge de
10%, et "j'attends" sinon. Les cours reçus sont 5600, 6200, 6700, 7000
Bonus: Quand vous vendez et que vous faites une marge supérieur à CHF
1000.-, vous voudriez aussi indiquer que vous achetez du dollar "j'achète USD".
1 cours_jour = int(input("Entrez le cours du jours")
2 nb_bitcoin = 1.1
3 initial = 6200
4 if (cours_jour * nb_bitcoin) - initial >= 0.1:
5 print("je vends")
6 elif cours_jour < initial / nb_bitcoin :
7 print("j'achète")
8 else:
9 print("j'attends")
Problème 3 - Papier
Pour votre 3ième pilier, vous versez CHF 6826.- par année. Le rendement est de
2% par année. A combien se monte votre avoir à 65 ans? A combien se monte-t-il
si vous commencez votre 3 sème pilier à 30 ans, ou à 40 ans?

.... un peu long?

Papier, crayon, calculette, 3 minutes


While
Une instruction pour répéter un bloc de code est la boucle while. Elle permet de
répéter une instruction tant qu'une condition est vraie. Il est possible de sortir de
la boucle avant la fin en utilisant l'instruction break.

1 m = 1000
2 while m > -1000:
3 print(m)
4 if m==3:
5 break #permet de sortir de la boucle
4 m=m-1
For … in range(…)
L'instruction pour répéter un bloc de code un nombre défini de fois est for i in
range(i_debut, i_fin). La première fois que la boucle est exécutée, i a la valeur
i_debut. A chaque tour de la boucle, i est automatiquement incrémenté de 1 et la
boucle continue tant que i est plus petit que i_fin. Si i_debut est omis, i
commence à 0.
1 for i in range(5):
2 print("Hello ", i )
Problème 3 - Python
Pour votre 3ième pilier, vous versez CHF 6826.- par année. Le rendement est de
2% par année. A combien se monte votre avoir à 65 ans? A combien se monte-t-il
si vous commencez votre 3 sème pilier à 30 ans, ou à 40 ans?
Problème 3 - Python Corrigé
Pour votre 3ième pilier, vous versez CHF 6826.- par année. Le rendement est de
2% par année. A combien se monte votre avoir à 65 ans? A combien se monte-t-il
si vous commencez votre 3 sème pilier à 30 ans, ou à 40 ans?

1 age = int(input("Entrez votre age")


2 rendement = 0.02
3 avoir = 0
4 versement_annuel = 6826
5 while age <= 65:
6 interets = avoir * (1 + rendement)
7 avoir = avoir + interets + versement_annuel
8 age += 1
9 print(avoir)
Problème 3 - Python Corrigé
Pour votre 3ième pilier, vous versez CHF 6826.- par année. Le rendement est de
2% par année. A combien se monte votre avoir à 65 ans? A combien se monte-t-il
si vous commencez votre 3 sème pilier à 30 ans, ou à 40 ans?

1 age = int(input("Entrez votre age")


2 rendement = 0.02
3 avoir = 0
4 versement_annuel = 6826
5 for i in range(age,66):
6 interets = avoir * (1 + rendement)
7 avoir = avoir + interets + versement_annuel
9 print(avoir)
En résumé
• Pythonpermet de manipuler des variable qui ont un type dynamique
• if...: else: permet de tester des conditions et décider quels actions faire
• for i in range(1,x) permet d’effectuer x actions successives
• while ... permet d’effectuer x actions tant qu’une condition est vraie
TP Introductions
Exercice 1
Ecrivez un programme qui demande un capital initial, et qui calcul et imprime
l'intérêt sur une année avec un taux de 1.3%. Le format du texte doit avoir cette
forme (exemple avec 100). Capital: CHF 100, Taux: 1.3%, Intérêt: CHF 1.3.

Question: quel est l'intérêt pour un capital de 4350.5?


Problème 1 - Python Corrigé
Ecrivez un programme qui demande un capital initial, et qui calcul et imprime
l'intérêt sur une année avec un taux de 1.3%. Le format du texte doit avoir cette
forme (exemple avec 100). Capital: CHF 100, Taux: 1.3%, Intérêt: CHF 1.3.

Réponse: 56.55
1 capital = float(input("capital"))
2 tx = 0.013
3 i = capital * tx
4 print("Capital: CHF", capital, ", Taux:", tx, "%, Interêts: CHF",i)
5
6
7
8
9
Exercice 2
Pour un capital donné au 1er janvier 2020 et un taux, écrivez un programme qui
calcule et imprime le capital cumulé au 1er janvier pour les années 2020 à 2044.
Le format du texte doit avoir cette forme (exemple pour l'année 2021 avec 100,
1%): Année: 2021, Capital cumulé: 101. Pour que le résultat soit plus clair,
indiquer sur la première ligne le capital de base, l'intérêt et les années de début et
fin.
Question: quel est le capital cumulé au franc inférieur au 1er janvier 2040 avec
un capital initial de 431 et un taux de 2%?
Exercice 2 Corrigé

Réponse: 640.44
1 capital = 431
2 tx=0.02
3 for annee in range (2021, 2044):
4 i = capital * tx
5 capital=capital+i
6 print("Année:", annee, ", capital cumulé: ",capital)
7
8
Exercice 3
Vous investissez CHF 5000 au 1er janvier 2020. Vous avez un retour sur
investissement de 12% par an. Ecrivez un programme qui imprime pour chaque
année le capital cumulé (pour les 50 prochaines années) et qui imprime le mot
(DOUBLE) à chaque fois que le capital a doublé.

Question: quel est le capital cumulé après 37 ans (au 1er janvier 2057)?
Exercice 3 Corrigé
Vous investissez CHF 5000 au 1er janvier 2020. Vous avez un retour sur
investissement de 12% par an. Ecrivez un programme qui imprime pour chaque
année le capital cumulé (pour les 50 prochaines années) et qui imprime le mot
(DOUBLE) à chaque fois que le capital a doublé.
Réponse: 295677.86
1 capital = 5000
2 tx = 0.12
3 capital_c=capital
4 for annee in range (2021,2058):
5 print("Année:", annee, ", capital cumulé: ",capital_c)
6 capital_c += capital_c * tx
7 if capital_c > capital * 2:
8 print("DOUBLE")
9 capital=capital_c
Exercice 4
Vous investissez CHF 5000 au 1er janvier 2020 dans un fonds risqué à 12% par
an. Au 1.1.2030, et au 1.1.2035 vous retirez 2000.- de votre premier fonds. Au 1er
janvier des autres années, si votre capital cumulé est supérieur à 7000.- vous
virez 1500.- dans un fonds très risqué à 20% jusqu'à ce que ce dernier ait un
capital cumulé de 10'000. Ecrivez un programme affiche les soldes annuels.
Question: quel est l'état du fonds risqué au 1.1.2031?
Exercice 4 Corrigé
Réponse: 13292.60

1 tx1 = 0.12
2 tx2 = 0.2
3 fonds1=5000
4 fonds2=0
5 for annee in range (2021,2032):
6 fonds1 += fonds1 * tx1
7 fonds2 += fonds2 * tx2
8 if annee == 2030 or annee == 2035:
9 fonds1 -= 2000
10 elif fonds1 > 7000 and fonds2 < 10000:
11 fonds1 -= 1500
12 fonds2 += 1500
13 print("Année:", annee, ", fonds1: ",fonds1, ", fonds2: ",fonds2)
Exercice 5
Nous sommes en 2020. Vous voulez doubler votre capital de 30'000 avant 2040.
En sachant que vous attendez un entrée d'argent de 10'500.- au début 2030,
Question: quel est le taux le plus bas auquel vous pouvez placer votre argent
pour y arriver (au dixième de % près). Ecrivez un programme qui vous trouve ce
taux.
Exercice 5 Corrigé
Réponse: 2.26%
1 capital = 30000
2 tx = 0
3 double=False
4 while not double:
5 capital_c = capital
6 for annee in range(2020, 2040):
7 if annee==2030:
8 capital_c += 10500
9 capital_c += capital_c * tx
10 if capital_c < capital*2:
11 tx+=0.001
12 else:
13 double=True
14 print(tx)
Exercice 5
Chez ma mamie, il y a 345 chatons en l'an 2000. Chaque année un pourcentage
de 12% se fait écraser par les voitures passantes. Mais chaque année, la femelle
donne naissance à 10 chatons. Combien y a-t-il de chatons en 2043 ?
Exercice 5 Corrigé
Réponse: 83
1 import math
2 nombre_chatons=345
3 for annee in range(2000,2200):
4 nombre_chatons = math.floor(nombre_chatons*0.88)+10
5 print(annee, nombre_chatons)
6
7
8
9
10
11
12
13
14
Bibliographie
https://docs.python.org/3/tutorial/introduction.html https://www.w3schools.com/python/python_variables.asp
Questions?

Vous aimerez peut-être aussi